Forum: Mikrocontroller und Digitale Elektronik Atmega88 mit 270µA im Power-Down Mode


von Toni (Gast)


Angehängte Dateien:

Lesenswert?

Guten Morgen,

ich hab Gestern mal die Stromaufnahme meiner Schaltung gemessen und 
festgestellt, dass der Atmega88 im Power-Down-Modus noch ziemlich viel 
Strom verbraucht.

Hab dann mal einen Aufbau gemacht, wo nur die Standardbeschaltung des 
AVR's verwendet wird. Dort verbraucht der AVR im Power-Down-Modus noch 
einen Strom von ca. 270µA. Im Datenblatt ist er aber mit maximal 15µA 
angegeben, wenn der Watchdog eingeschaltet ist.

Analog Copmperator ist aus, Ports gar nicht erst beschaltet. Komisch 
oder?

Hab mir die Register mit nem Debugger mal angeschaut, die entprechenden 
Bits für den Poewr-down-Mode sind gesetzt. Weiß nicht mehr weiter, woran 
das noch liegen könnte.

Hab den Code mal angehängt, vielleicht ist dort was falsch.

von Andreas K. (a-k)


Lesenswert?

> Analog Copmperator ist aus

Sicher? Manche Peripherie ist von Haus aus eingeschaltet und muss 
explizit ausgeschaltet werden. So beispielsweise der Analog Comparator.

von Toni (Gast)


Lesenswert?

>Sicher? Manche Peripherie ist von Haus aus eingeschaltet und muss
>explizit ausgeschaltet werden. So beispielsweise der Analog Comparator.

Ganz sicher, hab ihn mit ACSR |= (1 << ACD); ausgeschaltet. Steht im 
Datenblatt, das dieses Bit high sein muss.

von SF (Gast)


Lesenswert?

Die unbenutzten Ports sind alle als Input konfiguriert und nicht 
beschaltet. Das bedeutet das diese Inputs "floaten", es fließen dort 
analoge Querströme. Dies wird sicher den Großteil des unerklärlichen 
Stromverbrauchs verursachen.

Um das zu verhinder musst du alle unbenutzten Ports als Output 
konfigurieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Pullups genügen auch.

Weiterhin, guck dir mal das PRR (power reduction register) an.  Dort
sind die Reset-Werte für alle Bits 0, d.h. die entsprechenden
Funktionsblöcke sind zugeschaltet.  Die Angaben über die Stromaufnahme
gehen aber von abgeschalteten Blöcken aus (die Teilströme für diese
Blöcke sind separat ausgewiesen).

Schließlich noch: schalt debugWire aus, falls es an ist.

von Hagen R. (hagen)


Lesenswert?

Und Brown-out und DebugWire in den Fuses deaktivieren. Ports auf Ausgang 
wenn sie unbeschaltet sind.

Gruß Hagen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, brown-out sollte bei picopower AVR ja nicht mehr der große
Schlucker sein.

von Hagen R. (hagen)


Lesenswert?

Datenblatt ATMega88 (ist kein picoPower AVR) Seite 38 "Minimizing Power 
Consumtion"

If the Brown-out Detector is not needed by the application, this module 
should be turned
off. If the Brown-out Detector is enabled by the BODLEVEL Fuses, it will 
be enabled in
all sleep modes, and hence, always consume power. In the deeper sleep 
modes, this
39
ATmega48/88/168
2545B–AVR–01/04
will contribute significantly to the total current consumption. Refer to 
“Brown-out Detection”
on page 43 for details on how to configure the Brown-out Detector.

Die Sache ist die: man kann den interne Bandgap für den ADC & Analog 
Comparator ausschalten, aber diese wird nur tatsächlich deaktiviert wenn 
auch der Brownout deaktiviert wurde.

Gruß Hagen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ja klar Hand-auf-Stirn-schlag, der ATmega88P war ja nur angekündigt,
aber noch nicht da.

Ja, dann sollte man natürlich den Brown-out-Detektor abschalten, wenn
man ihn nicht braucht.  Andererseits braucht man ihn in batterie-
betriebenen Applikationen eigentlich immer...

von Thomas (Gast)


Lesenswert?

Wie genau ist dein Messgerät in diesem Strommessbereich?

von nop(); (Gast)


Lesenswert?

Fuer Brownout : MCP111T, verschiedene Spannungslevel, zieht 1uA

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.