Forum: Mikrocontroller und Digitale Elektronik RFM12B: Wann wird der reset des Sendepuffers durchgeführt?


von Willi S. aus M. (Gast)


Lesenswert?

Hallo zusammen,

ich beschäftige mich mit ein paar RFM12B-Modulen und werde nun aus dem 
Datenblatt und Google-treffern nicht ganz schlau. Auch will mir gerade 
absolut nichts einfallen wie ich anderweitig selbst auf die Antwort 
kommen könnte. Daher möchte ich mich mit meiner Frage an euch wenden:

Laut dem Datenblatt (http://www.hoperf.com/upload/rf/RFM12B.pdf‎ Seite 
30) ist es möglich die Präambel (0xAAAA) vor dem Senden von Daten quasi 
vom Modul selbst erzeugen zu lassen. Sie schreiben, man müsse das el-Bit 
im "Configuration Setting" setzen, wodurch das Sende-Schieberegister 
aktiviert wird, welches wiederum default mit 0xAAAA befüllt ist. Beim 
aktivieren des Senders können dann zunächst diese Daten gesendet werden 
(also die Präambel) bevor dann andere Daten gesendet werden.
Andererseits schreiben sie aber auch, dass beim löschen des et-Bits (so 
verstehe ich das zumindest das Diagramm auf Seite 16) das Senderegister 
gelöscht wird. Ich würde das nun so deuten, dass das Senderegister 
wieder auf 0xAAAA gesetzt wird und somit vor dem erneuten Senden von 
Daten mit vorheriger Präambel nicht zwingend das el-Bit gelöscht und 
wieder gesetzt werden muss, damit die Präambel im Senderegister landet. 
Deaktivieren und erneutes Aktivieren des Senders müsste also ausreichen.

Konkret stelle ich diese Frage, da ich aktuell ein paar Probleme habe 
und vermute, dass nicht immer oder gar keine Präambel gesendet wird. 
Genaueres "Messen" entzieht sich allerdings meinen noch wachsenden 
Fähigkeiten.
Wenn ich allerdings einen kompletten Reset mache (wobei ja definitiv 
auch das Senderegister auf default zurückgesetzt wird) kommt jeweils das 
1. Paket sauber und zuverlässig an. Der Fehler kann überall stecken, das 
ist mir klar und ich möchte auch selbst danach suchen (die Arbeit muss 
keiner für mich übernehmen) nur diese eine Frage hier könnte mich schon 
zum Ziel bringen.

Also die Frage ich noch einmal kurz und deutlich:
um das Senderegister zurückzusetzen auf 0xAAAA muss man da auf jeden 
Fall das el-Bit löschen und neu setzen, oder genügt das deaktivieren und 
erneute aktivieren vom LNA (et-Bit).

Vielen herzlichen Dank
Gruß Willi

von c-hater (Gast)


Lesenswert?

Willi S. aus M. schrieb:

> Also die Frage ich noch einmal kurz und deutlich:
> um das Senderegister zurückzusetzen auf 0xAAAA muss man da auf jeden
> Fall das el-Bit löschen und neu setzen, oder genügt das deaktivieren und
> erneute aktivieren vom LNA (et-Bit).

Der Defaultwert wird beim PowerOnReset und bei einer 0->1 Flanke an el 
in das TX-Register geschrieben, danach bist du selber dafür 
verantwortlich.

Da du am Ende deines Nutzdatenblocks sowieso zwei Dummybytes schreiben 
mußt, damit deine Nutzdaten vollständig die Sendequeue verlassen können, 
ist es am sinnvollsten, an dieser Stelle zweimal $aa als Dummybyte zu 
schreiben und dann et auf 0 zu setzen, dann hast du den Ausgangszustand 
für die nächste Sendung schon wieder hergestellt und brauchst überhaupt 
nicht an el zu schrauben.

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.