www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einige Fragen bezüglich Strom sparen beim ATmega8


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Daniel Lo (dannynrw)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi Leutz,

beschäftige mich seit einigen Tagen mit den Sleep Modes des ATmega8.
Und zwar möchte ich mit relativ wenig Aufwand eine möglichst geringe 
Stromaufnahme erzielen. Da käme mir der Idle Mode gerade richtig. Dort 
heißt es ja, der ATmega lässt sich auch durch die I/Os wecken.
Ist es dann so, daß der ATmega automatisch wieder aufwacht, wenn zB an 
einem beliebigen PIN irgendeine Signaländerung stattfindet oder denke 
ich mir das ganze zu einfach?
Hintergrund ist folgender: Der ATmega8 soll die komplette 
Innenbeleuchtung meines Fahrzeuges steuern. Benötigt werden also nur die 
normalen I/Os und mehrere PWM-Funktionen. Da hier natürlich die 
Autobatterie höher belastet wird, wenn der ATmega8 einfach aktiv bleibt 
während das Auto einfach nur in der Garage steht, möchte ich dem ein 
wenig entgegenwirken.
Denke, daß ich schon recht zufrieden sein kann, wenn ich einen Ruhestrom 
von ca. 1mA erreiche.
Würde mich hier über gute Tipps freuen.
Hier mal die Änderungen, die ich bislang vorhabe:
- Speisespannung des ATmega8 von bisher 5V auf 3V senken (ich arbeite 
mit dem LP2950 als Spannungsregler).
- Takt so gering wie möglich (denke an 2-1MHz).
- Habe noch gelesen, daß der ATmega8 auch schnell durch den ATmega88p 
ersetzt werden kann. Dieser verbraucht erheblich weniger Strom laut 
Datenblatt und scheint pinkompatibel zu sein.

Beste Grüße aus dem Rheinland :-).
Daniel

Autor: vn nn (wefwef_s)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Daniel Lo schrieb:
> Da hier natürlich die
> Autobatterie höher belastet wird, wenn der ATmega8 einfach aktiv bleibt
> während das Auto einfach nur in der Garage steht, möchte ich dem ein
> wenig entgegenwirken.
> Denke, daß ich schon recht zufrieden sein kann, wenn ich einen Ruhestrom
> von ca. 1mA erreiche.

Vergiss es. Die paar mA, die der AVR braucht, fallen da nun wirklich 
nicht ins Gewicht. Ich würde mir eher Sorgen um das mit Störungen 
verseuchte Boardnetz und das aus dem Eigenbau folgende Zulassungsproblem 
machen.

Autor: Daniel Lo (dannynrw)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Keine Sorge, es handelt sich dabei sowieso um ein Demofahrzeug, welches 
ausschließlich auf Ausstellungen und Messen bewegt wird. Wäre trotzdem 
um hilfreiche Tipps und Anregungen dankbar. Der Lerneffekt ist mir dabei 
doch viel wichtiger.

