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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.