Forum: HF, Funk und Felder Probleme mit RFM69CW Modul


von Heiko G. (hgue)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich habe hier einen Aufbau mit STM32F103 Mikrocontrollern und dem 
Funkmodul RFM69CW. Die SPI Ansteuerung funktioniert gut und ich kann die 
Register auf mehreren Entwicklungsboard Aufbauten lesen und schreiben.

Mein Aufbau ist folgendermaßen:

1. Board STM32-H152 mit Pollin "Funkmoduladapter RFM12/RFM12B"
2. Board Olimexino STM32 mit Pollin "Funkmoduladapter RFM12/RFM12B"

Die Adapterboards dienen nur der Adaption der Funkmodule und sind per 
Steckkabel an den Stiftleisten der Entwicklungs-Platinen angeschlossen.
Die RFM69CW Module sind ja pin-kompatibel mit den RFM12B Modulen.

Ich verwende für den Zugriff auf die RF69-Module die Bibliothek von 
Andre Heßling, allerdings habe ich sie auf reines C umgestellt.

Nun habe ich das Problem, dass ich keine Daten senden bzw. empfangen 
kann.
Teilweise empfangen die RFM-Module etwas, aber es ist nur Müll. Die 
Module liegen direkt nebeneinander und haben jeweils eine ca 8cm lange 
Drahtantenne.

Beim Sender bekomme ich einen TX_Fifo_Not_Empty Interrupt, daher denke 
ich, dass die Sende-Daten korrekt im Fifo gelandet sind. Die Register 
des Senders und Empfängers sind identisch konfiguriert und im Anhang 
ersichtlich. Gibt es Registerwerte, die besonders wichtig sind und ich 
eventuell übersehen habe? Das Datenblatt habe ich schon öfters und 
intensiv studiert und kann nichts mehr finden, was nicht passen sollte.

Gibt es eine einfache Möglichkeit rauszufinden, ob Sender oder Empfänger 
bei mir ein Problem haben?
Mir ist noch aufgefallen, dass die RSSI Werte nicht so berauschend sind 
(teilweise < -100dbm).. Vielleicht ist da etwas nicht optimal.

Ich wäre für eure Hilfe sehr dankbar!

Grüße,
Heiko

von robs (Gast)


Angehängte Dateien:

Lesenswert?

Heiko G. schrieb:
> Gibt es eine einfache Möglichkeit rauszufinden, ob Sender oder Empfänger
> bei mir ein Problem haben?

Besorg dir einen RTL2832 DVB-T Stick, um ihn als SDR-Empfänger zu 
betreiben. So kannst du sehen, ob der Sender überhaupt was sendet (s. 
Anhang). Ohne dem Teil hätte ich mit meiner Poor Man's Messausstattung 
meine ISM-Module nie zum Laufen gebracht.

> Mir ist noch aufgefallen, dass die RSSI Werte nicht so berauschend sind
> (teilweise < -100dbm).. Vielleicht ist da etwas nicht optimal.

Das ist Noise-Level, also definiv nicht das Signal des Senders, wenn die 
beiden Module direkt nebeneinander stehen. Da sollten es mindestens 
-40dBm und mehr sein.

von Arduinoquäler (Gast)


Lesenswert?

Heiko G. schrieb:
> Mein Aufbau ist folgendermaßen:

Den solltest du zeigen wenn du wirklich Hilfe erwartest.

Auch den Schaltplan, auch wenn es dir unnütz erscheint.
Und das Netzteil sollte nicht unerwähnt bleiben da es
unter anderem eine "störende" Rolle spielen kann.

von robs (Gast)


Lesenswert?

Heiko G. schrieb:
> Gibt es Registerwerte, die besonders wichtig sind und ich
> eventuell übersehen habe?

Mir fällt da eben was an den Register-Werten im Screenshot auf:

RegRxBW = 85 -> Wenn das dezimal sein soll, dann wären das hex. 0x55. 
Dröselt man die einzelen Bits auf, bedeutet das:

 DccFreq[7:5]=2
 RxBwMant[4:3]=b10 (entspr. 24)
 RxBwExp[2:0]=5

Das ergibt lt. Datenblatt eine RxBW von 10,4 kHz im FSK-Modus. 
Andererseits hast du aber in RegFdev eine Deviation von knapp 35kHz. So 
kann der Empfänger nie was decodieren.

Probier es mal mit RegRxBW = 0x2A

 DccFreq[7:5]=2
 RxBwMant[4:3]=b10 (entspr. 24)
 RxBwExp[2:0]=2

Das entspricht einer RX-Bandbreite von ca. 83 kHz. Mal davon abgesehen, 
dass die Deviation bei 2400 bps ohnehin viel zu hoch ist.

von Heiko G. (hgue)


Lesenswert?

Hallo zusammen,
danke erst einmal für das Feedback!
Der letzte Punkt hat mich auf eine funktionierende Variante gebracht.

-> Es muss RegRxBW = 0x52 und nicht 0x2A heißen für die folgenden Werte:

