Radiomodul för 868 MHz
Postat: 8 november 2010, 21:00:18
Inledning:
Jag har länge funderat på att göra en radiomodul som är någorlunda billig men som har bra prestanda och många finesser.
Den ska dessutom vara enkel att använda och konfigurera. Det som finns att köpa och som är billigt att köpa är "made in china"
med allt vad det innebär.
Hårdvara:
För att klara ovanstående krav har detta resulterat i en design med en IEEE 802.15.4 radio (AT86RF212) samt en Atmega88PA
på samma kort. AT86RF212 är en radio-transceiver som kan både ta emot och sända data vilket är en förutsättning för en
robust radiolänk. På så sätt vet man alltid om data som man skickar kommer fram eller inte. Mottagna data indikeras med
signalstyrka och signalkvalitét vilket underlättar installation och felsökning enormt.
Normalt använder man AT86RF212 till Zigbee tillsammans med en MCU med >64kB flash. Det finns dock inget som hindrar att
man skapa sitt eget protokoll som är betydligt enklare än Zigbee. På så sätt så klarar man sig gott och väl på de 8kB
flash som finns i Atmega88P.
Mellan antennen och radiotransceiver:n sitter en balun avsedd för AT86RF212 för att omvandla 100 ohm till 50 ohm.
På så sätt spar man plats och risken för dålig impedansanpassning minskar jämfört om man skulle använda diskreta komponenter.
En PCB-antenn används för att hålla ner kostnaden (den är ju "gratis"). Antennen är hämtad från en app. note av
Texas Instrument och ska rätt anpassad fungera bra enligt Ti.
För att få plats med alla komponenter och hålla ner kortytan måste Atmega:n monteras på undersidan.
Jag använder också de billigaste kristallerna jag hittat. Det går att montera extern antenn om man hellre vill det genom
att montera en SMA-kontakt. Kortet kan antingen spänningsmatas via ett CR2032 batteri eller via extern spänningsmatning.
Mjukvara:
Det finns i huvudsak två open source programvaror som jag känner till, uracoli och Atmels MAC stack. Ett annat alternativ är
förstås att skriva allt själv. uracoli har jag aldrig kommit överens med så tanken är att använda Atmels MAC stack.
Kommunikation med omvärlden sker via UART. Korten ska kunna konfigueras att fungera som batteridrivna sensorer eller som
nätanslutna sensorer eller mottagare.
Lite fakta i korthet:
• >110 dB i länk budget ger lång räckvidd, ca 40 meter inomhus och 400 meter vid fri sikt (uppmätt med 5 dBm uteffekt och PCB-antenn).
• Datahastighet 20 kbps
• Adresserbara moduler, enkelt att skapa nätverk med sensorer utan konflikter
• 5st analoga ingångar eller 6st I/O
• UART (TTL) interface
• Ca 1 uA strömförbrukning i sovläge
• Kort uppstartstid (< 1ms)
• Signalstyrka och signalkvalité mätning
• Antikollisionsfunktion (CSMA-CA)
• Automatisk ack
• Automatisk omsändning
• Automatisk CRC-check
• Anslutning för extern antenn
EDIT: 2010-12-05 Uppdaterat infotext
EDIT: 2011-02-27 Schema + gerber uppdaterat
EDIT: 2011-04-09 Schema + BOM + Manual uppdaterat
EDIT: 2011-06-04 Schema + BOM + Manual + Mjukvara uppdaterat
EDIT: 2011-08-27 Manual + Mjukvara uppdaterat
Schema: BOM: Manual: Mjukvara: Nedan visas några bilder på hur designen ser ut just nu (2010-11-08).
Jag har länge funderat på att göra en radiomodul som är någorlunda billig men som har bra prestanda och många finesser.
Den ska dessutom vara enkel att använda och konfigurera. Det som finns att köpa och som är billigt att köpa är "made in china"
med allt vad det innebär.
Hårdvara:
För att klara ovanstående krav har detta resulterat i en design med en IEEE 802.15.4 radio (AT86RF212) samt en Atmega88PA
på samma kort. AT86RF212 är en radio-transceiver som kan både ta emot och sända data vilket är en förutsättning för en
robust radiolänk. På så sätt vet man alltid om data som man skickar kommer fram eller inte. Mottagna data indikeras med
signalstyrka och signalkvalitét vilket underlättar installation och felsökning enormt.
Normalt använder man AT86RF212 till Zigbee tillsammans med en MCU med >64kB flash. Det finns dock inget som hindrar att
man skapa sitt eget protokoll som är betydligt enklare än Zigbee. På så sätt så klarar man sig gott och väl på de 8kB
flash som finns i Atmega88P.
Mellan antennen och radiotransceiver:n sitter en balun avsedd för AT86RF212 för att omvandla 100 ohm till 50 ohm.
På så sätt spar man plats och risken för dålig impedansanpassning minskar jämfört om man skulle använda diskreta komponenter.
En PCB-antenn används för att hålla ner kostnaden (den är ju "gratis"). Antennen är hämtad från en app. note av
Texas Instrument och ska rätt anpassad fungera bra enligt Ti.
För att få plats med alla komponenter och hålla ner kortytan måste Atmega:n monteras på undersidan.
Jag använder också de billigaste kristallerna jag hittat. Det går att montera extern antenn om man hellre vill det genom
att montera en SMA-kontakt. Kortet kan antingen spänningsmatas via ett CR2032 batteri eller via extern spänningsmatning.
Mjukvara:
Det finns i huvudsak två open source programvaror som jag känner till, uracoli och Atmels MAC stack. Ett annat alternativ är
förstås att skriva allt själv. uracoli har jag aldrig kommit överens med så tanken är att använda Atmels MAC stack.
Kommunikation med omvärlden sker via UART. Korten ska kunna konfigueras att fungera som batteridrivna sensorer eller som
nätanslutna sensorer eller mottagare.
Lite fakta i korthet:
• >110 dB i länk budget ger lång räckvidd, ca 40 meter inomhus och 400 meter vid fri sikt (uppmätt med 5 dBm uteffekt och PCB-antenn).
• Datahastighet 20 kbps
• Adresserbara moduler, enkelt att skapa nätverk med sensorer utan konflikter
• 5st analoga ingångar eller 6st I/O
• UART (TTL) interface
• Ca 1 uA strömförbrukning i sovläge
• Kort uppstartstid (< 1ms)
• Signalstyrka och signalkvalité mätning
• Antikollisionsfunktion (CSMA-CA)
• Automatisk ack
• Automatisk omsändning
• Automatisk CRC-check
• Anslutning för extern antenn
EDIT: 2010-12-05 Uppdaterat infotext
EDIT: 2011-02-27 Schema + gerber uppdaterat
EDIT: 2011-04-09 Schema + BOM + Manual uppdaterat
EDIT: 2011-06-04 Schema + BOM + Manual + Mjukvara uppdaterat
EDIT: 2011-08-27 Manual + Mjukvara uppdaterat
Schema: BOM: Manual: Mjukvara: Nedan visas några bilder på hur designen ser ut just nu (2010-11-08).