RFM12
-
RFM12
Projekte mit den RFM12 - Funkmodule.
(Eine Einführung in die Module findet sich unter:
"ATMEL-Projekte" (Atmel-Projkete - RFM12 Funkmodule ) -
RFM12-Funkmodul
RFM12 - 868 MHz Funkmodul mit Atmel Prozessor ansteuern
Kurzbeschreibung:
Hier wird demonstriert wie einfach man eine Funkverbindung mit den 868-MHz-Funkmodule des Typs RFM12 aufbauen kann. Für die Ansteuerung der Module werden Atmel-Mikrocontroller verwendet. Die Anforderung an die Hardware sind sehr gering, da die Funktmodule über eine SPI-Schnittstelle verfügen, über die die Module angesprochen werden. Somit benötigt man legendlich 4 I/O Schnittstellenleitungen um mit dem Modul zu kommunizieren.
Der Preis eines Funkmoduls liegt bei ca. 6,00 €.
Die Programmierung erfolgt in C mit dem C-Compiler Codevision AVR C.
In diesem Projekt habe ich mich zum erstenmal mit den RFM12 - Modulen befasst und dient somit zum Aufbau der Grundlagen mit den Funkmodulen. Ebenso werden dann die C-Routinen (RFM12-lib) in Zukünftigen Projekten verwendet.
Funktionsumfang:Das Sendemodul sendet periodisch im Sekundentakt 5 Hex-Werte.
Das Empfangsmodul empfängt diese und gibt Sie dann über die serielle Schnitsstelle aus.
Hardware:Funkmodul RFM12:
Das Funkmodul verwendet den Si4420 Universal ISM Bank Fsck Transceiver von Integration / Siliconlaps (Datasheet). Das Funkmodul lässt sich zwischen den Frequenzbereichen (315/433/868/915 MHz) umschalten wobei man immer nur das Frequenzband verwenden sollte, auf dass das Modul abgestimmt ist, um eine optimal Sende/Empfangsleistung zu erreichen.
Über die integrierte SPI-Schnittstelle kann das Modul leicht mit einem Microcontroller programmiert und angesteuert werden.- Hersteller Hope-RF,
- Technische Daten:
• Betriebsspannung: 2,2 V bis 5,4 V
• Stromaufnahme beim Senden: 23 mA
• Stromaufnahme beim Empfang: 14 mA
• Frequenzbereich: 860,48 MHz bis 879,51 MHz
• Sendeleistung: bis 4 dBm (ca. 2,5 mW)
• Empfindlichkeit: –100 dBm (ca. 2 μV)
• Übertragungsrate: bis 115,2 kBaud
• Modulationshub: 15 kHz bis 240 kHz
• Empfängerbandbreite: 67 kHz bis 400 kHz
• 16 bit Empfänger-FIFO
• Zwei 8-bit-Sende-Datenregister
Sendemodul:Das Sendemodul wurde auf einer Lochrasterkarte aufgebaut. Zum Einsatz kommt der ATiny26 DIP unter Verwendung des intern 8MHz Oszillator. Zusätzlich wurde die Schaltung mit einer LED für Debug-Zwecke und der ISP-Schnittstelle zum Programmieren des Prozessors versehen. Da die Programmierung und Ansteuerung des Funktmoduls über die gleiche Schnittstelle erfolgt, werden die Leitungen mittels 1kohm Widerstände für das Funkmodul entkoppelt.
Schaltplan:
Korrigierter Schaltpan von 06.06.2012 - Danke für den Hinweis Stephan M.
(Allerdings ist dies schon die 2.Variante, einfach den Taster S1 wegdenken für die 1.Variante :-) )
Stückliste Sendemodul:
C1 1 µF
C2 100n
C3 10 pF
C4 100 nF
C5 100 nF
C6 100 nF
D1 1N4148
IC1 RFM12THT256
IC2 ATTINY26-16P
JP1 AVR-ISP-6 ( 2x6 Stifleitste)
LED1 LED5MM
R1 10 k
R2 10 k
R3 1 k
R4 1 k
R5 1 k
R6 10 k
R7 560 ohm
gesamte Bauteilkosten ca. 7,00 €Empfänger (Testaufbau mit STK 500 Testboard und ATMEGA 48):
Für das Empfängermodul wird ein ATMega 48 verwendet. Der Testaufbau erfolgt auf dem Entwicklungskit STK500. Somit muss man das Funkmodul RFM12 nur noch auf einen Adaptersockel löten, welchter dann direkt auf das STK-500 Board auf den Port B gesteckt wird.
Da hier die Testausgaben über die RS232 Schnittstelle erfolgen, muss man auf dem STK 500 noch ein Brückkabel von RXD/TXD auf den Port PortD ( PD0/PD1) setzen. Für Test-LED ist ein Brückenkabel vom PortD (PD6/PD7) auf die LED's erforderlich.
Der Prozessor verwendet ebenfalls den intern 8MHz Oszillator.
Für den PC wird ein Terminalprogramm für die Anzeige der Textausgaben benötigt, dass auf folgende Parameter: 19200 Baud 8N1 einzustellen ist.
Aufbau der Adapterplatine ( 10 polige Buchsenleiste):
SoftwareEmpfänger-Modul:
Version V1.0 vom 16.08.2009
Download: rfm_rx_test_V1_00.rar
Fusesettings:
Prozessor: ATMega48
RSTDISBL: nicht aktivert
DEWN: nicht aktiviert
SPIEN: aktiviert
WDTON: nicht aktiviert
BODLEVEL: Brownout Detection 2.7V
CKDIV8: nicht aktiviert
CKOUT: nicht aktiviert
SUT_CKSEL: Interner RC-Oszilator 8MHz
(Fusebits: Extend: 0xFF, High: 0xDD, Low: 0xD2)
Sende - Modul:
Version V1.0 vom 16.08.2009
Download: rfm_tx_test_V1_00.rar
Fusesettings:
Prozessor: ATiny26
RSTDISBL: nicht aktiviert
SPIEN: aktiviert
EESAVE: nicht aktiviert
BODLEVL: 2.7V
BODEN: aktiviert
CKOPT: nicht aktiviert
PLLCK_SUT_CKSEL: Interner RC-Oszilator 8 MHz
(Fusesbits: High: 0xF6, Low: 0xE4)Erweiterungen:
Empfänger 2.Variante auf Lochrasterkarte mit dem ATTiny13:
Das Empfängermodul wurde ebenfalls auf einer Lochrasterkarte unter Verwendung eins ATTiny13 -Prozessors aufgebaut.
Das Sendemodul wurde um einen Taster erweitert (PORT PA6 Taster nach Masse und die Verwendung des internen Pullups für PA6). Der Tasterstatus wird jetzt als erstes Byte gesendet und dementsprechend wird dann eine LED auf der Empfängerplatine angesteuert.
Der Download der Modifikationen , Software und Schaltplan folgt in Kürze.
Downloads für die Erweiterungen:- Schaltplan vom modifzierten Sendemodul
- Software Sendemodul - Version V1.01 vom 17.08.2009
Download: rfm_transmitter2_V1_01.rar - Software Empfangsmodul - Version V1.01 vom 17.082009
Download: rfm_receiver2_V1_01.rar
Links:
- Atmel Datenblätter
- RF-Hope Funktmodule
- RFM12-Artikel im Mikrocontroller.net - Forum
- Elektor Artikel über die RFM12 Module (diente als Anregung für meine Programmierung)
- C-Compiler CodeVision AVR-C
Bezugsquellen für obige Bauteile:
(letzte Änderungen 18.08.2009)