He Leute,
ich hab da mal eine, wie ich glaube, recht einfache Frage. Allerdings konnte ich nichts dazu finden.
Ich habe einen Atmega328P den ich mit Strom versorgen will, dazu will ich einen LiPo Akku benutzen mit 3,7V. Der Atmega befindet sich die meiste Zeit im "schlaf".
Ist es ein Problem wenn ich den Atmega einfach direkt mit dem LiPo verbinde? Oder gibt es da Probleme?
Soweit ich weiß verringert sich die maximal Taktfrequenz, allerdings betreibe ich den Atmega eh mit dem Internen 8Mhz.
Was ich mir auch als Problem vorstelle, was ich allerdings nicht weiß ob es Auswirkung hat: Der LiPo lässt ja mit der Zeit etwas nach.... passt sich da der Atmega an?
Option wäre ein Spannungsregler einzubauen wie den LP2950 3V allerdings würde das wieder mehr Strom verbrauchen.
Ich brauch allerdings keine 5 Volt, mir reichen 3 bis 4, weil die restlichen komponenten auch nur soviel vertragen. Den Komponenten ist egal ob sie 3,7 oder 3,5 kriegen, die Frage ist: ist es dem Atmega auch egal
bauerbyter:
Ist es ein Problem wenn ich den Atmega einfach direkt mit dem LiPo verbinde? Oder gibt es da Probleme?
Soweit ich weiß verringert sich die maximal Taktfrequenz, allerdings betreibe ich den Atmega eh mit dem Internen 8Mhz.
Laut Datenblatt für den Atmega328 http://www.atmel.com/Images/doc8161.pdf in Kapitel "28.3 Speed Grades
Maxi" beträgt die Mindestspannung bei 4 MHz 1,8V und bei 10 MHz 2.7V, mit linearem Verlauf dazwischen.
Die sichere Mindestspannung für den Betrieb bei 8 MHz beträgt demnach:
Umin= 1.8+ ( 2.7-1.8 ) * ( 8-4 ) / ( 10-4 ) = 2.4 Volt
Solltest evtl. die FuseBits zur BOD prüfen und entweder
auf 2.7V einstellen.
ihn zur Not etwas "übertakten" und bis 1.8V zulassen
ganz deaktivieren
Hängt auch davon ab, was der Arduino macht,
ob er bei leerer Batterie definiert abschalten soll oder undefiniert Unsinn machen "darf".
Lädst du den LiPo wieder auf während er am Arduino hängt ?
Das ist die riskantere Phase, fürchte ich. Wenn die Batterie durch Überladen stirbt, stirbt der 328p auch
Also am besten wärs er würde abschalten, allerdings hat der LiPo wie gesagt schon einen unterspannungsschutz, wenn ich das richtig verstehe, schaltet die Batterie dann eh ab.
Ach ja und laden wärend der Arduino dran ist will ich nicht.
Wenn du keine Analog abfragen machst ist dies so machbar. Nutzt du aber AnalogRead so mit der externen Refrence so hat sind deine 1023Bit immer der Bezug auf die aktuelle VCC also sind 1023 "AnalogReadBits" mal 3,7V und wenn kurz vor leer 3,3V.
Du kannst dies umgehen indem du die aktuelle Vcc misst und dann in deine Berechung einfließen lässt.
siehe hier: http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/
michael_x:
Solltest evtl. die FuseBits zur BOD prüfen und entweder
auf 2.7V einstellen.
ihn zur Not etwas "übertakten" und bis 1.8V zulassen
ganz deaktivieren
Hängt auch davon ab, was der Arduino macht,
ob er bei leerer Batterie definiert abschalten soll oder undefiniert Unsinn machen "darf".
Lädst du den LiPo wieder auf während er am Arduino hängt ?
Das ist die riskantere Phase, fürchte ich. Wenn die Batterie durch Überladen stirbt, stirbt der 328p auch
Der Arduino darf beim Laden dranhängen, da Lipos im Gegensatz zu NiMH-Akkus niemals über die Maximalvollspannung von 4,2V geladen werden dürfen. D.H. das Ladegerät darf unter keinen Umständen mehr liefern, da sonst der Akku instabil bis hin zur Entzündung wird. Es kann also keine Spannungsspitzen geben.
Ein Lipoakku muss mit einem Unterspannungsschutz betrieben werden. Unter ca. 3-2,8V geht der Akku kaputt. Da muss eine Notabschaltung stattfinden. Man hat also ein festes Spannungsfenster zwischen 4,2 und 3V vom Akku vorgegeben, wo auch der Prozessor gut läuft.
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
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
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.