RFM69

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Version vom 21. Mai 2014, 16:04 Uhr von 91.49.193.67 (Diskussion) (Rechtschreibfehler korrigiert)
Wechseln zu: Navigation, Suche
RFM69CW

Funkmodul RFM69

Beschreibung der Funkmodule RFM69CW, RFM69W. Das Modul RFM69CW hat 2 Pins weniger als das RFM69W (bei RFM69C fehlt der Pin DIO4), und ist Pinkompatibel zum Vorgänger RFM12B. Es nd kann ohne Änderung am Layout oder der Schaltung ausgetauscht werden. Lediglich die Software muss angepasst werden.

Ausstattung

  • Betriebsspannung 1,8 - 3,6 V
  • SPI Schnittstelle
  • FSK und OOK Modulation
  • Frequenzbereiche 315, 433, 868, 915 MHz
  • Max. Datenrate 300 kbit/s
  • Ausgangsleistung +13 dBm (rund 20 mW)
  • Stromaufnahme 45 mA senden, 16 mA empfangen, 0,1 µA stand by
  • Integrierte Packetengine für Synchronwort, CRC, Scrambling und AES-Verschlüsselung
  • 66 Byte FIFO

Vergleich zum RFM12B

RFM12B RFM69
Versorgungsspannung 2,2 - 3,8 V 1,8 - 3,6 V
Max. Datenrate 115,2 kbit/s 300 kbit/s
Sendeleistung 5 dBm 13 dBm
Empfindlichkeit -105 dB -120 dB
Stromaufnahme 22 mA/11 mA/0,3 µA 45 mA/16 mA/0,1 µA
FIFO Größe 16 Bit 66 Bytes

Ansteuerung

Das Funkmodul kommuniziert über die SPI Schnittstelle mit dem µC. Im einfachsten Fall werden SCK, MISO, MOSI und NSS benötigt. Am besten führt man auch noch DIO0 zum Prozessor. Dieser Pin kann z.B. anzeigen wenn ein Packet vollständig gesendet wurde, oder ein neues Packet empfangen wurde. Prinzipiell wird zuerst ein Adressbyte geschickt, auf welches Register zugegriffen werden soll. Das höchstwertigste Bit im Adressbyte gibt an ob das Register gelesen (Bit 7 = 0) oder geschrieben (Bit 7 = 1) werden soll. Werden nach dem Adressbyte mehrere Bytes empfangen oder gelesen, wird der Adresszeiger im RFM69 automatisch inkrmentiert, so dass in einem einzigen Burst mehrere Register gelesen werden können. Zu beachten ist dabei dass in Registern die mehr als 8 Bit breit sind (Frequenz, Bitrate, ...) das höchstwertige Byte zu erst geschrieben / gelesen wird (big endian). Wird das FIFO Register gelesen/geschrieben, wird der Adresszeiger nicht inkrementiert, so dass auf das FIFO in einem Burst zugegriffen werden kann.

Pinbelegung RFM69CW

Pinnummer Name Richtung Beschreibung Pin am RFM12
1 ANA Antennenanschluss ANT
2 3.3V Versorgungsspannung VDD
3 GND GND
4 DIO3 FifoFull PllLock
Rssi
SyncAdress
TXReady
nINT/VDI
5 MOSI SPI Daten Eingang SDI
6 SCK SPI Takt SCK
7 NSS Chip select nSEL
8 MISO SPI Daten Ausgang SDO
9 DIO0 PllLock (FS, TX)
CrcOK (RX)
PayloadReady (RX)
SyncAddress (RX)
Rssi (RX)
PacketSent (TX)
TxReady (TX)
nIRQ
10 DIO2 FifoNotEmpty (Sleep, Stdby, FS, RX, TX)
AutoMode(Sleep, Stdby, FS, RX, TX)
Data (RX, TX)
FSK/DATA/nFFS
11 DIO1 FifoLevel (Sleep, Stdby, FS, RX, TX)
FifoFull (Sleep, Stdby, FS, RX, TX)
FifoNotEmpty (Sleep, Stdby, FS, RX, TX)
PllLock (FS, TX)
Timeout (RX)
DCLK/CFIL/FFIT
12 DIO5 ModeReady
ClkOut (Stdby, FS, RX, TX)
Data (RX, TX)
CLK
13 RESET nRES
14 GND GND

Register

Adresse Registername Beschreibung Beispiel
0x00 RegFifo Zugriff auf das FIFO Register
0x01 RegOpMode Betriebsart (senden, empfangen, ...) 0x04 = Empfangen
0x02 RegDataModule Modulationsart &-shaping, Packetengine 0x00 = FSK, Packetengine aktiv
0x03 - 0x04 RegBitrate = FXOSC/Bitrate 0x1A0B = 6667 -> 4,8 kbit/s
0x05 - 0x06 RegFdev Frequenzabweichung (Hub * 2) 0x52 = 82 -> 5 kHz
0x07 - 0x09 RegFrf Mittenfrequenz 0xD91333 = 14226227 -> 868,300 MHz
0x11 RegPaLevel Sendeleistung 0x12 = 18 -> 0 dBm
0x19 RegRxBw Filterbandbreite 0b01001 -> 200 kHz
0x25 RegDioMapping1 DIO Funktionen
0x2C - 0x2D RegPreamble Preamblelänge
0x2E RegSyncConfig Synchronworteinstellungen
0x2F - 0x36 RegSyncValue Synchronwort 0x2DD4
0x37 RegPacketConfig1 Einstellungen Packetengine
0x38 RegPayloadLength Datenpacketgröße

Bezugsquellen

Seegel Systeme

Links

Datenblatt RFM69CW Datenblatt RFM69W