RFM69
Ausführungen
- RFM69HCW, mit zusätzlicher PA, 20 dBm
- RFM69HW, mit zusätzlicher PA, 20 dBm
- RFM69CW, Pinkompatibel zum RFM12B
- RFM69W
Die CW-Variante hat 2 Pins weniger (es fehlt der Pin DIO4), und ist Pinkompatibel zum Vorgänger RFM12B. Es 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 (13 dBm), 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(C)W | |
|---|---|---|
| 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 RFM69(H)CW
| 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 |