Go Down

Topic: Atmega328P Standalone mit LiPo (Read 5106 times) previous topic - next topic

Klaus_ww

Freizeit-Programmierer mit moderatem Ehrgeiz besseren Code zu schreiben.

Manawyrm

Hierbei noch ein kleiner Hinweis zu den Arduino-Stromspareigenschaften:
die BOD solltest du per Fusebits komplett deaktiveren, die brauchten in meinen Versuchen relativ viel Strom.

Außerdem solltest du den ADC in der Setup Routine deaktiveren bzw. immer wähernd des Sleeps. Das scheint auch im PWR_DOWN Sleep nicht automatisch zu geschehen.
Mit diesen beiden Änderungen ist es mir gelungen den im Datenblatt angegebenen 2µA sehr nahezukommen :)

Serenifly

Der Stromspar-Kram wird hier sehr gut erklärt:

http://www.gammon.com.au/forum/?id=11497

bauerbyter

wow danke, das ist alles sehr hilfreich, gleich mal einarbeiten ^^

jurs


Hierbei noch ein kleiner Hinweis zu den Arduino-Stromspareigenschaften:
die BOD solltest du per Fusebits komplett deaktiveren, die brauchten in meinen Versuchen relativ viel Strom.

Außerdem solltest du den ADC in der Setup Routine deaktiveren bzw. immer wähernd des Sleeps. Das scheint auch im PWR_DOWN Sleep nicht automatisch zu geschehen.
Mit diesen beiden Änderungen ist es mir gelungen den im Datenblatt angegebenen 2µA sehr nahezukommen :)


Welche  wo angegebenen 2µA?

Laut Datenblatt:
Low Power Consumption at 1 MHz, 1.8V, 25°C for ATmega48PA/88PA/168PA/328P:
- Active Mode: 0.2 mA
- Power-down Mode: 0.1 µA
- Power-save Mode: 0.75 µA (Including 32 kHz RTC)


0.1 µA!

Allerdings darf für einen so niedrigen Verbrauch dann in der Schaltung auch schon lange kein PullUp-Widerstand mehr am Reset-Pin hängen, sonst braucht der Reset-PullUp schon ein vielfaches an Strom.

michael_x

Quote
Allerdings darf für einen so niedrigen Verbrauch dann in der Schaltung auch schon lange kein PullUp-Widerstand mehr am Reset-Pin hängen, sonst braucht der Reset-PullUp schon ein vielfaches an Strom.

???
OK, 0.1µA liegt ausserhalb meiner Messtechnik, aber...
Wie hoch ist denn der Eingangswiderstand des Reset-Pins ?
Ich dachte, das könnte man als "etwas weniger als unendlich" annehmen, und einen 10k Pullup ignorieren.
Die Spannung an diesem 10k Widerstand hab ich jedenfalls mit 0.00V gemessen

jurs


Wie hoch ist denn der Eingangswiderstand des Reset-Pins ?
Ich dachte, das könnte man als "etwas weniger als unendlich" annehmen, und einen 10k Pullup ignorieren.


Das müßte man mal konkret ausmessen, wieviel es ausmacht.
Der "Leaking Current" an I/O Pins bei 5.5V beträgt laut Datenblatt immerhin bis zu maximal 1µA. Das würde gemäß ohmschen Gesetz einem Mindest-Eingangswiderstand entsprechen von:
R = U/I = 5.5 / 0.000001 = 5500000 Ohm = 5,5 MOhm

Mein billiges Multimeter hat einen 200µA Messbereich mit 0.1µA Anzeigeauflösung, da sollte es schon angezeigt werden, wenn der Verbrauch bei maximalem PowerDown mit PullUp um (beispielsweise) 0.3µA  ansteigt gegenüber dem Verbrauch ohne PullUp-Widerstand. Müßte ich mir bei Gelegenheit mal zusammenstecken und messen.

michael_x

Quote
Der "Leaking Current" an I/O Pins bei 5.5V beträgt laut Datenblatt immerhin bis zu maximal 1µA.

Danke, Ja.
Sowas hatte ich bisher immer als "fast 0" ignoriert.
Aber den Reset Pin floaten lassen ist sicher auch nicht gut.
Und bei ca. 5MOhm macht es keinen Unterschied, ob davor ein 10k oder ein 100k Pullup hängt. Oder ?

jurs


Aber den Reset Pin floaten lassen ist sicher auch nicht gut.


Der Reset-Pin an den AVRs floatet nicht, er hat eine sehr schwache interne PullUp-Schaltung. Laut:
http://www.atmel.com/images/atmel-2521-avr-hardware-design-considerations_application-note_avr042.pdf
dort steht:
The reset line has an internal pull-up resistor, but if the environment is noisy it can be insufficient and reset can
therefore occur sporadically.


Also für "noisy environment" braucht man was zusätzlich als PullUp.
Ansonsten aber evtl. auch nicht.
Empfohlen wird für allgemeine Anwendungsfälle wohl immer ein 4.7K PullUp extern anzuschließen.
Ein Arduino-Board, an dem ein aktives USB-Kabel hängt, ist immer zugleich "noisy Environment", das geht gar nicht anders.
Aber zwingend notwendig unter allen Umständen ist das nicht, weil Reset an den AVRs im Prinzip nicht floatend ist.

Andererseits: Ob ein Gerät im Standby jetzt 0,1µA, 1µA oder 2µA Strom zieht, macht den Kohl nicht fett. Damit liegt man in jedem Fall weit unterhalb der Selbstentladung von Alkaline-Zellen.  Und andere Hardware im Standby wird möglicherweise viel mehr Strom ziehen als der Atmega-Controller.

Go Up