www.mikrocontroller.net

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


Autor: dijogo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: dijogo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.