Forum: HF, Funk und Felder RFM 12 Wake-Up und start nach POR


von U. B. (ub007)


Lesenswert?

Hallo !

Ich habe hier im Forum leider nichts entspr. gefunden.

1. Hat jemand schon mal die Zeit gemessen nach dem "Einschalten" wie 
lange es dauert bis das Modul "Ready" ist, bevor man mit senden loslegen 
kann - also die Zeit vom einschalten der Spannung am Modul bis zum 
senden ?
Soviel ich weiß kann man ja am Modul nicht den Status abfragen, oder 
doch ?

2. Im Datenblatt steht folgendes: The wake-up period is determined by:
Twake-up = M * 2^R [ms]
Ich verstehe diese Zeit vom Zeitpunkt t0 (aus dem Schlaf reisen) bis das 
Modul quasi wieder sendebereit ist, aber ich bin mir nicht sicher.

Nachdem hier von "period" die Rede ist - heißt das, dass es dann 
zyklisch passiert, oder muss ich nach dem Senden der Daten wieder 
händisch (also per Befehl vom uC) das Modul schlafen-legen ?

Gruß Uli

von Michael U. (amiga)


Lesenswert?

Hallo,

Du redest hier vom WakeUp-Timer...
Die Formel gibt die Registerwerte.
Der WakeUp-Timer erzeugt einen Interrupt, wenn er abgelaufen ist.
Um das Einschalten der RFM-Komponenten bzw. das Schlafen schicken mußt 
Du Dich per Programm alleine kümmern.

Gruß aus Berlin
Michael

von U. B. (ub007)


Lesenswert?

Hallo Michael !

> Die Formel gibt die Registerwerte.
Das war mir klar.

> Der WakeUp-Timer erzeugt einen Interrupt, wenn er abgelaufen ist.
D.h. er würde dann den Pegel am nIRQ wechseln ?

Ich hab mir gerade nochmals das Datenblatt angeschaut, aber ich dachte 
ich muss dem Modul irgendwie sagen - leg dich schlafen, kann aber 
irgendwie keinen Modul-"Befehl" finden der das macht.

Gruß Uli

von Sauger (Gast)


Lesenswert?

Moin,

Uli B. schrieb:
> Ich hab mir gerade nochmals das Datenblatt angeschaut, aber ich dachte
> ich muss dem Modul irgendwie sagen - leg dich schlafen, kann aber
> irgendwie keinen Modul-"Befehl" finden der das macht.

Gibt es auch nicht. Schalte via "Power Management Command" 
Sender/Empfänger ab und den "wake up-timer" ein. Im Interrupt muss dann 
der vom Modul abgeholte Status ausgewertet werden. Wenn Bit 5 "WKUP" 
gesetzt ist, ist das Ding aufgewacht. Sender/Empfänger wieder 
einschalten ist deine Sache

MfG

von U. B. (ub007)


Lesenswert?

Hallo Sauger !

O.K. das heißt dass der wake-up timer auch beim ausgeschaltetem Power 
Management weiterläuft.
Das würde dann für einen kontinuierlichen zeitl. Ablauf so aussehen:

1. Wake-Up Timer über   Twake-up = M * 2R    setzen.
2. Power-Management: Modul-Ausschalten
3. Über uC wenn WKUP-Bit im Statusregister gesetzt dann Powermanagement
   einschalten.
4. Daten senden.
5. WKUP-Bit falls notwendig event. löschen.
6. Fange wieder bei 2. an.

