mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem Stromsparmodus


Autor: Sanja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Community,

ich bräuchte von euch einen kurzen Denkanstoß. Ich arbeite mit einem 
attiny2313. Funktion soll sein, mittels Softwareabfrage einer 
Schalterstellung an dem µC entweder alle 24h, alle 48h oder alle 72h 
eine kurze Aktion auszuführen und dann wieder schlafen zu gehen, da die 
gesamte Schaltung Batteriebetrieben ist.

Ich bin mit den AVRs noch etwas unerfahren und habe ziemlich viel 
gelesen, gesucht und noch mehr gelesen die letzten Tage. Letztendlich 
bin ich verwirrter als vorher =)

Meine Recherchen ergaben (bitte korrigieren wenn falsch), das bis auf 
den Idle Mode alle anderen Stromsparmodi eine Hardwareseitige 
Reaktivierung brauchen. Somit wäre für mich der Idle Modus aktuell, 
welchen ich mit MCUCR = 0x00 einstellen kann.

Nun verwirren mich aber 3 Dinge:
- Geht wirklich nur der idle Modus oder ginge mittels Watchdog Timer 
auch ein PowerDown Modi, bis der Watchdog einen Reboot erzwingt?
- Welche Interrupt Service Routine benötige ich zum aufwecken des µC, 
bzw sind die Interrupts zum aufwecken und für den Counter verschieden?
- Sind mittels Counter solche "langen" Zeiten bis zur Interuptausführung 
überhaupt möglich?

Bin über jede Hilfe dankbar!

Gruß Sanja

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sanja schrieb:

> ich bräuchte von euch einen kurzen Denkanstoß. Ich arbeite mit einem
> attiny2313.

Schlechte Wahl für die Aufgabenstellung.  Gab's einen besonderen
Grund für diese Wahl?

> - Geht wirklich nur der idle Modus oder ginge mittels Watchdog Timer
> auch ein PowerDown Modi, bis der Watchdog einen Reboot erzwingt?

Watchdog geht natürlich auch, du musst dann das watchdog reset flag
(WDRF) auswerten.  Lässt sich sogar noch einfacher implementieren, da
der watchdog alternativ auch einen Interrupt auslösen kann, man muss
also nicht einmal zwingend über reset gehen.

Allerdings ist der watchdog oscillator ein RC-Oszillator simpelster
Sorte.  Für ein auch nur halbwegs brauchbares Timing würde ich mich
auf den nicht verlassen.

Wenn du den Haupttakt (RC-Oszillator oder Quarz?) durch 256 teilst,
bevor du in den idle sleep gehst, braucht du ungefähr die gleiche
Größenordnung an Strom (wenige 10 µA) wie mit dem watchdog oscillator.

> - Welche Interrupt Service Routine benötige ich zum aufwecken des µC

Irgendeine, also zweckmäßig die eines Timers (watchdog oder normaler).
Jeder freigeschaltete Interrupt, der entsprechend des sleep mode
auch wirklich noch kommen kann, weckt den Prozessor auf.

> - Sind mittels Counter solche "langen" Zeiten bis zur
> Interuptausführung überhaupt möglich?

Nein, natürlich nicht, aber das hättest du dir selbst ausrechnen
können. ;-) Man erweitert den Zählumfang der Timer einfach in
Software, d. h. du zählst nur eine Variable runter, und wenn diese
noch nicht 0 ist, legst du das alles wieder schlafen.

Eine bessere Wahl wäre ein Controller gewesen, bei dem man den Timer 2
separat von einem 32-kHz-Uhrenquarz takten kann.  Bei diesen gibt's
einen sogenannten power-save sleep mode, bei dem alle Takte außer
diesem abgeschaltet werden.  Damit hast du Timing in
Quarzuhrenqualität bei Stromverbrauch im unteren µA-Bereich.  Wenn
mich nicht alles täuscht ist der kleinste AVR, der diese Möglichkeit
bietet, ein ATmega48.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Sleep Mode

Autor: Sanja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank euch beiden.
Die Idee mit dem externen Uhrenquarz gefällt mir sehr gut. Muss ich mal 
schauen wie man das am besten realisiert und damit Aufweckzeiten 
konfiguriert

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte auch einen RTC an den AVR hängen. Am besten einen mit 
Alarmfunktion über die der AVR aufgeweckt wird, z.B. DS1337 oder 
PCF8583. Dann kann der AVR tiefer schlafen und die Teile brauchen auch 
nur wenige µA.

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.