Die meisten Mikrocontroller (z. B. AVRs, MSP430s, PICs usw.) unterstützen eine Reihe verschiedener Schlafmodi. Der "tiefste" Schlafmodus ist derjenige, der die geringste Leistungsaufnahme vorgibt (z. B. "Power Down", "Shut Down"), aber alle Uhrensysteme werden normalerweise in diesen Modi angehalten, und es scheint mir, dass der einzige Weg zu wake up "von ihnen erfolgt über externe Reize (z. B. Pinwechsel-Interrupts, Chip-Reset). Vermisse ich etwas? Gibt es äußerst stromsparende Methoden, um ein periodisches Aufwecksignal für eine MCU zu generieren?
Angenommen, mein Ziel ist es, den Stromverbrauch zu minimieren (dh so lange wie möglich tief zu schlafen, so kurz wie möglich wach zu bleiben), während ich regelmäßig aufwache, um eine Funktion auszuführen. Wie kann man diese Art von Verhalten erreichen? Nehmen wir zur weiteren Vereinfachung an, dass meine Funktion zustandslos ist (ich muss mir nichts aus der Vergangenheit merken, um sie auszuführen).
Ich hatte einige Erfolge mit dem WDT auf dem MSP430, um diesen Effekt zu erzielen. Ich habe gerade meine Hauptroutine zu meiner Funktion gemacht, wobei die letzte Zeile dem Watchdog-Timer ermöglicht, nach einer bestimmten Zeit abzulaufen und in LPM4.5 zu wechseln oder wie auch immer der "Tiefschlaf" -Modus aufgerufen wird. Das Nettoergebnis ist, dass die Funktion ausgeführt wird, die MCU schläft, der WDT abläuft und der Chip ad nauseum zurückgesetzt wird. Scheint zu funktionieren, sich nur zu fragen, ob es eine "bessere" oder "elegantere" oder "energieeffizientere" Methode gibt, um diese Art von Verhalten zu erreichen?
Ich habe diesen Ansatz noch nicht mit einem AVR ausprobiert, aber ich denke, dass der WDT in den AVRs mehr "Strom verbraucht" als im MSP430, sodass er für Arbeiten mit geringem Stromverbrauch weniger attraktiv sein kann. Vielleicht gibt es keine "universelle" Herangehensweise an niedrige Leistung, und Sie müssen die Werkzeuge verwenden, die eine bestimmte Produktlinie bietet? Ich weiß, dass die neue picoPower-Linie viele Funktionen wie das Event-System und Sleep-Walking bietet, die in einigen Fällen kaum ein Aufwachen der CPU erfordern, wenn Sie Ihre Anwendung in diese Struktur integrieren können ...
OK genug von meiner Wanderung, lass uns hier was du zu sagen hast :)
Bearbeiten Konkrete Beispiele Techniken veranschaulicht , wäre auch cool!