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.
> Analog Copmperator ist aus
Sicher? Manche Peripherie ist von Haus aus eingeschaltet und muss
explizit ausgeschaltet werden. So beispielsweise der Analog Comparator.
>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.
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.
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.
Und Brown-out und DebugWire in den Fuses deaktivieren. Ports auf Ausgang wenn sie unbeschaltet sind. Gruß Hagen
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
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.