Forum: Projekte & Code RFM02 Sleep Mode


von Holger (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

seit geraumer Zeit lag bei mir ein Pärchen RFM01/02 im Schubfach. Nun 
habe ich dieses in einer Fernbedienung verbaut. Foto im Gehäuse von 
Segor (noch ohne Lithiumzelle CR2032) anbei. Ausgeliehen habe ich mir 
dazu den Code von Benedikt, hat sofort funktioniert...
Beitrag "Re: Beispielprogramm für RFM12 433MHz Funk-Module"
Danke dafür!
Das Problem war, daß sich das Modul wie ein unartiges Gör verhalten hat 
und erst nicht schlafen und dann nicht mehr aufstehen wollte :-)
Gefunden habe ich eigentlich nix. Hier im Forum wird immer nur der Wake 
up Timer des RFM verwendet. Das nutzt mir nichts. Woher soll das RFM 
wissen, wann jemand den Knopf drückt?;-)

Bei mir geht das jetzt so:
Sleep
********
-Sleep Commando lt. RF02 Datenblatt senden
        rf02_trans(0xC000);
-danach das Modul über ChipSelect deaktivieren
        RF_PORT&= ~(1<<CS);

->Modul schläft...zzzzzzz

-Prozessor auch schlafen legen...


Aufwachen
**********
-Prozessor aufwecken...

-CS wieder einschalten
        RF_PORT|=(1<<CS);
-1 ms warten (ohne diese Wartezeit ging es nicht oder nicht zuverlässig)
        _delay_ms(1);
-das Power Management Command Basisadresse C000h nochmal senden
(bei mir:->)
        rf02_trans(0b1100000011101001);

-RFM02 wieder da!
...String senden und von vorn

Vielleicht hilft die Vorgehensweise jemandem, ich musste lange 
rumprobieren..

Gruß Holger

von Michael U. (amiga)


Lesenswert?

Hallo,

Holger schrieb:
> Das Problem war, daß sich das Modul wie ein unartiges Gör verhalten hat
> und erst nicht schlafen und dann nicht mehr aufstehen wollte :-)
Ein 10µ Elko nahe am RFM02 hat bei mir diese Probleme komplett 
beseitigt.

> Gefunden habe ich eigentlich nix. Hier im Forum wird immer nur der Wake
> up Timer des RFM verwendet. Das nutzt mir nichts. Woher soll das RFM
> wissen, wann jemand den Knopf drückt?;-)
Der WakeUp-Timer macht ja mit dem RFM sowieso nichts, er legt nur den 
IRQ-Ausgang auf L und damit wacht dann z.B. bei meinen Sensoren der 
ATiny auf. Da kann ich ohne prinzipielle Softwareänderung auch eine 
Taste an den AVR-Pin hängen.

>
> Bei mir geht das jetzt so:
> Sleep
> ********
> -Sleep Commando lt. RF02 Datenblatt senden
>         rf02_trans(0xC000);
> -danach das Modul über ChipSelect deaktivieren
>         RF_PORT&= ~(1<<CS);
>
> ->Modul schläft...zzzzzzz
>
> -Prozessor auch schlafen legen...
>
>
> Aufwachen
> **********
> -Prozessor aufwecken...
ok.

> -CS wieder einschalten
>         RF_PORT|=(1<<CS);
> -1 ms warten (ohne diese Wartezeit ging es nicht oder nicht zuverlässig)
>         _delay_ms(1);
Naja, da sind die Zeiten, bis der Quarzoszillator des RFM angeschwungen 
ist usw. nötig. Wie lange ich da warte, müßte ich in meiner Source 
nachschauen.
> -das Power Management Command Basisadresse C000h nochmal senden
> (bei mir:->)
>         rf02_trans(0b1100000011101001);

Ja logisch muß Du den RFM wieder passend einschalten, der ist ja nach 
Sleep aus...

> -RFM02 wieder da!
> ...String senden und von vorn

Kannst ja gern in meine Sensor-Sourcen schauen:
http://www.avr.roehres-home.de/sensoren/index.html

Gruß aus Berlin
Michael

von OlliW (Gast)


Lesenswert?

@Holger: SUPER! Ich bin gerade dabei Wireless für die Carrerabahn der 
Kinder zu basteln, klappt alles auch, nur der Sender spaart noch keinen 
Strom... ich stehe also auch gerade vor diesem Schritt. Mir ging es auch 
so wie dir, immer nur Wakeuptimer. Deine Info's werden mir sehr nützlich 
sein. Danke dafür.

@Michael: du sagst also dass mit dem Wakeuptimer geht so: der 
Wakeuptimer gibt ein Signal an den uC um diesen aufzuwecken, der uC ist 
aber anschliessen dafür verantwortlich seinerseits den RFM aufzuwecken? 
(ich hatte das immer so verstanden dass mit dem Wakeupsignal auch der 
RFM "automatisch" aufwacht... schien mir auch irgendwie logisch(er))

Thx,
  Olli

von Michael U. (amiga)


Lesenswert?

Hallo,

OlliW schrieb:
> @Michael: du sagst also dass mit dem Wakeuptimer geht so: der
> Wakeuptimer gibt ein Signal an den uC um diesen aufzuwecken, der uC ist
> aber anschliessen dafür verantwortlich seinerseits den RFM aufzuwecken?
> (ich hatte das immer so verstanden dass mit dem Wakeupsignal auch der
> RFM "automatisch" aufwacht... schien mir auch irgendwie logisch(er))

Wozu? Der RFM liegt doch sowieso nur rum und kann nichts alleine machen 
ohne den µC...

Würde sonst ja nur heißen, daß der RFM aufwacht und mehr Strom 
verbraucht und dann?

Gruß aus Berlin
Michael

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.