Wie Latenz bei RFM22B einstellen/berechnen

Gast #2067997
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?
Gast
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 ;-).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 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.