mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mega8 power management


Autor: wolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab mal eine frage bei meinem mega8.
ich würde gern den internen takt osc benutzen (4MHz)
der timer0 macht alle ~65ms einen interrupt und fragt in einer 3 zeilen
routine nach änderungen an einem der portpins ab. danach geht er in den
sleep mode und wartet den nächsten timer0 int ab.
es geht jetzt um die sleep einstellungen bei internen osc.
ich verstehe es im datenblatt so, das man ihn dann nur in den idle mode
schicken kann..wegen dem internen clk und dem timer0 interupt..richtig
soweit??
jetzt mal die dumme frage: wieviel bringt einem eigentlich der sleep
mode wenn man alle 65 ms die abfrage macht?? also sparrt das wirklich
noch viel batteriekapazität?? ich überlege nämlich ob ich den timer0
sonst bei einer best routine in den power down mode schicke, den timer0
(ggf) abschaltet und auf nen externen interrupt warte der alles wieder
zurückschaltet. das sollte doch beim internen takt auch klappen oder??
jemand sowas schonmal gemacht??

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der idle-mode bringt Stromersparnis, aber nicht allzuviel. Steht aber
genau im Datenblatt, wieviel Strom bei welcher Spannung und welcher
Frequenz verbraucht wird.
Kommt es auf geringsten Stromverbrauch an, benutz den Osz/Timer2 mit
einem 32kHz-Uhrenquarz und schick den Proz. in den power-down. Der Int
vom Timer 2 kann ihn dann regelmässig wecken.

Autor: wolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das mit dem uhrenquarz ist ein guter tip.. aber wieso power down?!? du
meinst power stop oder?? und dann das as2 im assr setzen...nur da hat
er die weckoption oder

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theoretisch (habe ich noch nicht ausprobiert) funktioniert auch pwdn
zusammen mit dem Watchdogtimer. Dann bekommt der avr regelmässig einen
Reset. Das der vom Watchdog kommt, kann man per Flag rauskriegen. Das
RAM sollte vom Reset nicht beeinflusst werden. Hört sich zwar
brute-force an, sollte aber bei vielen Anwendungen funktionieren.

Übrigens: die neuen mega48/88/168 haben an allen Pins pin-on-change
Interrupts. Die können also aus dem pwdn aufwachen, sobald sich an
irgendeinem der Pins was tut.

Stefan

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo, power-save meine ich.
watchdog ginge auch, braucht aber mehr Strom (60µA gegenüber 10µA), der
Uhrenquarz hat auch noch den Vorteil, dass man damit eine relativ genaue
RTC programmieren kann, dass dürfte mit dem watchdog kaum gelingen.

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, crazy horse.
Kommt halt immer auf die Applikation drauf an, ob mehr Genauigkeit oder
eher die Pins wichtig sind. Ich wollte nur mal an diesen "vergessenen"
Timer erinnern ...

Der mega88 braucht übrigens nur noch 8 (worstcase 15)uA für den
Watchdog. Hoffentlich kriegen die bald mal die Kurve mit der neuen
Serie  ;-)

Stefan

Autor: wolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der watchdog war wirklich "vergessen" bling damit sollte es
funktionieren wie ich es brauch..danke jungs :)

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"fragt in einer 3 zeilen routine nach änderungen an einem der portpins
ab"

Wäre es nicht besser den INT0/INT1 Low Level oder Pin Change IQR zu
benutzen um direkt auf diese Pinänderungen zu reagieren. Dann kannst du
nämlich den AVR tatsächlich in den Power Down Mode schicken, und erst
wenn sich der Pin ändert wird der AVR aufgeweckt. Du kannst somit den
Power Down Mode benutzen, der Watchdog/Timer/Async Timer mit Uhrquarz
wird alles hinfällig. Man arbeitet also komplett ohne Timer, und der
Power Down Mode spart die meiste Energie, < 5µA sollte somit ohne
weiters möglich sein.


Gruß Hagen

Autor: Axel Rühl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einklink.
Ws bitt eist ein Lowlevel Interrupt? rennt er da immer in einer
Schleife, bis der PIN wierder H-Pegel führt?
Ich komme drauf, weil der Mega8 sich lt.Datenblatt nur mit LowLevelInt0
aus dem Powerdown aufwecken lässt. /Bei mir läufts übrigens auch über
den Timer2 mit Uhrenquartz. Kann ich nur empfehlen, wobei mir die
Sekunde irgentwie Spanisch vorkommt, muss ich mal nachmessen, ich
glaube das Ding geht irre Vor (oder nach).
Gruß
AxelR.

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.