Forum: Mikrocontroller und Digitale Elektronik mega8 power management


von wolli (Gast)


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??

von crazy horse (Gast)


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.

von wolli (Gast)


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

von Stefan Kleinwort (Gast)


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

von crazy horse (Gast)


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.

von Stefan Kleinwort (Gast)


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

von wolli (Gast)


Lesenswert?

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

von Hagen (Gast)


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

von Axel Rühl (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.