DccFreq[7:5]=2
RxBwMant[4:3]=b10 (entspr. 24)
RxBwExp[2:0]=2

-> Die Bitrate habe ich mal auf 1200 reduziert.
-> Für Fdev habe ich 5000Hz statt 30000Hz angesetzt.

Das scheint so zu gehen und ich teste bei Gelegenheit mal weiter. Ich 
bekomme jetzt einen RSSI-Wert von -30dBm, ist das ein guter Wert und zu 
erwarten?

Kann mir nochmal jemand kurz die obigen Einstellungen erläutern? Es 
scheint hier ja sehr darauf anzukommen wie die Filter konfiguriert sind. 
Ich wäre dankbar für Tipps, welche Werte man besser nicht antasten 
sollte und warum. Mit welchen Werten habt ihr gute Erfahrungen gemacht 
abgesehen von den oben geschriebenen Einstellungen?

Danke euch!
hg

von Werner M. (Gast)


Lesenswert?

Heiko G. schrieb:
> Es scheint hier ja sehr darauf anzukommen wie die Filter
> konfiguriert sind.

So ist das bei Empfängern.

Das Sendesignal hat abhängig von Modulationsart und Modulationsfrequenz 
eine gewisse Bandbreite, die dann auch vom Empfänger erfasst werden 
sollte, sofern er in der Lage sein soll, das Signal zu dekodieren.

> Ich wäre dankbar für Tipps, welche Werte man besser nicht antasten
> sollte und warum. Mit welchen Werten habt ihr gute Erfahrungen gemacht
> abgesehen von den oben geschriebenen Einstellungen?

Eine Datenübertragungsstrecke experimentell und durch Weiterreichen von 
Erfahrungen aufzubauen, ist nicht unbedingt der effektivste Weg, wenn 
man die Strecke nicht mit 0815-Parametern betreiben möchte.

Ein paar Grundlagen zur HF-Technik wären nicht schlecht, zumindest 
soviel, dass man mit den Begriffen etwas anfangen kann und versteht, was 
irgendwelche Einstellungen in den Registern am Empfänger/Sender ändern.

von Hannes (Gast)


Lesenswert?

Heiko G. schrieb:
>
> Das scheint so zu gehen und ich teste bei Gelegenheit mal weiter. Ich
> bekomme jetzt einen RSSI-Wert von -30dBm, ist das ein guter Wert und zu
> erwarten?
>

Hallo Heiko,

hast du noch Versuche mit den Modulen durchgeführt?
Ich bin gerade auch am Testen von unterschiedlichen 
Einstellungsmöglichkeiten des Frequenzhubs und der Empfängerbandbreiten.
Das beste Ergebnis erzielte ich bisher bei:
Fdev: 35kHz; BR: 9,6kHz; RxbW: 41,7kHz; und RxbW(AFC): 62,5kHz

Lustigerweise geht die erfolgreiche Übertragungsquote bei kleineren 
Frequenzhüben (10-20kHz) zurück. Kann sich das jemand erklären?
Wie ermittelt man allgemein den optimalen Frequenzhub in Abhängigkeit 
der Datenübertragungsrate BR?
Sollte man das Gerät eher in der Schmal- oder Weitbandmodulation 
betreiben?

Heiko, wäre dir dankbar wenn du noch von Deinen Versuchen berichten 
könntest :)

Schöne Grüße
Hannes

von Knackwurscht (Gast)


Lesenswert?

Hannes schrieb:
> Wie ermittelt man allgemein den optimalen Frequenzhub in Abhängigkeit
> der Datenübertragungsrate BR?
Dafür gibts ein Tool von TI und deren baugleichen Modulen, steckt eh 
überall Silabstechnik drinn oder du holst dir die Werte von der 
Radioheadlib, der hat die Werte mit dem Tool direkt in die Lib gegossen 
oder nutzt besser gleich diese Lib anstatt die Zeit mit selber frickeln 
zu verplempern.

von Hannes (Gast)


Lesenswert?

Knackwurscht schrieb:
> Dafür gibts ein Tool von TI und deren baugleichen Modulen, steckt eh
> überall Silabstechnik drinn oder du holst dir die Werte von der
> Radioheadlib, der hat die Werte mit dem Tool direkt in die Lib gegossen
> oder nutzt besser gleich diese Lib anstatt die Zeit mit selber frickeln
> zu verplempern.

Wo findet sich dieses Tool zur Berechnung der Werte?

Naja die Library ist schön und gut, aber ich würde gerne den 
theoretischen Hintergrund verstehen. Und über den Zusammenhang zwischen 
Datenübertragungsrate und Frequenzhub habe ich noch nirgends was 
gefunden.
Empirisch konnte ich nun den für mich optimalen herausfinden. Dennoch 
verstehe ich nicht, warum sich die Schmalbandmodulation auf längere 
Strecken bei meinem Versuchsaufbau schlechter verhält ein höherer 
Modulationsgrad von 6-7.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.