RFM69 868 MHz Funkmodul empfängt korrupte Daten

Gast #5343946
Hallo zusammen,

ich bin jetzt schon seit mehreren Tagen dabei, zu versuchen, eine 
Funkstrecke zwischen zwei RFM69CW-Funkmodulen (868MHz Variante) 
aufzubauen.
Der Sender scheint einwandfrei zu funktionieren, wohingegen der 
Empfänger zwar über entsprechende Konfiguration des DIO0-Pins anzeigt, 
dass der RSSI-Wert einen festgelegten Treshold (-86 dB) beim Senden 
überschreitet, aber PayloadReady im IRQFlags2 (0x28) Register trotzdem 
nicht setzt.

Beide Module werden exakt gleichermaßen über folgende Konfiguration 
initialisiert:

https://github.com/LowPowerLab/RFM69/blob/dcda86fb903c06bb09d2fea0c3612bed2d18ddc4/RFM69.cpp#L46-L82

Die Daten werden über SPI auch korrekt übertragen, wie ich mit einem 
Logik-Analyzer überprüft habe.

Beim Empfänger-RFM69 kann ich allerdings kein PayloadReady-Interrupt 
über DIO0 oder per Polling im IRQFlags2-Register(0x28) feststellen, was 
für mich unerklärlich ist.

Wenn ich CRC deaktiviere (RF_PACKET1_CRCAUTOCLEAR_OFF in 
REG_PACKETCONFIG1 setzen) und den RSSI-Wert auf -114dB (Standard) setze, 
erhalte ich unregelmäßig und unabhängig vom Sender manchmal ein 
PayloadReady-Interrupt. Im FIFO sind dann allerdings irgendwelche 
zufälligen Daten zu finden, die nichts mit dem zu tun haben, was ich 
gesendet habe.

Um letztendlich beim Empfänger PayloadReady feststellen zu können, frage 
ich koninuierlich das IRQFlags2-Register ab und lese dann den FIFO aus, 
wenn das PayloadReady-Bit gesetzt ist.

Als Antenne verwende ich einen lambda/4 Kupferdraht.

Ich würde mich sehr über jegliche Anregungen freuen, was ich noch 
versuchen könnte, da mir langsam die Ideen ausgehen.
Sehr gerne kann ich alle möglichen weiteren Informationen liefern, die 
zur Lösung des Problems beitragen könnten!
Naja, wenn er es so wie in der Lib nutzt, ist die Empfängeradresse egal, 
weil die da in Software geprüft wird und die Filter vom RFM69 nicht 
genutzt werden...

Nur wenn er es selbst umgesetzt hat ist die wichtigste Frage: Enthält 
das erste Byte deiner Nachricht die Länge der Nachricht?
Gast
Danke für die Tipps!

Ich habe aus verschiedenen Gründen selbst ein Programm geschrieben. Die 
Länge der Nachricht stimmt auch. Eure Vorschläge haben mich aber auf 
eine weitere Idee gebracht, die sich als Lösung herausstellte:

Das Library versendet ja eigentlich nach dem Length-Byte mindestens mal 
4 Bytes, nämlich EmpfängerID, SenderID, ein Steuerbyte und dann 
mindestens ein frei wählbares Byte. Ich habe mir gedacht, ich brauche 
dieses Steuerbyte nicht, und habe es aus meiner Implementierung 
weggelassen. Da im Datenblatt steht, man benötige nach den Adressen 
mindestens nur ein Byte, habe ich auch zum Testen nur erst einmal 1 Byte 
Nutzlast nach den Adressen verschickt.

Wie es aussieht, muss man allerdings mindestens 2 Bytes versenden! Dann 
klappt alles einwandfrei, inklusive CRC!

Vielen Dank nochmal für die Hilfe. Ich hoffe, ich kann hiermit auch noch 
Weiteren helfen, bei denen das gleiche Problem auftritt.
QuantumPeak schrieb:
> Ich habe aus verschiedenen Gründen selbst ein Programm geschrieben. Die
> Länge der Nachricht stimmt auch. Eure Vorschläge haben mich aber auf
> eine weitere Idee gebracht, die sich als Lösung herausstellte:

Schön! Genau deshalb bohrte ich da rein, weil ich mich vage erinnerte, 
dass ich da auch anfangs Schwierigkeiten hatte.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.