Atmega 328P mit RFM12B aufwecken...

Hallo zusammen...
Mache gerade erste Experimente mit 328P (stand alone) und RFM12B Funkmodulen. Ich möchte ein Netzwerk mit 20 Funkknoten aufbauen. Damit nicht jeder Knoten unkontrolliert rumsendet, soll eine Zentrale zeitlich alle Knoten einzeln abfragen. Es funktioniert auch ganz gut. Da jeder Funkknoten im Batteriebetrieb arbeiten soll, ist jetzt die Stromoptimierung dran. Da fangen jetzt die Probleme an...

Es soll jeder Knoten in den Schlafmodus versetzt werden und nach einer bestimmten Zeit aufwachen, um die interne Batterie zu überwachen. Wird ein Befehl von der Zentrale verschickt, soll der Knoten sofort aufwachen aggieren, antworten und wieder einschlafen.
Hat jemand eine Ahnung wie man mit dem RFM12B den 328 aufwecken kann ???

Benutzt wird die RFM12B Lib. von lowpowerlab http://lowpowerlab.com/blog/2012/12/28/rfm12b-arduino-library/

Dank im Voraus

Also wenn ich mich nicht irre, wird der Atmega bereits 'automatisch' vom RFM12B aufgeweckt. Das Problem ist wohl eher, dass das RFM-Modul ständig empfangsbereit sein muss, d.h. du darfst das Empfangsmodul nicht in den Schlafmodus schicken.

Für den Batteriebetrieb ist das leider nicht so gut geeignet, der Stromverbrauch ist mit aktiviertem RFM12B leider relativ hoch. Deutlich sparsamer ist es, wenn die Funkknoten dauerhaft schlafen und nur zyklisch aufgeweckt werden um Daten an die Zentrale zu versenden.

In was für Zeitabständen musst du denn Daten senden? Wenn du mit der acknowledge message (ACK) arbeitest und ggf. die Daten mehrmals sendest, falls zeitgleich ein anderer Knoten gerade sendet, könnte es möglicherweise auch gut mit einem größeren Netzwerk funktionieren.

Danke mal für die Antwort....
Das mit dem automatischen aufwecken des Controllers funktioniert irgendwie nicht, auch wenn ich das RFM Modul nicht schlafen lege.

Habe noch etwas gefunden:

"Automatisch zyklischer Empfänger (Low Duty-Cycle C8xx):
Neben der Möglichkeit des zyklischen Aufweckens eines angeschlossenen Mikrocontrollers besteht beim RFM12 auch die Möglichkeit, den Empfänger kurzzeitig zu aktivieren ohne den Controller zu wecken, und den Mikrocontroller erst bei gültigem Signal (etwa vom Ausgang VDI ⑪ oder bei Synchronmusterempfang) zu wecken. Somit kann der Empfänger autonom eine feste Frequenz bei geringem Stromverbrauch überwachen.

Mit dem Wake-Up-Timer wird die Periodendauer (mithin die Einschaltfrequenz) des Empfängers eingestellt (bspw. alle 500 ms), und mit dem hier einstellbaren Wert wird bestimmt, wie lange der Empfänger dann aktiv sein soll (bspw. 30 % von 500 ms = 150 ms. Werden während der Einschaltdauer gültige Daten empfangen, bleibt der Empfänger bis zum Ende von DQD aktiv. Wird dabei schließlich ein Synchronmuster erkannt und die FIFO gefüllt, gibt es einen FIFO-Interrupt. "

Muss da wohl mit dem FFIT Pin an INT1 des Controllers arbeiten....
Ich mach mal ein paar Tests und berichte wieder...

Oder hat das vielleicht schon jemand gemacht ??

Schau mal hier, im Forum von LowPowerLabs wurde das auch bereits erwähnt:
https://lowpowerlab.com/forum/index.php?topic=815.0

Es geht zwar um das RFM69-Modul, ich denke aber grundsätzlich wird sich das nicht großartig unterschieden. Im letzten Post ist sogar ein Sketch als Beispiel angehängt.

vielen Dank für den Link...
werde es mal testen und dann berichten...

Hab das Beispiel jetzt mal getestet und es hat sich nichts getan. Der Controller ist zwar eingeschlafen hat aber nichts mehr empfangen....
Habe dann mal ein bischen rumgespielt und jetzt sieht es mal ganz gut aus....

Habe das FFIT Bit des RFM auf den INT1 Eingang des 328 angeschlossen und über einen separate ISR wird der Controller geweckt.
Dass heisst, der Controller wacht alle x sek. auf, macht irgendwelche checks und schläft dann weiter. Kommt jetzt irgendwas über Funk rein, wacht er sofort auf reagiert und schläft dann wieder ein.
Bis jetzt ist das RFM Modul im dauer "Wachzustand". Als nächstes experimentier ich mal mit dem "Low Duty Cycle" des RFM Moduls rum.
Werde berichten wenn es klappt.

Oder hat schon jemand mit diesem Mode was gemacht ?