Forum: Mikrocontroller und Digitale Elektronik Sleep-Modus ATMega8


von Roadrunner (Gast)


Lesenswert?

Hallo µC-Gemeinde,
habe ein kleines Problem, das ich gerne erörtern würde. Basis meiner 
Applikation ist ein ATMega 8. Nun möchte ich einen Sleep-Mode benutzen 
um in der Appklikation Strom zu sparen. Leider muss dies in periodischen 
Abständen erfolgen ohne dass ein externes Ereignis auftritt. Hatte mir 
schon den "Sleep mode" Artikel durchgelesen, dort aber auch nichts 
Brauchbares gefunden. Bin am überlegen ob es nicht am einfachsten (und 
billigsten) wäre bevor man in den Sleep-mode geht einen externen 555 
Timer anzuschubsen, der dann die Kiste per Monoshot über Ext-Int wieder 
zum Laufen bringt. Gibt es hier noch andere Möglichkeiten bzw. ICs, die 
mir hier helfen könnten?

P.s.: Ich hatte mal eine Applikation mit einem PIC aufgebaut, wobei man 
hier den Watchdog "missbrauchen" konnte und der Watchdog keinen Reset 
sondern die Kiste aus dem Sleep-mode aufweckte. Ist dies bei einem 
ATmega auch möglich?

MfG Roadrunner

von Jens (Gast)


Lesenswert?

Vielleicht hilft das.
Du kannst den Controller intern takten und an den Eingängen TOSC1 und 
Tosc2 einen 32 kHz Quarz anschließen. Der speisst den asynchronen Timer2 
und läuft irgendwann über. Mit dem Interrupt kannst du den Controller 
aufwecken. Mit Prescaler und Value steuerst du die Zeit.
Im Datenblat stehen die Modes für Stand-By. Die Timer laufen weiter.

Grüße, Jens

von Esquilax (Gast)


Lesenswert?

Ich hab zwar noch nie einen Atmega schlafen lassen, aber ich meine, dass 
man die auch von einem (internen) Timer wieder wecken lassen kann. 
Müsste im AVR- oder im AVR-GCC-Tutorial stehen.

von haps (Gast)


Lesenswert?

Ihc habe für soetwas mal einen Kondensator und einenen Widerstand 
benutzt: vor dem sleep aufladen, dann über den widerstand entladen 
lassen und auf ein PCIRQ warten.. stromverbrauch war im untersten uA 
bereich

von Seppl (Gast)


Lesenswert?

Schau doch mal ins Datenblatt, der Watch-Dog kann durchaus aus dem
Sleep-Mode aufwecken, ohne einen Reset auszuführen.

Außerdem setzt der "WD-Reset" ein Flag, sodaß man erkennt wer den Reset
ausgelöst hat.

Der einzige Nachteil ist, daß der Watchdog keine all zu langen Zeiten
"machen" kann, ggf. muß man halt gleich wieder in den Sleep-Modus gehen,
dann ist der ATMega auch nur ein paar µs in Betrieb.

MfG

Seppl

von Oliver (Gast)


Lesenswert?

>Der einzige Nachteil ist,

das ein Mega8 das alles nicht kann.

Es gehen dafür:
- sleep-modus mit Aufwecken über Timer-Interrupt
- power-down modus mit Aufwecken über externen Interrupt mit 
zusätzlicher Hardware (die auch wieder Strom braucht)
- power save modus mit externem 32kHz-Quarz und Aufwecken über asynchron 
getakteten Timer2-Interrupt.

Oliver

von Karl H. (kbuchegg)


Lesenswert?

Roadrunner schrieb:

> billigsten) wäre bevor man in den Sleep-mode geht einen externen 555
> Timer anzuschubsen, der dann die Kiste per Monoshot über Ext-Int wieder
> zum Laufen bringt.

Überleg mal wieviel Strom der Mega braucht, wieviel Strom du durch den 
SleepMode sparen kannst und wieviel Strom der 555 verbraucht.

Aus dem Bauch heraus machst du mit soetwas den Bock zum Gärtner.

von Roadrunner (Gast)


Lesenswert?

Hallo,
danke erstmal für die Antworten.
@haps: Finde ich eine Super Idee. Wieso noch zusätzlich Hardware (hier: 
extra 555 Timer)verbauen, wenn ich das auch mit dem µC veranstalten 
kann. Laden, Entladen und Timer triggern geht dann über µC und Platz für 
ein RC-Glied sollte bei meiner Applikation drin sein ;-)

Danke und Gruß Roadrunner

von Falk B. (falk)


Lesenswert?

@  Roadrunner (Gast)

>schon den "Sleep mode" Artikel durchgelesen, dort aber auch nichts
>Brauchbares gefunden.

Dann bist du blind. Setzen, sechs!

>zum Laufen bringt. Gibt es hier noch andere Möglichkeiten bzw. ICs, die
>mir hier helfen könnten?

Mach erstmal die Augen auf.

von Timo S. (kaffeetas)


Lesenswert?

Hallo Roadrunner,

eventuell solltest Du überlegen auf einen Mega88 zu wechseln.
Dort kann der Watchdog Interrupt zum Aufwachen genutzt werden. Den 
Aufwand zur portierung deiner Software nach Mega88 kann ich leider nicht 
abschätzen, dürfte sich aber im Rahmen halten.
Der Watchdog Oscilator braucht ca 5µA bei einem tiny2313, habs leider 
noch nicht mit nem großen Mega ausprobiert. Dürfte aber in einer 
ähnlichen Größenordnung liegen.

Maximale Zeit ca 8sec zum nächsten Aufwachen.

Grüße
 Timo

von ah (Gast)


Lesenswert?

Mit dem Timer am 32k Quarz kann man doch jeweils 8 sekunden Schlafen 
lassen...

von haps (Gast)


Lesenswert?

Hey Roadrunner,

so siehts aus, wird auch oft so in der Industrie eingesetzt. Bittesehr, 
viel Erfolg!

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.