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
RFM12 Funkmodul auf Adapterplatine

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:

Schaltplan Sendemodul


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 :-) )

 

 

 

 

 

Testaufbau Sendermodul

Leiterbahnsetie vom Testaufbau Sendemodul


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):
Schaltplan Empfangsmodul

 

 

 

 

 

 

 

Empfangsmodul Testadapter für STK500

 

 

Testaufbau STK 500


Software

 

Empfä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.

RFM12_Empfaenger mit LED für Tastenstatus anzeige


Downloads für die Erweiterungen:

Empfänger-Modul Variante 2 (Bestückungsseite)

Empfängermodul Variante 2 mit ATTiny 13 (Bestückungsseite)

Empfängermodul Variante 2 mit ATTiny13 (Leiterbahnseite)

Versuchsaufbau (nur Stromversorung via STK 500)

Links:

Bezugsquellen für obige Bauteile:

  • Reichelt (günstigster Lieferant für alle Kleinteile und Atmel Prozessoren)
  • Pollin ( RFM12 Module günstig und auch sonst nicht viel teuerer als Reichelt)
 
   
   
   

(letzte Änderungen 18.08.2009)