Forum: Mikrocontroller und Digitale Elektronik RFM12 Sender hängt sich auf


von Cetin A. (exaware)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe zwei Pollin-Boards mit jeweils zweil einem RFM12-Modul.
Nun sendet das eine Board im Sekundentakt Daten an das andere Modul.
Das andere Modul leitet diese Daten weiter über UART an den Rechner,
wo die Daten geloggt werden. Mein Problem ist das die Module bis zu zwei 
Stunden gut funktionieren, dann beginnt der Sender nur noch Mist zu 
senden und stellt das Senden ganz ein. Wenn ich dann das Sender Board 
resete, sendet es wieder weiter.
Beim Senden wird am Senderboard die LED2 getoggelt und am Empfängerboard 
wird beim Empfang ebenfalls die LED2 getoggelt. Jedoch habe einmal 
festgestellt als sich der Sender wieder aufghängt hatte, dass am 
Senderboard die LED1 an war. Die LED1 wird aber im Programm nirgends 
angesteuert. Deshalb nehme ich an, das mein Controller nach einigen 
Stunden aus irgendeinem Grund sich verabschiedet und einen undefinierten 
Zustand einnimmt.

Habe meinen Code und die Log-Datei die am Empänger erstellt wird 
angefügt.

Die letzte Spalte in der Logdatei stellt das Status-Register des RFM12 
dar.
Ich verstehe aber nicht warum hier nicht mehr als 10 Bit ankommen. Das 
Register ist 16 Bit breit, das heist von Bit10 bis Bit15 müssten ja nur 
Nuller kommen.

Hat jemand eine Idee, warum sich mein Sender nach einigen Stunden sich 
aufhängt?

von Sauger (Gast)


Lesenswert?

Moin,

du "überfährst" das Modul.

Beim lesen des FIFOs max. 2 Mhz SPI Takt, auslesen des Statusregisters 
(und Prüfung) ist Pflicht.

MfG

von Cetin A. (exaware)


Lesenswert?

ja aber mein SPI-Takt liegt doch bei 2 MHz. Ich haben eine Teiler von 8 
eingestellt. Ich habe einen 16 MHz quarz verbaut. Das Problem muss am 
Sender-Board liegen, weil dieser sich aufhängt. Ich habe mir mal das 
Statusregister direkt nach dem Initialiseren anzeigen lassen. Das 
Problem ist, ich bekomme nach jedem Reset einen anderen Statuswert, dass 
kann doch nicht sein oder? Und das mein Status-Wort nur 10 Bit breit 
ist, finde ich auch komisch. Ich weiß nicht ob ich dem Statuswert den 
ich auslese trauen kann.

von Cetin A. (exaware)


Lesenswert?

hat niemand einen Tip für mich?

von Cetin A. (exaware)


Lesenswert?

ich habe mal nun den Sender alle 10 Sekunden neu initialisiert. Jetzt 
ist das ganze etwas länger gelaufen. von 23 Uhr bis morgens 5 Uhr. Dann 
hing der Sender wieder.

von Joachim R. (jorath)


Lesenswert?

Moin,

schick mir mal deine E-Mail Adresse. Ich übermittele dir dann die 
Quellen einen Uhrzeitsenders, der seit Jahren läuft.

MfG
Sauger

P.S.
den dusseligen Optokoppler auf dem Board hast du überbrückt?

von Cetin A. (exaware)


Lesenswert?

@Joachim
Danke für deinen Code. Sobald ich mal länger Zeit habe,
werde ich deinen Code mal bei mir testen. Zur Zeit habe
ich nur für kleine Änderungen Zeit und starte dann immer
das Logging.

@all
Ich freue ich mich über weiter Tipps. Ich würde, wenn es geht auch 
meinen
Code zum Laufen bekommen, da man auf diese Weise meiner meinung nach am
meisten lernt.

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.