Forum: Mikrocontroller und Digitale Elektronik Atmega328 Sleep Modus


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marcel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe einen Atmega328P mit einem Externen Quarz (8 MHZ).
Diesen möchte ich gerne in den sleep modus bringen.
Intern läuft der Timer1. Dieser lässt alle 20ms einen Interrupt 
ausführen. Mir würde es reichen, wenn dieser den controller wieder 
weckt. Dann soll die Funktion durchlaufen und sich anschließend wieder 
schlafen legen.
Dazu bietet sich der sleep mode Idle an.
Aber wenn ich jetzt anstelle des Timer1 den Timer2 benutze, dann könnte 
ich den sleep mode ADC Noise Reduction oder Power Save nehmen. Würde der 
dann auch schlafen gehen? Oder besser gefragt wieder aufgeweckt werden? 
Gerade bei Power Save bin ich mir nicht so ganz sicher


https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
1
Hier werden fast alle Oszillatoren gestoppt. Die einzige Ausnahme ist der Timer2, welcher asynchron mit einem 32,768-kHz-Uhrenquarz betrieben werden kann. Ist er entsprechend konfiguriert, dann bleibt er beim Einschalten des Power Save Mode aktiv. Dieser Modus ist einer der wichtigsten. Da alle Oszillatoren gestoppt sind, funktionieren nur noch die asynchronen Module.
2
3
Bei neueren AVR-Typen (z. B. ATMega88/ATMega644) kann Timer2 wahlweise auch mit dem internen Oszillator weiterlaufen. In dem Fall braucht es keinen externen Uhrenquarz.

Im Datenblatt
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
habe ich nicht wirklich was dazu gefunden

von Arduino Fanboy D. (ufuf)


Bewertung
-1 lesenswert
nicht lesenswert
Sicher, dass du die Automotive Varianten verwendest?

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Marcel schrieb:
> Im Datenblatt
> 
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
> habe ich nicht wirklich was dazu gefunden

9.1 Die Tabelle in welchen Sleep Modi Timer2 läuft und was dann sonst 
noch so an/aus ist.

17.1 Bestätigt, dass Timer2 optional von einem 32kHz Quarz angetrieben 
werden kann.

von Arno (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich wiederhole, was Arduino Fanboy schon schrieb: Sicher, dass du die 
Automotive-Variante des Controllers verwendest / verwenden möchtest? 
Dafür ist nämlich das Datenblatt, das du verlinkt hast. Keine Ahnung, ob 
das für deine Anwendung einen Unterschied ausmacht, aber du schaust ja 
auch nicht mit ATMega88-Datenblatt ;)

(Aus irgendeinem Grund kommt das bei der Suche im Netz regelmäßig weiter 
oben als das Datenblatt des normalen Controllers, zumindest hab ich auch 
schon häufiger darin gelesen und mich über Dinge wie die 
Gehäusevarianten gewundert - bis ich nochmal genau in den Titel geschaut 
habe...)

MfG, Arno

von Peter D. (peda)


Bewertung
1 lesenswert
nicht lesenswert
Marcel schrieb:
> Dazu bietet sich der sleep mode Idle an.

Die Reduzierung im Idle ist nur etwa auf 30%.
In Power-Down könnte man noch den Watchdogtimer benutzen.

von MaWin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Marcel schrieb:
> ich habe einen Atmega328P mit einem Externen Quarz (8 MHZ). Diesen
> möchte ich gerne in den sleep modus bringen.
> Intern läuft der Timer1. Dieser lässt alle 20ms einen Interrupt
> ausführen. Mir würde es reichen, wenn dieser den controller wieder weckt

Funktioniert so nicht.

In sleep steht auch dein 8MHz Takt.

Du musst einen 32kHz Quartz anschliessen, Timer 2 benutzen, und kannst 
dann ausserhalb von sleep den Prozessor mit internen RC 8 MHz Takt 
laufen lassen.

von Jürgen S. (avus)


Bewertung
0 lesenswert
nicht lesenswert
MaWin schrieb:
> Du musst einen 32kHz Quartz anschliessen, Timer 2 benutzen, und kannst
> dann ausserhalb von sleep den Prozessor mit internen RC 8 MHz Takt
> laufen lassen.
Ja. Im Vergleich zu IDLE oder DOWN spart SAVE viel Strom und man hat 
präzisere Zeitintervalle zum Aufwachen.

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]
  • [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.

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