Hallo zusammen,
ich habe nun endlich meine RFM12-basierte Funkbrücke erfolgreich in
Betrieb genommen. (Nach ca. 4 Wochen :D ) Aber ich hab nicht aufgegeben.
Jetzt funktioniert alles einwandfrei mit den Beispielprogrammen und mit
meinen eigenen. Bei dem Beispielprogramm handelt es sich um das aus dem
Thread: Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module"
Nur folgendes Problem:
Wenn ich das ganze Testboard (Steckbrett) aus und wieder einschalte
kommt es manchmal dazu, dass der Sender nicht mehr sendet. Ich muss
dann, komischer Weise, zunächst das Programm für den Empfangsmodus
überspielen. Und anschließend das Sende-programm. Erst dann geht es
wieder.
Jetzt ist es natürlich so, dass ich die Fernbedienung (Die daraus mal
entstehen soll, auch ausschalten möchte, oder sie ggf komplett ausgeht
wegen batteriewechsel/hinfallen etc.)
Was kann ich tuen damit das nicht mehr passiert.
Danke schonmal für die Hilfe!
Evtl. Fehler beim Initialisieren: das Programm zum Empfangen
initialisiert richtig, das Programm zum Senden nicht (vielleicht fehlt
das Initialisieren eines Registers oder falsche Werte?).
Die Initialisierungen sind identisch:
[c]
uart_init(UART_BAUD_SELECT(19200, F_CPU));
rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz)
rf12_setfreq(RF12FREQ(433.92)); // Sende/Empfangsfrequenz
rf12_setbandwidth(4, 1, 4); // 200kHz Bandbreite, -6dB Verstärkung,
DRSSI threshold: -79dBm
rf12_setbaud(19200); // 19200 baud
rf12_setpower(0, 6); // 1mW Ausgangangsleistung, 120kHz
Frequenzshift
[\c]
Normalerweise funktioniert es ja auch. Aber wie gesagt, es funktioniert
manchmal nicht mehr, wenn ich den Strom wegnehme...
Du kannst doch nicht erwarten, dass 40 Minuten nach deinem Post schon
eine Antwort kommt. Da musst du schon etwas geduldiger sein. ;)
Gaasi schrieb:> uart_init(UART_BAUD_SELECT(19200, F_CPU));> rf12_init(); // ein paar Register setzen (z.B. CLK auf 10MHz)> rf12_setfreq(RF12FREQ(433.92)); // Sende/Empfangsfrequenz> rf12_setbandwidth(4, 1, 4); // 200kHz Bandbreite, -6dB Verstärkung,> DRSSI threshold: -79dBm> rf12_setbaud(19200); // 19200 baud> rf12_setpower(0, 6); // 1mW Ausgangangsleistung, 120kHz> Frequenzshift
Diese Initialisierung hilft uns nicht weiter. Wenn schon, dann brauchen
wir die realen Werte die in den RFM12 geschrieben werden und keine
Wrapperfunktionen. Eventuell ist nämlich in diesen schon ein Fehler
drin.
Ebenso brauchen wir die Werte die in den RFM12 geschrieben werden, wenn
du ein Paket sendest. Am besten hängst du mal den gesamten relevanten
Codeteil für die RFM12 an deinen Post an.
Ich betreibe die RFM12 auch in einem selbstgebauten Handsender und sie
funktionieren nach jedem aus- und einschalten problemlos.
Ciao,
Rainer
Hallo,
hänge mal zum Test dicht an den Spannungsanschlüssen des RFM einen Elko
10..22µF.
Ich hatte den Effekt, daß er nach dem Aufwecken aus dem Sleep manchmal
nicht senden wollte, der Elko half zuverlässig.
Nach PowerOn außerdem als erste Amtshandlung beim Initialisieren den
Status auslesen, sonst gab es bei mir trotz Wartezeit öfter keine
Reaktion.
Gruß aus Berlin
Michael
Hast du auf deinem Steckbrett einen Elko? Ansonsten hat das Modul bei
mir nach dem Anschalten ab und zu einfach nicht funktioniert. Lief dann
aber spätestens nach einem Reset.