Hallo!
Hat hier jemand Praxiserfahrungen mit dem RFM69W bzw. RFM69HW?
Beide Module sind bezüglich Register identisch, bis auf die Sendeleistung.
Bei meinem Projekt sollen in einem Timeslotverfahren Pakete mit einer festen Größe von 25 Byte ausgetauscht werden.
Diese 25 Bytes werden im Standbymode in das FIFO geschoben (SPI mit 2MHz Takt) und sollen dort dann wie folgt weiter verarbeitet werden:
Preable auf Defaultwert: 3 Byte = 24Bit
Syncwort besteht aus 2 Byte = 16Bit
Dann kommen meine 25 Byte = 200Bit
Zum Schluß eine CRC16 vom RFM69 - 2 Byte = 16Bit
Über den Sender sollen dann also inklusive Overhead 32 Bytes entsprechend 256 Bit.
Anfangs angestrebt war GFSK mit 9600Baud was laut meiner Annahme eine Paketlänge von ca. 0,0375 Sekunden (knapp 40ms) entsprechen würde.
Den DIO0 habe ich auf "Packet Sent" und schalte sobald dieses Signal aufläuft das RFM69 wieder in den Standby.
Ergebnis: Der Sender sendet eine komplette Sekunde, also etwa 25 mal so lange als geplant!
So richtig kam ich ins grübeln als ich die Baudrate hochgesetzt abe auf 19200Baud: Das Signal sieht anders aus, aber ist noch immer 1 Sekunde lang!
Ich steh auf dem Schlauch...was mache ich verkehrt?
Alles anzeigen
Grüße
Jürgen
Hat hier jemand Praxiserfahrungen mit dem RFM69W bzw. RFM69HW?
Beide Module sind bezüglich Register identisch, bis auf die Sendeleistung.
Bei meinem Projekt sollen in einem Timeslotverfahren Pakete mit einer festen Größe von 25 Byte ausgetauscht werden.
Diese 25 Bytes werden im Standbymode in das FIFO geschoben (SPI mit 2MHz Takt) und sollen dort dann wie folgt weiter verarbeitet werden:
Preable auf Defaultwert: 3 Byte = 24Bit
Syncwort besteht aus 2 Byte = 16Bit
Dann kommen meine 25 Byte = 200Bit
Zum Schluß eine CRC16 vom RFM69 - 2 Byte = 16Bit
Über den Sender sollen dann also inklusive Overhead 32 Bytes entsprechend 256 Bit.
Anfangs angestrebt war GFSK mit 9600Baud was laut meiner Annahme eine Paketlänge von ca. 0,0375 Sekunden (knapp 40ms) entsprechen würde.
Den DIO0 habe ich auf "Packet Sent" und schalte sobald dieses Signal aufläuft das RFM69 wieder in den Standby.
Ergebnis: Der Sender sendet eine komplette Sekunde, also etwa 25 mal so lange als geplant!
So richtig kam ich ins grübeln als ich die Baudrate hochgesetzt abe auf 19200Baud: Das Signal sieht anders aus, aber ist noch immer 1 Sekunde lang!
Ich steh auf dem Schlauch...was mache ich verkehrt?
BASCOM-Quellcode
- Testsendung:
- RFM = 0 '/CS aktivieren
- SPIOUT FifoW , 1 'FIFO-Schreibregister anwählen
- SPIOUT Paket_Test(1) , 25 'Datenpaket 25Byte ins FIFO schieben
- RFM = 1 '/CS deaktivieren
- waitms 5
- RFM = 0 '/CS aktivieren
- SPIOUT RFM_OpModeW , 1 'OpMode-Schreibregister anwählen
- SPIOUT RFM_TX , 1 'Modeumschaltung: TX
- RFM = 1 '/CS deaktivieren
- If RFM_INT = 0 then gosub Standby , end if 'Wenn letztes Byte gesendet Standby
- Return
- Standby:
- RFM = 0 '/CS aktivieren
- SPIOUT RFM_OpModeW , 1 'OpMode-Schreibregister anwählen
- SPIOUT RFM_Standby , 1 'Modeumschaltung: Standby
- RFM = 1 '/CS deaktivieren
- Return
Grüße
Jürgen