Funkverbindungen erfreuen sich immer größerer Beliebtheit in Verbindung mit Microcontrollern.
Die Firma HorpeRF wartet mit einer ganze Familie von kleinen Funkmodulen am Markt auf. Module wie das RFM01, RFM02 und RFM12 waren die Anfänge in Sachen Funkmodule dieser Firma. Die Module sind (Stand Januar 2014) mit 433MHz und 868MHz zu bekommen.
Seit einiger Zeit sind auch 2,4GHz Module wie das RFM70 (abgekündigt) und das RFM73 (ersetzt das RFM70) im Sortiment.
 
VersuchsaufbauDie Module werden per SPI angesteuert und parametrisiert. Um die Arbeit und die Inbetriebnahme dieser Module anderen Nutzern zu erleichtern stelle ich her eine kleine Libary in C zur Verfügung.
Mit dem kleinen Versuchsaufbau links wurde die Libary entwickelt und getestet.
 
Der linke Teil (die untere grüße Platine und der Teil auf dem Steckbrett) ist der Sender. Dieser sendet im Beispielprogramm nach dem Einschalten ein Paket mit zehn Buchstaben.
Der rechte Teil auf dem Steckbrett ist der Empfänger. Das Modul wird so konfiguriert das es die ganze Zeit empfängt.
Die Leitungen die nach oben aus dem Bild führen sind die seriellen Schnittstellen der AVRs.
 
 
Zur Libary:
Die Libary kann für den Sender sowie für den Empfänger gleichermaßen benutzt und muss nicht für jeden Teil extra angepasst werden.
Über einige Parameter können Funktionen die nur in seltenen Fällen benötigt werden vom Compilieren ausgeschlossen werden und somit ca. 300 Byte Programmcode gespart werden.
Es können alle Funktionen und Optionen der Module gesteuert werden.
 
Alle Funktionen sind reichlich mit Kommentaren dokumentiert. In der zugehörigen Headerdatei können die Pins mit/an denen das Funkmodul mit dem AVR verbunden konfiguriert werden.
In den Beispielen werden die Interruptausgänge der Module benutzt (sind am AVR auf den INT0 Eingang geführt) um auf ein-/ausgehende Pakete reagieren zu können. Es bietet sich jedoch auch die Möglichkeit die Funkmodule zu pollen (zyklisch abzufragen) ob ein Paket eingegangen oder das Senden des Paketes fertig ist (diese Möglichkeit wurde in den Beispielen noch nicht implementiert).
 
Die Projekte in der Zip-Datei sind mit dem AVR-GCC (als "IDE" kommt hier ds Programmers Notepad 2 zum Einsatz) erzeugt. Die eigentliche Libary kann aber auch in anderen Umgebungen genutzt werden.