Forum: Mikrocontroller und Digitale Elektronik RFM12 über µC ein und ausschalten


von Christian B. (chris001)


Lesenswert?

Hi Leute!

Ich möchte gerne über einen µC das Funkmodul RFM12 abschalten, wenn es 
nicht gebraucht wird.

Leider braucht das Modul nach dem einschalten sehr viel Strom. Ich habe 
in der Schaltung eine Spannungskonstante verbaut, die nicht mehr als 200 
mA her gibt. Diese 200 mA nimmt das Funkmodul sich nach dem Einschalten 
komplett. Schließe ich das Funkmodul fest an VCC an, funktioniert alles. 
Es ist also kein Schaltungsproblem.

Ich habe verschiedene tests gemacht, indem ich die Ports über die das 
Modul seine Daten bekommt nach GND oder nach + lege, leider alles ohne 
Erfolg.

Vielleicht hat schonmal jemand das gleiche Problem gehabt und kann mir 
weiterhelfen.

Danke

von Nobby Nic (Gast)


Lesenswert?

Schick es doch in den Schlafmodus!?

von Christian B. (chris001)


Lesenswert?

Ja, die Idee mit dem Schlafmodus hab ich auch schon gehabt. Wenn ich es 
aber ganz abschalte, dann braucht es gar kein Strom mehr.

Aber wo wir gerade dabei sind. Wie mach ich das mit dem Schlafmodus?
Ich programmiere in Bascom. Was muss ich da programmieren?

von Holger W. (holgerw)


Lesenswert?

Also ich schalte meine auch ab, Mosfet in der Plusleitung.
Da werden auch keine 200mA gezogen.

Holger

von Christian B. (chris001)


Lesenswert?

Mit nem Mosfet könnte man auch natürlich machen. Habe es mal mit nem 
Transistor versucht, aber GND abschalten ist ja nie so die optimale 
Lösung.

Kann ich, wenn das Funkmodul am schlafen ist, über das Modul n IR für 
den µC auslösen?

von D'oh (Gast)


Lesenswert?

Christian Betzen schrieb:
> Diese 200 mA nimmt das Funkmodul sich nach dem Einschalten
> komplett. Schließe ich das Funkmodul fest an VCC an, funktioniert alles.
> Es ist also kein Schaltungsproblem.

Doch, es ist ein Problem. Nach dem Einschalten hat ein RFM12 eine sehr 
geringe Stromaufnahme, beim Empfang ca. 10-20 mA und beim Senden bis ca. 
30 mA. Steht sogar so im Datenblatt geschrieben. 200 mA sind definitiv 
nicht normal.

von Holm T. (Gast)


Lesenswert?

Ich schalte die mit einem BC557 ab, also einem PNP Transistor.
Kein Problem soweit...

Gruß,

Holm

von Verwirrter Anfänger (Gast)


Lesenswert?

Nur so als Hausnummer:

Bei mir verbrauchen ein RFM12 + Attiny45 im Schlafmodus ca 1,3µA.

Der RFM12 hat dabei sogar noch den Wakeup Timer laufen, der Tiny schläft 
tief und fest.

Bei 1,3µA würde eine Knopfzelle reichen, um das ganze ca. 17 Jahre zu 
betreiben, ich denke das sollte reichen. Und man spart sich zusätzliche 
Transistoren.

Beim Senden verbraucht das Ganze ca. 30mA und beim Starten vielleicht 
15mA. Damit dass 200mA zieht, muss schon irgendwas ganz schön schief 
gelaufen sein.

von Christian B. (chris001)


Lesenswert?

Die Idee mit dem Schlafmodus und dem Wakeup Timer gefällt mir immer 
besser!

Was muss ich machen, um diese Optionen des FRM12 zu nutzen?

von Holm T. (Gast)


Lesenswert?

Bei mir liegt die Ruhestromaufnahme in der Größenordnung um die 600nA 
mit einem MSP430G2553, dem abgeschalteten RFM12 bei Speisung durch eine 
3,6V Lithiumprimärzelle im R6 Format (AA). Es gibt keinen Schalter und 
es ist nicht vorgesehen die Zelle zu wechseln..

Gruß,

Holm

von Christian B. (chris001)


Lesenswert?

Alles klar! Ich habe das Modul jetzt fest angeschlossen.

Was muss ich jetzt machen, um das Modul in den Schlafmodus zu bringen?
Was muss ich machen um den Wakeup Timer zu verwenden?

von Felix P. (fixxl)


Lesenswert?

Um den Schlafmodus zu verwenden, muss der NIRQ-Pin mit dem 
Mikrocontroller verbunden sein, da er den Controller nach Ablauf der 
eingestellten Wake-Up-Zeit per Pin-Change-Interrupt wieder aufweckt.

Um das Funkmodul schlafen zu legen, musst du in den entsprechenden 
Registern (Configuration Setting und Power Management) die richtigen 
Einstellungen vornehmen: Latch und FIFO deaktivieren, alle Blöcke 
ausschalten, sämtliche Interrupts abhandeln (Gründe und Gegenmittel sind 
bei der Beschreibung des Statusregisters erklärt), so dass NIRQ auf high 
bleibt, Wake-Up-Timer einstellen und aktivieren. Hierbei hilft der 
Artikel RFM12 weiter.

Wie man den µC schlafen legt, steht in Sleep Mode.

von Christian B. (chris001)


Angehängte Dateien:

Lesenswert?

Danke für den Beitrag Felix!

Der NIRQ ist mit dem Portd.2 verbunden. Damit sollte man dann n ext. IR 
auslösen können.

An die Register hab ich garnicht gedacht. Hab noch nicht so viel mit dem
Modul experimentiert.

Im Anhang das Programm womit ich momentan arbeite.

Eine Zeile für die "Configuration Setting" kann ich gar nicht finden.

In der Endlosschleife wird immer das Register vom Power Management 
angesprochen.

Wenn ich das richtig verstanden habe, werden immer die Teile et es ex 
vorm senden ein und nach dem senden wieder ausgeschaltet.

Ist das zum Stromsparen im Funkmodul alles was man machen kann?

Wenn ich jetzt den Wake up noch aktivieren will, muss ich das Register 
von &h8238 in &H823A ändern. Richtig?

Außerdem muss ich dann nach jedem Ablauf noch das Register &h196 für 
300ms setzen. Richtig?

Sry wenn ich da so nachfragen muss. Mir fehlt da die nötige Erfahrung 
mit...

von Felix P. (fixxl)


Lesenswert?

Die "Configuration Setting" ist die dritte Zeile in deiner init: "Call 
Rf_cmd(&H80d7)". Bevor du in den Sleep-Mode gehst, ist empfehlenswert, 
Latch und FIFO abzuschalten, das wäre dann also "Call Rf_cmd(&H8017)".

Was mir noch auffällt: Du hast in deinem Code eine Crystalfrequenz von 
16 MHz angegeben, daher gehe ich davon aus, dass du einen externen 
Oszillator am Controller hängen hast und du den Taktausgang des RFM12 
nicht brauchst. Richtig? Wenn das so ist, dann ersetze "Call 
Rf_cmd(&Hc080)" durch "Call Rf_cmd(&Hc000)" und alle "Call 
Rf_cmd(&H8200)" durch "Call Rf_cmd(&H8201)" sowie "Call Rf_cmd(&H8238)" 
durch "Call Rf_cmd(&H8239)".

Was die Stromaufnahme angeht: Wie sicher bist du dir, dass die 200 mA 
vom Funkmodul gezogen werden. In deinem Code ist von einem LCD die Rede 
- wie wird das versorgt? Hängt das an derselben Quelle?

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.