Forum: Mikrocontroller und Digitale Elektronik Mega88 aufwecken aus POWER SAVE Mode


von Uwe M. (lifthrasil)


Lesenswert?

Hi @all,

Umgebung: ATmega88V mit 2 MHz ext. Crystal Osc.

Ich moechte meinen mega88 alle 1 ms bzw. 250 µs aus dem Power Save Mode 
aufwecken. Um das ganze zu realisieren hab ich Timer2 entsprechende 
konfiguriert und schalte fuer die unterschiedlichen Zeiten einfach OCR2A 
um (Timer im CTC Mode, Prescaler 64, -> ~1 ms OCR2A = 0x1F, ~250µs OCR2A 
= 0x07, ISR ist da und enabled). Ohne Sleep und im IDLE Mode 
funktioniert alles wie geplant. Um allerdings aus dem Power Save Mode 
ueber Timer2 aufzuwachen muesste ich meinen Timer asynchron machen. Wie 
geht das? Funktioniert das ueberhaupt mit meinem 2 MHz Crystal oder muss 
das der beschriebene 32,xx kHz Quarz sein? Wenn nein wie kann ich meine 
WakeUp Zeiten aus dem Power Save sonst realisieren?

Bin fuer jeden Tipp dankbar ...

Gruß Uwe

von Mario (Gast)


Lesenswert?

Asynchron läuft der Timer2 meines Wissens nur mit dem 32...kHz Quarz...

von Uwe M. (lifthrasil)


Lesenswert?

... hab ich fast befuerchtet ... gibt es denn sonst einen Weg meine 
Wakeup Zeiten zu realisieren?

Gruß Uwe

P.S.: Nur so als Zusatzinformation wenn ich trotzdem in den Power Save 
Mode wechsel wache ich trotzdem auf (allerdings sind die Zeiten zu lang 
=).

von (prx) A. K. (prx)


Lesenswert?

Wenn du einen 2MHz Quarz dran hängen hast und diesen Oszillator alle 
250µs stillegen willst, dann wird dir die Anschwingzeit des Oszillators 
einen Strich durch die Rechnung machen. Ein Quarzoszillator benötigt 
unangenehm lange bis er sauber schwingt.

In Frage kommt also allenfalls der Standby-Modus, in dem der 
Quarzoszillator weiterhin schwingt. Oder du verwendest den internen 
RC-Oszillator, weil der keine Anschwingzeit hat.

Alternative 1 also: Den Haupttakt aus dem internen RC-Oszillator 
beziehen, einen 32KHz Quarz anschliessen und als asynchronen Taktquelle 
für den Timer2 verwenden. Exakte Zeiten aus dem 32KHz-Timer ableiten und 
den RC-Oszillator ggf. über den 32KHz Takt trimmen (siehe Appnote).

Achtung aber: Im asynchronen Betrieb hat der Timer bestimmte 
Randbedingungen, die allzu kurze Aktivzeiten ausschliessen. Da könnte 
sich ein 250µs Rhythmus möglicherweise als sinnarm erweisen.

Alternative 2: Extern einen 4KHz Interrupt erzeugen.

von (prx) A. K. (prx)


Lesenswert?

Vielleicht reicht es ja hinsichtlich des Stromverbrauchs auch aus, wenn 
du auf den Powersave/Standby-Modus verzichtest, den 2MHz Takt per 
Clock-Prescaler in der Idle-Zeit weit genug runterteilst und im 
Interrupt zeitweilig wieder hochschaltest.

von Uwe M. (lifthrasil)


Lesenswert?

Hi A.K.,

erst mal vielen, vielen Dank fuer die Tipps haette alles super 
funktioniert allerdings bin ich auf den 2 MHz Quarz angewiesen und das 
CLKOUT des µC geht noch weiter an ein 2tes System das ebenfalls die 2 
MHz braucht. Mist, ... ich hab fast befuerchtet, dass das ganze nicht so 
einfach wird!?! Vielleicht muss ich ja doch nochmal meine HW 
ueberdenken!?

Gruß Uwe

von Peter D. (peda)


Lesenswert?

Mach doch erstmal ne Strombilanz:

Also wieviel Strom hast Du zur Verfügung, wieviel zieht der AVR, wieviel 
die andere Schaltung usw..

Dann erst kannst Du überlegen, wie sich was sparen läßt.
Vielleicht auch einfach durch Spannung runtersetzen (1,8V).

Oder nimm nen extra ATtiny25, der mit 32kHz läuft und den anderen 
aufweckt.


Peter

von Falk B. (falk)


Lesenswert?

@ Uwe M. (lifthrasil)

>funktioniert allerdings bin ich auf den 2 MHz Quarz angewiesen und das
>CLKOUT des µC geht noch weiter an ein 2tes System das ebenfalls die 2
>MHz braucht.

Vielleicht Stand By, siehe Sleep Mode.

MfG
Falk

von Vitor L. (viri)


Lesenswert?

Mach es doch über den Watchdog. Schau mal ob Du den Power-Down-Mode 
einsetzen kannst. Der WDT kann den AVR aus dem Power-Down-Mode 
aufwecken, wobei die Zeit 16ms bis 8sek einstellbar ist. Hat auch den 
Vorteil eines geringeren Stromverbrauchs.

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.