PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : POWER-DOWN MODE bei AVR?



Rasuth
08.08.2006, 22:18
Hallo
Es geht um eine kleine Mega 8 Applikation, die alle Minuten paarmal um auf einen Port etwas ausgeben soll. Die Schaltung wird aus einer Batterie betrieben. Die Stromaufnahme soll möglichst gering sein, um eine möglichst lange Lebensdauer der Batterie zu ermöglichen. Nun habe ich mir überlegt, dass ich den Prozessor schlafen lege um Strom zu sparen. Der Programmzustand bleibt erhalten. bzw. der Programmzustand des AVR ist eingefroren. Ich muss dann allerdinge einen externen Oszillator spendieren, der den AVR dann wieder weckt.

Meine Frage gibt es auch eine elegantere Lösung ohne externen Oszillator? In dem Sinn, dass sich der Prozessor selber weckt.
Hat jemand den Power down Mode beim Mega 8 ausprobieret?

uwegw
08.08.2006, 22:25
Nach nem erstem Blick ins Datenblatt würde ich den Power-save Mode nehmen und nen Uhrenquarz dranhängen. Dann kann ein Timer weiterlaufen udn den AVR wieder wecken.

Rasuth
08.08.2006, 22:35
Nein, geht nicht. Der geweckte Prozessor arbeitet mit einem 16Mhz Takt (mittels 16Mhz Quarz am AVR).

R2D3212
09.08.2006, 02:24
Da gibts ne Application Note zum Thema "Long Delays". Da kaskadierst du die Timer, welche den Controller mittels interrupt aus dem Sleep wecken.
Hab das vor ein paar Wochen in C "übersetzt" (jaja, für nen mega8), wenn du's brauchst, schau ich, ob ich's noch irgendwo find (...ein paar Windows-Neuinstallationen später ](*,) )

Tschüß,
R2D3212

uwegw
09.08.2006, 16:20
Muss es ein Quarz sein, und müssen es 16MHz sein? Je niedriger der Takt, desto weniger Stromverbrauch...

Rasuth
10.08.2006, 22:42
Danke für eure Beiträge. Der 16MHz Clock ist notwendig, da ich einen gesampelten Wave-Sound über ein R2R-Netzwerk ausgebe. Bei der Clockfrequenz benötigt der Prozessor saftige 30mA. Die Soundausgabe erfolgt nur paarmal pro Minute, deswegen die Abschaltung.


--------------------------------------------------------------------------------
Da gibts ne Application Note zum Thema "Long Delays". Da kaskadierst du die Timer, welche den Controller mittels interrupt aus dem Sleep wecken.
Hab das vor ein paar Wochen in C "übersetzt" (jaja, für nen mega8), wenn du's brauchst, schau ich, ob ich's noch irgendwo find (...ein paar Windows-Neuinstallationen später )

R2D3212:
Application Note zum Thema "Long Delays" wäre super.

R2D3212
10.08.2006, 23:53
http://www.atmel.com/dyn/resources/prod_documents/doc1268.pdf

Rasuth
11.08.2006, 19:30
Super!! Genau die Lösung, die ich gesucht habe.

Vielen Dank. :P

R2D3212
12.08.2006, 03:22
Freut mich, dir geholfen zu haben O:)

Funktioniert auch prächtig, diese LongDelay Funktion (Bis zu 9h Delay (glaub ich) bei 1MHz und das sogar im sleepmode). Einen Port musst halt für die Kaskadierung investieren...