Autor: Anja (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Daniel Lo schrieb:
> Wäre trotzdem
> um hilfreiche Tipps und Anregungen dankbar.

Meine Erfahrungen:
- den Oszillator bei niedrigen Frequenzen auch auf low power einstellen. 
(nicht full swing)

- Die Referenzspannung des ADC während des Sleeps ausschalten.

An einem ATMega168 im IDLE Mode habe ich mit 3,84 MHz Quarz CKDIV = 8 
(FCPU = 460kHz) und aufwecken alle 20 ms für 1,4% 520uA einschließlich 
LP2950 (5V) gemessen. LFUSE hierbei = 0x7D.

Gruß Anja

Autor: Falk Brunner (falk)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
@  Daniel Lo (dannynrw)

>Und zwar möchte ich mit relativ wenig Aufwand eine möglichst geringe
>Stromaufnahme erzielen. Da käme mir der Idle Mode gerade richtig.

Nö, Power Down, siehe leep Mode.


>Denke, daß ich schon recht zufrieden sein kann, wenn ich einen Ruhestrom
>von ca. 1mA erreiche.

Starkstrom.

>- Speisespannung des ATmega8 von bisher 5V auf 3V senken (ich arbeite
>mit dem LP2950 als Spannungsregler).

Bringt wenig.

>- Takt so gering wie möglich (denke an 2-1MHz).

Ist egal bei Power Down.

>- Habe noch gelesen, daß der ATmega8 auch schnell durch den ATmega88p
>ersetzt werden kann. Dieser verbraucht erheblich weniger Strom laut
>Datenblatt und scheint pinkompatibel zu sein.

Ja.

MfG
Falk

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Daniel Lo schrieb:
> Da hier natürlich die
> Autobatterie höher belastet wird, wenn der ATmega8 einfach aktiv bleibt
Das ist für eine 50A/h-Autobatterie natürlich eine rein akademische 
Betrachtung. Aber darum geht es ja nicht wirklch.
Daniel Lo schrieb:
> Habe noch gelesen, daß der ATmega8 auch schnell durch den ATmega88p
> ersetzt werden kann.
Das solltest du auch ganz schnell machen. Atmega88(p)a, möglicherweise 
reicht auch ein 48er, Power-Down und Pin-Change-Interrupt. Und dein 
Stromverbrauch sinkt unter 1µA. Denn wenn schon denn schon.


mfg.

Autor: Daniel Lo (dannynrw)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Beim Power Down ist ein Aufwecken aber nur noch durch die externen 
Interrupts (INT0, INT1) möglich, richtig? Somit müsste ich mein 
Platinenlayout ändern. Das hieße auch, wieder eine neue Platine ätzen.
Daher interessierte mich der Idle Mode. Ansonsten hast Du natürlich 
Recht mit der Aussage "wenn, dann richtig!".
Aber ich kann mich da sicherlich auch langsam herantasten. Leider habe 
ich bislang noch kein passendes Programmbeispiel mit dem Idle Mode 
gefunden, wo ich einfach mal spionieren könnte.
Ist denn meine anfängliche Aussage richtig, daß sich der ATmega aus dem 
Idle Mode einfach durch eine Signaländerung an beliebigen PINs aufwecken 
lässt?

Mfg
Daniel

Autor: Frank M. (ukw) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Daniel Lo schrieb:
> Beim Power Down ist ein Aufwecken aber nur noch durch die externen
> Interrupts (INT0, INT1) möglich, richtig?

Beim ATmega88 kannst Du auf ziemlich jedem Pin einen PCINT 
konfigurieren, der Deinen µC wieder aufweckt.

Autor: Falk Brunner (falk)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
@  Daniel Lo (dannynrw)

>Beim Power Down ist ein Aufwecken aber nur noch durch die externen
>Interrupts (INT0, INT1) möglich, richtig?

Ja.

>ich bislang noch kein passendes Programmbeispiel mit dem Idle Mode
>gefunden, wo ich einfach mal spionieren könnte.

Siehe Sleep Mode.

>Ist denn meine anfängliche Aussage richtig, daß sich der ATmega aus dem
>Idle Mode einfach durch eine Signaländerung an beliebigen PINs aufwecken
>lässt?

Jain, das können aber nur die moderneren Typen ala ATmega88 & Co.

MFG
Falk

Autor: Markus Weber (Firma: guloshop.de) (m-w)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Thomas Eckmann schrieb:
> Das solltest du auch ganz schnell machen. Atmega88(p)a, möglicherweise
> reicht auch ein 48er, Power-Down und Pin-Change-Interrupt. Und dein
> Stromverbrauch sinkt unter 1µA. Denn wenn schon denn schon.

Wohl wahr. Oder gleich den ATmega328, der manchmal billiger ist als der 
ATmega88.

Ich hab mit niedrigen Taktfrequenzen gute Erfahrungen gemacht. Grad, 
wenn nur einfache Aufgaben erledigt werden sollen, müsste der interne 
Oszillator mit 128 kHz reichen. Das senkt den Stromverbrauch im aktiven 
(!) Zustand auf 120 uA. Wenn man dann noch die Spannung von 5 auf 3 V 
senkt, sind es nur ca. 60 uA.

Meist spart man sich dadurch den Sonderweg über den Sleepmode mit all 
seinem Gewurstel.

Autor: Daniel Lo (dannynrw)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo Markus,
danke für den Tipp mit der Taktfrequenz. Werde das mal ausprobieren und 
natürlich auch mal die Stromaufnahme messen. 120µA wäre ja schon 
wirklich riesig. Habe nämlich festgestellt, daß ich für meine Anwendung 
doch bei 5V Versorgungsspannung bleiben muß, da die 
Konstantstromquellen, die ich verwende, für das PWM-Signal mindestens 5V 
sehen wollen.
Ansonsten würde ich halt versuchen, den ATmega bei einer bestimmten 
Eingangskonstellation schlafen zu legen (sollte doch gehen oder? - Eine 
Möglichkeit, die ich in Betracht ziehen würde, wäre z.B. 
Zentralverriegelung geschlossen + Tür geschlossen + Zündung aus + ein 
wenig Wartezeit -> ATmega schlafen) und dann über einen externen 
Interrupt wieder aufzuwecken. Das einfachste wäre hierbei für mich: 
Zentralverriegelung auf -> ATmega aufwecken.
Beste Grüße :-).
Daniel

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net