Forum: Mikrocontroller und Digitale Elektronik RF12 stand_by_modus


von thai_boxer (Gast)


Lesenswert?

Hallo,

habe ein Problem mit meinen RF12 Modul. Habe eine Schaltung aus einen 
Atmega32 und dem Modul. Um Strom zu sparen versetze ich zuerst das RF12 
Modul in den stand_by_mode und danach den uc. in den sleep_mode.
Leider lässt sich nur der uc runterfahren aber nicht das SendeModul.
Habe einen Amperemeter angeschlossen, im Normalbetrieb verbrauche ich um 
die 18mA. Versetze ich den uc in den sleep_mode so sinkt der Verbrauch 
auf 12mA. Leider lässt sich das Modul nicht in den stand_by_mode 
schalten.

Nutze hierfür die Funktion,
1
void rf12_sleep(void)
2
{
3
  rf12_trans(0x8201);//power managment, shut down    
4
  _delay_ms(100);  //1/3686400=2,71...-> 100 steps so shut down RF12 
5
6
}

kennt eventuell jemand das Problem?

Gruß

von RFunker (Gast)


Lesenswert?

Hallo,

kennst Du den Artikel 
http://www.mikrocontroller.net/articles/RFM12#Power-Management ?
Du scheinst nur die Taktausgabe abzuschalten.

von thai_boxer (Gast)


Lesenswert?

Also, laut Datenblatt, wird alles auf 0 gesetzt, d.h. ausgeschaltet 
Sender, Empfänger,..., sobald ich den Befehl "8201" an das Modul 
schicke.
Sollte eigentlich stimmen.

von Christoph H. (webturtle)


Lesenswert?

Vielleicht hilft dir das:
Ich hatte ähnliche Probleme.

Dann bin ich hin und hab das RFM12 über einen Port des µC mit Strom 
versorgt.
Ich schalte es also über den Port ein, initialisiere es, sende meine 
Daten und schalte es wieder aus.

Hierbei ist mir dann aufgefallen dass nach dem ausschalten ein weit 
höherer Strom gezogen wird.

Lösen konnte ich es nur indem ich auch die SPI Pins alle auf Ausgang 
setzte und abschaltete.

Damit geht es aber.

Chris

von thai_boxer (Gast)


Lesenswert?

Aber, wenn ich das Modul ganz abschalte, kann ich nicht 2x die Sekunde 
aufwachen und einige bytes versenden. Dann brauche ich viel zu lange, um 
das Modul zu initialisieren.

Diese Zeit ist a) zu lang und b) verbraucht dies damit zu viel Strom

Mein Ziel ist es, das Modul wirklich in den Standby mode zu versetzten. 
Evtl. hilft folgendes?!?


...
rfm12_standby();
_delay_ms(5)
rfm12_standby();
...

Danke für weitere Hilfe!

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.