PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konfiguration Port Pins bei Powerdown (Stromsparen)



Alcedo7
28.12.2010, 15:11
Hallo!
Ich versuche gerade herauszufinden, wie sich der der Stromverbrauch einer Controllerschaltung möglichst gering halten lässt.
Dazu habe ich mir im Datenblatt den Abschnitt "Minimizing Power Consumption" durchgelesen, habe da jedoch ein paar Verständnisschwierigkeiten. Ich hoffe, ihr könnt mir da etwas weiterhelfen.

1) Es wird empfohlen floatende Eingänge zu vermeiden und darum bei unbeschalteten Pins die Pullups zu aktivieren. Gilt dies auch für den Powerdown-Modus oder sind hier die I/O-Pins sowieso deaktiviert? Und wie sieht es bei Eingängen aus an denen Schalter oder Jumper hängen, die die Eingänge möglicherweise auf Ground ziehen? Wie sollten die für einen geringen Stromverbrauch konfiguriert sein, wenn man den Controller in Powerdown schickt?

2) Verschiedene Funktionen wie z.B. ADC, Watchdog, Timer verbrauchen zusätzlich Strom und sollten deaktiviert werden. Mir ist jedoch nicht klar, welche Teile der Peripherie standardmäßg eingeschaltet sind...
Und lässt sich mittels DIDR0/DIDR1 Strom sparen, auch wenn der ADC ausgeschaltet ist, oder nur wenn dieser verwendet wird?

Ich hoffe, ich konnte die Fragen halbwegs verständlich formulieren. Wie man sieht, ist mir beim Thema Stromsparen noch so einiges unklar. Wäre euch wirklich dankbar, wenn ihr mir hier ein bisschen Klarheit verschaffen könntet.

Gruß
Alcedo7

markusj
28.12.2010, 20:53
1) Es wird empfohlen floatende Eingänge zu vermeiden und darum bei unbeschalteten Pins die Pullups zu aktivieren. Gilt dies auch für den Powerdown-Modus oder sind hier die I/O-Pins sowieso deaktiviert? Und wie sieht es bei Eingängen aus an denen Schalter oder Jumper hängen, die die Eingänge möglicherweise auf Ground ziehen? Wie sollten die für einen geringen Stromverbrauch konfiguriert sein, wenn man den Controller in Powerdown schickt?
Die I/O-Pins werden nie deaktiviert.
Wenn die Taster nicht gebraucht werden, hast du zwei Optionen, du kannst entweder den Pullup an lassen (braucht Strom wenn gedrückt) oder den Pin aktiv auf den entsprechenden Pegel (also bei dir Low) steuern. Werden die Taster nicht gedrückt sollten beide Varianten aufs gleiche rauskommen.


2) Verschiedene Funktionen wie z.B. ADC, Watchdog, Timer verbrauchen zusätzlich Strom und sollten deaktiviert werden. Mir ist jedoch nicht klar, welche Teile der Peripherie standardmäßg eingeschaltet sind...
Und lässt sich mittels DIDR0/DIDR1 Strom sparen, auch wenn der ADC ausgeschaltet ist, oder nur wenn dieser verwendet wird?
Sieh dir einfach im Datenblatt Mal die einzelnen Module an, du siehst anhand der Standard-Registerwerte ob sie an oder aus sind. Normalerweise ist das meiste nach einem Reset aus (Ausnahmen wie der Komparator bestätigen die Regel).
DIDR spart dadurch Strom, dass die digitale Auswertung der entsprechenden Eingangspins deaktiviert wird, da diese bei unsauberen Pegeln mehr Strom brauchen. Normalerweise setzt man diese Register einmal beim Start, da man meistens einen Eingangspin immer Digital oder Analog betreibt.

mfG
Markus

Alcedo7
29.12.2010, 00:49
Hallo Markus,
vielen Dank für die Antwort! Da hast du mir schon mal ein gutes Stück weiter geholfen.

In der Schaltung an der ich gerade bastel, verwende ich einen ATmega644V, der von zwei Mignonbatterien mit 3V versorgt wird. Der Controller läuft mir 1 MHz (Interner RC Osz. 8 MHz / Prescaler 8) und befindet sich die meiste Zeit im Powerdown, aus dem er mit einem Taster über Int0 aufgeweckt wird. Die unbeschalteten Pins sind während des Powerdowns als Eingänge mit Pullups konfiguriert, die Pins mit den Schaltern/Jumpern jedoch als Ausgänge (low).
Der Analog Comparator ist deaktiviert. Die verwendeten Timer werden vor dem Powerdown ebenfalls abgeschaltet. Ansonsten habe ich alles wie im Lieferzustand belassen.
Ist das so sinnvoll oder sollte ich etwas anders machen, bzw lässt sich noch an anderer Stelle der Stromverbrauch reduzieren?

markusj
29.12.2010, 01:05
Kleine Anmerkung: Nicht vergessen, den Taster zum Aufwecken NICHT auf Output (Low) zu konfigurieren, sonst schläft der AVR ewig ...

Die Timer brauchst du nicht abschalten (macht der Powerdown für dich), eigentlich musst du dich nur um die Komponenten kümmern, die im PowerDown noch arbeiten (TWI, Watchdog, Externe Interrupts), die Pin-Konfiguration sowie den Analog-Teil.
Kapitel 8.10 "Minimizing Power Consumption" ist dahingehend quasi eine Art "Checklist"

mfG
Markus