Forum: HF, Funk und Felder Wie Latenz bei RFM22B einstellen/berechnen


von dijogo (Gast)


Lesenswert?

Hallo,

ich stehe grad mal wieder komplett auf dem Schlauch.

Ich habe mir eine Funkübertragungsschaltung mit dem RFM22B von Hope 
aufgebaut. Im Großen und Ganzen funktioniert das auch soweit. Aaaber ...
ich kriegt die Latenzzeiten nicht dahin, wie ich sie brauche.

Die RFMs sind auf 868Mhz eingestellt, 123kbps Datenratte, 
Manchestercodiert (also 246kbps Kanaldatenratte), Bandbreite 
knapp100kHz. Modulation FSK oder GFSK (beides ausprobiert).

Ich übertrage 4 Preamble Bytes, 1 Sync Byte, 1 Headerbyte und zwei 
Datenbytes. Macht zusammen 8 Bytes. Bei 123kbps bin ich jetzt auf ca. 
65us/Byte gekommen, also zusammen 520us pro Datenpaket.
Da der Quarzoscillator und die PLL bereits aktiv sind sollte die 
zusätzliche Latenz laut Datenblatt 200us nicht überschreiten. Macht ca. 
0,7ms.

Ich messe gut 1,5ms! Also mindestens das doppelte des Erwarteten.

Meine Messmethode sieht so aus:
Ich starte kurz vor der Übertragung einen Counter im Prozessor. Nach dem 
Starten der Übertragung schalte ich mittels einer variablen Wait-Loop 
die TX-Antenne ab. Ist die Warteschleife zu kurz, wird die noch laufende 
Übertragung unterbrochen und der Empfänger bleibt taub. Mit dieser 
Methode bin ich auf die 1,5ms gekommen, die notwendig sind, um eine 
Paketerkennung im Empfänger sicher zu stellen.
Ich habe auch ausgetestet, was passiert wenn ich statt zwei Datenbytes 
nur eines übertrage. Die Latenz reduziert sich dann um ca. 128us.
Das ist irgendwie schon komisch, denn ich hatte ja oben 65us/Byte 
ausgerechnet.

Wo liegt mein Denkfehler? Oder ist es ein Konfigurationsfehler im 
RFM22B?
Ich brüte da jetzt schon seit zwei Wochen drüber und hab anscheinend 
Tomaten auf den Augen (oder den grauen Zellen ;-) ).

Hat irgendwer eine Idee?

von dijogo (Gast)


Lesenswert?

Voila, einen Fehler (Schusseligkeitsfehler) habe ich gefunden :-).
Ich hatte versehentlich den Wert für die Preambel auf 32 gesetzt und 
dabei vergessen, daß die in Nibbel angegeben wird und nicht in Bits.

Auf knapp 1,1ms bin ich jetzt runter. Die 800us schaff ich auch noch ... 
irgendwann ;-).

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.