www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Längerer Sleep


Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Ich möchte erreichen, dass sich mein Mikrocontroller nach Ausführen 
eines Codes für ca. 3 Minuten in einen Sleep-Modus versetzt und danach 
wieder von vorne beginnt. Ziel soll es sein, das ganze dann möglichst 
stromsparend an eine Batterie zu hängen. Jetzt ist ja das Problem, dass 
der Watchdog nur ein paar Sekunden unterstützt. Der Quarz taktet auf 4 
MHz und muss auch auf dieser Geschwindigkeit bleiben.
Wie kann ich diese lange Zeit realisieren?

Matthias

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergiss den 4MHz Quarz. Der zieht viel zu viel. Der muss in den Sleep. 
Dafuer gibt es Uhrenbausteine. zB den DS1306. Mit Interruptausgang und 
SPI anbindung. Der laeuft an einem 32768 Quarz und zieht 400nA an 2V. 
Die naechst schlechtere Loesung waere ein 32768 Quarz anm Prozessor 
selbst. Dann einen 16 bit timer runterzaehlen lassen, mit vorteiler. 
Ergibt einen Sleep von ca 8sec bei einer Stromaufnahme von je nach 
Prozessor einigen mA an 3.3V. Sofern der Prozessor das unterstuetzt. Die 
AVR tun's.

rene

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist ein ATmega8.
OK, ein DS1306 an einem zweiten Quarz. Der hat jetzt aber einen 1 Hz 
Ausgang, was ja immernoch zu viel ist. Soll ich jetzt im AVR die 
Interrupts zählen oder den Alarm des DS1306 über die serielle 
Schnittstelle jedesmal neu einstellen? Sorry, Uhrenbausteine sind 
Neuland für mich.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist das Problem ?

Der SRAM wird beim Watchdogreset ja nicht überschrieben.

Nimm Dir also einfach ein Zählbyte, was die Resets zählt, bis die 3min 
um sind.

D.h. Du gehst einfach sofort wieder in Sleep, wenn die 3min noch nicht 
um sind.


Peter

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha. Mega8. Der hat dann ja auch einen 2. Osc, wo man einen 32k Quarz 
anhaengen kann. Ich hab da mal eine Seite gemacht :
http://www.ibrtses.com/embedded/avrpowersave.html
Der Uhrenbaustein koennte auch einen Interrupt machen, wenn die Zeit 
erreicht ist mit Datum & Zeit. Die angegebene Watchdog loesung zieht um 
die 10-20uA bei aehnlichen Typen.

rene

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.