mikrocontroller.net

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


Autor: Uwe M. (lifthrasil)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Asynchron läuft der Timer2 meines Wissens nur mit dem 32...kHz Quarz...

Autor: Uwe M. (lifthrasil)
Datum:

Bewertung
0 lesenswert
nicht 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 
=).

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Uwe M. (lifthrasil)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vitor L. (viri)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.