Zu meiner anderen Frage...
Dieses Status-Register zeigt aber nicht an wann das Modul nach 
zuschalten der Spannungsversorgung wieder sendebereit ist, oder doch ?
Das ist für mich deshalb sehr wichtig, da in diesem Projekt mehrere 
Faktoren zusammenkommen die event. zum K.O. Kriterium führen können.
Bei dem Pollin-C-Beispiel-Code wird z.B. fast 1000ms gewartet bis 
zumindest am Anfang die Initialiserung durchgelaufen ist. Nur das wäre 
z.B. für eine "Fast-Echtzeit-Anwendung" fast nicht durchführbar, da das 
Modul auch noch über einen Mini-Akku (nicht größer als event. eine 
Knopfzelle(max. 2 cm Durchmesser und max. 1-2mm Höhe - Li-Ionen oder 
LiFE Akku) betrieben werden soll die event. z.B. 1/2 bis ein Jahr halten 
soll.

von Sauger (Gast)


Angehängte Dateien:

Lesenswert?

Nabend,

Uli B. schrieb:
> O.K. das heißt dass der wake-up timer auch beim ausgeschaltetem Power
> Management weiterläuft.

Nein,es gibt kein Power Management. Betrachte den Timer einfach als 
„Erinnerung“ - da war noch was. Den Status des Moduls musst du selber 
bestimmen. Die Zeiten nach aktivieren des Senders (Empfänger macht 
keinen Sinn) geht aus dem Datenblatt vor, ist unter "Turn-on/Turnaround 
timings" zu finden.

MfG

Ich musste im Betreff das "POR" entfernen das Forum meinte es wäre Spam 
in Form von P.O.R.N

von U. B. (ub007)


Lesenswert?

Hallo Sauger !

> Ich musste im Betreff das "POR" entfernen das Forum meinte es wäre Spam
> in Form von P.O.R.N
O.K. kein Problem.

> Nein,es gibt kein Power Management.
Sorry, da hab ich mich schlecht ausgedrückt. Ich meinte auch mittels des
Power Management-Commands(CMD) das z.B. in meinem Fall der Sender 
disabled wird.
Das PDF von Dir kannte ich noch nicht - danke, das muss ich mir nachher 
mal näher anschauen.
Der abgeänderte Ablauf würde dann aber schon so aussehen, oder ?

1. Wake-Up Timer über   Twake-up = M * 2R    setzen.
2. Über Power-Management-CMD: Sender-disablen und Wake-up Timer enablen.
3. Über uC (nIRQ) wenn WKUP-Bit im Statusregister des Moduls gesetzt,
   dann Powermanagement-CMD Wake-up Timer disablen und Sender enablen.
4. Daten senden.
5. Fange wieder bei 2. an.

> Die Zeiten nach aktivieren des Senders (Empfänger macht
> keinen Sinn) geht aus dem Datenblatt vor, ist unter "Turn-on/Turnaround
> timings" zu finden.
Danke das werde ich mich nachher anschauen.

Gruß Uli

von Michael U. (amiga)


Lesenswert?

Hallo,

ich habe in meinen Sensoren den RFM02 drin, weil die nur senden.
Der AVR läuft mit internem RC-Oszillator, da der RFM02 die Bits zum 
Senden sowieso einzeln will (kein Sende-FIFO), spielt ein genauer Takt 
keine Rolle.
Der RFM02 wird schlafen geschickt, nur der WakeUp-Timer läuft, dann wird 
der ATiny wird in den Powerdown geschickt. Der Interrupt vom RFM02 weckt 
den Tiny, der liest den Sensor aus, startet den RFM92, sendet seine 
Daten, schickt den RFM02 wieder schlafen und geht wieder in den 
PowerDown.

Verbrauch ca. 4µA + Sensor und Senden ca. alle Minute für etliche ms.
Laufzeit mit CR2032 im Gefrierfach des Kühlschrankes ca. 9 Monate.

http://www.avr.roehres-home.de/sensoren/index.html

Gruß aus Berlin
Michael

von Sauger (Gast)


Lesenswert?

Mahlzeit,

Michael U. schrieb:
> Verbrauch ca. 4µA + Sensor und Senden ca. alle Minute für etliche ms.
> Laufzeit mit CR2032 im Gefrierfach des Kühlschrankes ca. 9 Monate.

etwas Ähnliches mach ich hier auch, ist ein DS18S20 für die 
Außentemperatur und DCF77 für die Uhrzeit. Das ganze wird an eine 
Betriebsdatenerfassung  der Heizung gesendet. Betrieben und eingebaut in 
einer geschlachtete Solar Gartenleuchte. Verbaut ist ein Mega8L der alle 
1/2 Stunde mal nach dem Rechten sieht. Stromaufnahme im "Power-down 
Mode" kann ich mit meinen Schätzeisen nicht ermitteln, die Kommastellen 
reichen nicht aus. Das Ganze ist seit 3 Jahren knitterfrei im Betrieb.

MfG

von Bernd O. (bitshifter)


Lesenswert?

Sauger schrieb:
> Stromaufnahme im "Power-down
> Mode" kann ich mit meinen Schätzeisen nicht ermitteln, die Kommastellen
> reichen nicht aus. Das Ganze ist seit 3 Jahren knitterfrei im Betrieb.

Da gibt's einen einfachen Trick:
Schalte einfach einen (hochohmigen) Widerstand parallel mit einer 
Schottkydiode und das dann in die Spannungsversorgungsleitung, also so:

1
                  ---- RRR ----
2
                 |             |
3
Batterie (+) ----*             *-------- Schaltung
4
                 |             |
5
                  -----|>|-----
Wenn die Schaltung viel Strom verbraucht, dann greift die Schottky-Diode 
und begrenzt den Spannungsabfall auf wenige 100 mV. Wenn der 
Stromsparmodus aktiviert ist, dann kann man mit dem kleinsten 
mV-Meßbereich des Multimeters den Spannungsabfall am Widerstand messen 
und so auch sehr kleine Ströme messen.
Wenn einen hauptsächlich die Tendenz interessiert, dann kann man auch 
einfach ein Poti verwenden und stellt dann im Power-Down die Spannung 
z.B. auf den halben Meßbereich des Multimeters, also z.B. auf 100 mV 
wenn man im 200 mV-Bereich mißt. So hat man quasi eine "Stromlupe" und 
sieht sehr schnell welche Maßnahme (ausschalten Pull-Ups oder interner 
Peripherie, ...) welche Stromänderung bewirkt.


Gruß,
Bernd

von Michael U. (amiga)


Lesenswert?

Hallo,

ja, so habe ich es auch gemacht. Die Diode ist nötig, da sonst beim 
Nennstrom der Schaltung der Spannungsabfall üblicher Strommesser zu groß 
für den Betrieb ist und der AVR hängenbleibt.

PS: Strommesser war bei mir ein Flohmarktkauf:
http://bama.edebris.com/download/philips/pm2503/philips%20pm2503.pdf

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.