Limiter für Li-Zelle, fest am Akku angelötet

Otti

User
Servus,

vor längerer Zeit hatte ich mal einen kleinen Limiter gebaut, der direkt an die Li-Zelle (hier: A123 LiFe-Zelle) angelötet wurde. Eine typische Anwendung wäre z.B. der Einsatz bei einem 2s Empfänger-Akku, der zum Laden i.d.R. im Modell verbleibt. Durch den Limiter am Akku selbst muss beim Laden kein extra Balancer angeschlossen werden, so daß eine simple Verbindung mit (+) und (-) zum Anschluss des Ladegerätes ausreicht.
Die Platine ist relativ klein und schafft mit der gezeigten Dimensionierung maximal etwas über 200mA Entladestrom. Die Verlustwärme wird ggf. an die Akkuzelle, mit der die Platine verklebt ist, abgegeben. So sieht das ungefähr an einer 26650er A123-Zelle aus:
akku.jpg

Funktion:
Als Spannungs-Referenz für eine präzise Funktion wird hier die Bandgap-Referenz LM385-2.5 (d.h. 2,5V) verwendet.
Da die Schaltung dauerhaft am Akku verbleibt, soll sie natürlich möglichst wenig Strom verbrauchen. So eine Bandgap-Referenz allein braucht schon ein wenig Betriebsstrom, um korrekt zu funktionieren (LM385-2.5 lt. Datenblatt 20µA), so daß eine rein analoge Schaltung über eine längere Lagerzeit des Akkus doch einiges an Kapazität kosten würde.
Um die Stromaufnahme auf ein Minimum zu reduzieren, wird die Referenz im Ruhezustand alle paar hundert Millisekunden immer nur für einige Mikrosekunden zum Messen eingeschaltet. Der Mikrocontroller wird in den Messpausen in den Sleep-Modus versetzt und braucht dadurch im Schnitt so gut wie keinen Strom. Lediglich der Watchdog-Timer, der den Controller in regelmäßigen Zeitabständen aufweckt, muss in Betrieb bleiben und braucht bei 3,5V Zellenspannung etwa 3-4 Mikroampere Strom. Pro Jahr Lagerzeit ergibt das somit eine zusätzliche Entladung des Akkus durch den Limiter von ca. 30-40 mAh, was man wohl in der Praxis vernachlässigen kann.

Hier der Schaltplan:
Limiter_sch.png

Der Controller steuert den Limiter-Strom analog durch Laden/Entladen von C2. Ich dachte damals, daß das evtl. Vorteile bringt gegenüber einer digitalen "an/aus"-Lösung.

Die LED zeigt durch Blinken an, wenn der Limiter arbeitet, oder durch kurze Lichtbltze, wenn der Controller steigende Akkuspannung erkennt (z.B. beim Laden).
Nähert sich die Akkuspannung der Ladeschluss-Spannung, wird das durch Doppelblitze angezeigt, wobei der Zeitabstand beim Doppelblitz um so kürzer wird, je weiter sich die Spannung der Ladeschlussspannung annähert. So hat man eine recht anschauliche optische Ladekontrolle jeweils für die einzelne Zelle.

Grüße,

Otti
 
Interessanter Ansatz

Interessanter Ansatz

Hallo Otti,

der Ansatz gefällt mir. Das Ganze könnte man wie in deinem Fall direkt an der Zelle / im Akkupack anschließen oder auch extern über den Balanceranschluss. Dein Einsatz ist ja eher für dauerhaft verbaute grosse Packs sinnvoll, die zweite Option hätte dagegen auf jeden Fall Gewichts- und Kostenvorteile.

Aber da man ja auf jeden Fall mehere Schaltungen braucht wie sieht es mit den Kosten aus und wie mit der Streuung der Laderspannungen - hast du da bei Dir mal nachgemessen. Wieviel wiegt denn deine Schaltung?

Lädst du den Akku über ein konventionelles Lipo/LiFePo4 Ladegerät und gibt es da Probleme in Zusammenhang mit dem integrierten Balancer (sind ja meist über Widerstandsbrücken für die Restladung realisiert). Erfolgt dort überhaupt eine vollständige Aufladung oder schaltet das Ladegerät einfach ab?

Peter
 

Otti

User
Hallo Peter,

uiiii, nach soo langer Zeit noch eine Reaktion... ;)

Die Idee dahinter war ja gerade, daß die Schaltung fest an der Akkuzelle verbaut wird und daher Stecker und das Hantieren mit dem externem Balancer wegfällt. Meine alten Ladegeräte laden den Akku nach eingestellter Spannung pro Zelle, ob es bei modernen Ladern mit eingebauten Balancern Probleme gibt, weiß ich nicht. Wenn der Lader grundsätzlich einen Akku auch ohne angeschlossenen Balancer laden kann, sollte es auch mit dem im Akku integriertem Limiter gehen.
Das Platinchen ist ca. 30x10x1 mm und wiegt bestückt kaum 1 Gramm, die Bauteilekosten dürften so bei 2 Euro liegen (Reichelt-Preise).
Die Firmware hat eine Abgleichfunktion, so daß durch Kurzschließen von zwei Pins am Controller die gerade anliegende Spannung als Ladeschluss-Spannung abgespeichert wird. Die Platine ist nur einseitig, so daß man sie theoretisch auch leicht selbst ätzen könnte, allerdings kann man solche kleinen Platinen auch sehr preiswert und in professioneller Qualität herstellen lassen, so daß sich die Arbeit und das Rumgepantsche mit Chemikalien kaum lohnt.

Gruß,

Otti
 

Otti

User
Hallo Bernd,

ok, das Layout ist ja nicht so komplex und in Eagle sicher auch recht schnell erstellt.
Hier ist die Firmware für die "alte" Schaltung: Anhang anzeigen Limiter_R1_asm.txt

Heute habe ich mal die Schaltung etwas modernisiert:
(Rev.2):limiter_R2_sch.PNG

Durch die geänderte Pinbelegung und die Pads (TP1..TP5) ist die ICSP-Programmierung einfacher.
Auch würde ich inzwischen einen moderneren PIC der enhanced-Midrange-Familie (z.B. 12F1840) vorziehen.
Die Rev.2-Platine würde dann so aussehen: limiter_R2.PNG

Gruß,

Otti
 

Otti

User
Hallo Otti,

vielen Dank, aber Assembler ist nichts für mich, weil unter Linux nicht machbar.

na, ich glaube auch nicht, daß Du auf den kleinen PIC ein Linux zum Laufen bekommst! ;)

Ich habe zwar keine Linux-Erfahrung, aber die MPLAB-X IDE von Microchip gibt's soweit ich weiß auch für Linux. Ich denke, die sollte da genauso (incl.Assembler) funktionieren, wie unter Windows.
Eine Neu-Implementation in C wäre natürlich auch zeitgemäßer - da gebe ich Dir Recht. Mit einem moderneren Controller, der nicht auf 1K Code und 64 Bytes RAM beschränkt ist, wäre das auch kein Hexenwerk. Die Funktion könnte evtl. auch einfacher gehalten werden, als in meiner Firnware. Diese war ja für A123-Zellen gedacht und aus meiner Beobachtung heraus, daß eine "vollere" Zelle gegen Ende des Ladevorgangs einen relativ steilen Spannungsanstieg zeigt, wollte ich das berücksichtigen und den Balancerstrom in dem Fall schon einschalten, bevor die Ladesschlussspannung erreicht ist. Herausgekommen ist dabei sowas, wie ein PID-Regler, was die Sache natürlich verhältnismäßig kompliziert macht. Den Nachweis, daß das tatsächlich einen Vorteil bringt gegenüber einem simplen
if(Spannung > Maxwert)
Strom_an();
else
Strom_aus();
habe ich freilich nie geführt.

Gruß,

Otti
 

Otti

User
Das Teil ist aber nur eine Schutzschaltung und balanciert die Zellen nicht!
Das entsprechende Lastmodul wäre evtl. das hier: http://shop.lipopower.de/Balancer-300mA-fuer-1-Zelle-LiFePo4-LiNANOZ-Lastmodul. Kostet etwas mehr, hätte nach meinem Geschmack aber mit 30µA eine viel zu hohe Stromaufnahme. Ob das ein wichtiges Kriterium ist, kommt natürlich auch auf die eigenen Prioritäten an.

Grundsätzlich "lohnt" sich in Zeiten von billiger Elektronik der Selbstbau wohl eher selten, erst recht, wenn man auch noch den benötigten Zeitaufwand betrachtet. Das sehe ich eher, wie beim Bau von Flugmodellen: lohnt sich der Eigenbau nach Plan oder gar ein eigener Entwurf eines Flugmodells aus Holz, wenn es doch für kaum mehr, als die eigenen Materialkosten fertige Fluggeräte von der Stange mit nachgewiesen tollen Flugeigenschaften zu kaufen gibt?

Gruß,

Otti
 
Hallo Otti,

hast Du schon Erfahrungen mit der Fixed Voltage Reference (FVR) vom 12F1840 oder 12F1612 bezüglich der Genauigkeit.
Die FVR würde ja den LM385 ersetzen. Ich besitze einen LiFePo 4s mit 8Ah Zellen (LiNANO® 8 Ah 3,2V 25C Headway 38120HP). Diesen LiFePo verwende ich als mobile Stromversorgung für meine Ladegeräte und auch als Notfall Starterakku für meinen Roller. Dafür möchte ich noch einen Limiter bauen. Geladen wird der LiFePo i.d.R. über ein 12 Volt KFZ Ladegerät. Mit einem 12F1612, einem IRLZ34N und z.B. einem Lastwiderstand 11W 2.7 Ohm könnte man einen einfachen Limiter mit wenigen Bauteilen pro Zelle bauen.

Gruss Micha

Headway_8Ah_1.jpg
 

Otti

User
Hi Micha,

die FVR ist als genaue Referenzspannung eher ungeeignet (-8% .. +6% maximale Abweichung laut Datenblatt des 12F1840).
Selbst für LiFe-Zellen, wo es nicht so auf ein paar mV ankommt wie bei LiPos, ist das viel zu ungenau.
Der IRLZ34 ist m.E. unnötig groß, wenn er nur Strom durch den Lastwiderstand schalten muss - das kann z.B. auch ein IRLML2502 locker schalten.
Der ist winzig (SOT-23) und kostet mit 18 Cent bei Reichelt etwa die Hälfte des TO220-Boliden.
Für den Ausgleich der normalen Zellendrift würde wohl auch ein Bruchteil des Stroms reichen, das dürfte das Handling der Abwärme etwas erleichtern. Bei ca. 5W muss man schon acht geben, daß die Wärme irgendwo hin kann...
Der LM385 wäre aktuell auch nicht mehr mein Favorit, sondern eher eine genauere und kleinere Referenz im SOT-23 Gehäuse (s.o. beim Redesign des Limiters).

Grüße,

Otti
 
Hallo Otti,

mit der Abweichung der Referenzspannung kann ich leben, sie muß nur stabil sein. Die Genauigkeitsangabe kann ich leider nirgends im Datenblatt 12F1840 finden? Im 12F1612 Datenblatt auch nicht. Die Schaltschwelle zum Entladen kann ich kalibrieren. Der IRLML2502 langt natürlich locker, hab noch IRLZ34 in der Bastellkiste. In meinem Alter löte ich SMD nicht mehr so gerne :). Der Limiter soll eventuell in meinem Motorrad verwendung finden. Die Bleibatterie in meiner alten BMW wiegt fasst 8 kg, 4 LiFePoHeadway 38120HP wiegen nur 1.3 kg.

Gruss Micha
 

Otti

User
Hallo Otti,

mit der Abweichung der Referenzspannung kann ich leben, sie muß nur stabil sein. Die Genauigkeitsangabe kann ich leider nirgends im Datenblatt 12F1840 finden?
Steht in Kap. 30, bei "Electrical Specifications -> DC Charcteristics Supply Voltage", nicht in der Beschreibung des FVR-Moduls selbst (Kap.14).
Im 12F1612 Datenblatt auch nicht. Die Schaltschwelle zum Entladen kann ich kalibrieren.
Ja, dann stimmt der Wert wohl einigermaßen, wenn die Temperatur im Betrieb nicht allzu sehr von der beim Kalibrieren abweicht. Ich habe es noch nicht getestet, wie weit die FVR in der Paxis tatsächlich wegläuft. Die angegebenen Werte gelten ja für den vollen Temperaturbereich (-40..+85 bzw. 125 Grad) und inclusive der heraus-kalibrierbaren Grundabweichung. Aktuell habe ich zur Temperaturdrift der FVR auch nichts gefunden, ggf. musst Du es mal testen.
Falls Du eine Platine machst, kannst Du ja eine externe Referenz vorsehen und ggf. optional bestücken.
Der IRLML2502 langt natürlich locker, hab noch IRLZ34 in der Bastellkiste. In meinem Alter löte ich SMD nicht mehr so gerne :)

Ok, das mit der Bastelkiste lass ich gelten! :)
SOT-23 ist doch wirklich kein Problem, das kann man sogar sehr gut auf Lochraster löten (natürlich auf der Lötseite). Inzwischen benutze ich da auch gerne SMD Widerstände und Kondensatoren, weil es oft einfacher ist, diese auf der Lötseite zwischen die Pins der Bauteile zu braten, als bedrahtete Bauteile zu plazieren (hinbiegen, löten, abzwicken: viel zu umständlich... ;) ), bedrahtete Bauteile natürlich noch da, wo es sinnvoll ist, weil z.B. die zu verbindenden Punkte weiter auseinander liegen.
 
Hallo Otti,

vielen Dank für die Info. Die FVR macht natürlich nur Sinn bei entsprechender Konstanz über Temperatur- und Vdd Änderungen.
Beim Moped sollte die Temperaturabweichung von Ambient schätzungsweise nicht mehr als +/- 20 K betragen.

Gruss Micha
 

Otti

User
Servus,
Moin

Was passiert mit einer voll geladenen Zelle im Laufe von 24h?

Gruß
Dieter

das gleiche, wie mit einer Zelle in jedem anderen Ladezustand auch: durch den Limiter verliert sie ein paar Mikroamperestunden Ladung zusätzlich. Wenn die Zelle keinerlei Selbstentladung hätte, wäre eine volle 2Ah-Zelle dadurch in ca. 60 Jahren leer. Das gilt für den PIC12F675, dessen Watchdog-Timer typischerweise lt. Datenblatt 1.8µA bei 3V zieht, bei 3,6V dann etwas mehr. Beim PIC12F1840 soll der WDT typisch unter 1µA ziehen (selbst bei 5V), da würde es dann locker für 1-2 Jahrhunderte reichen... ;)

Grüße,

Otti
 
das gleiche, wie mit einer Zelle in jedem anderen Ladezustand auch: durch den Limiter verliert sie ein paar Mikroamperestunden Ladung zusätzlich. Wenn die Zelle keinerlei Selbstentladung hätte, wäre eine volle 2Ah-Zelle dadurch in ca. 60 Jahren leer. Das gilt für den PIC12F675, dessen Watchdog-Timer typischerweise lt. Datenblatt 1.8µA bei 3V zieht, bei 3,6V dann etwas mehr. Beim PIC12F1840 soll der WDT typisch unter 1µA ziehen (selbst bei 5V), da würde es dann locker für 1-2 Jahrhunderte reichen... ;)

Moin,

ich habe den Assemblercode nicht wirklich analysiert. Es sah so aus aus würde ab 3,6V Zellspannung mehr oder weniger Parallelstrom gezogen.
Wird also erst ab 4,2x Volt Parallelstrom gezogen?

Vielleicht schreibst Du das einfach als Pseudocode mal so hin.

Gruß
Dieter
 

Otti

User
Hallo Dieter,

das Programm misst nicht nur die absolute Spannung, sondern ermittelt auch, ob und wie schnell die Spannung ansteigt oder abfällt. Aus der Differenz zum eingestellten Threshold (Default: 3,65 Volt, lässt sich auf andere Werte umkalibieren) in Verbindung mit der Anstiegsgeschwindigkeit der Spannung ergibt sich ein Wert zur Erhöhung oder Verringerung des Entladestroms.

Als Pseudocode so in etwa:

TH = 3,65 // = Schwellwert
I = 0 // Entladestrom zunächst aus

loop forever {
U = Voltage // aktuelle Zellenspannung einlesen
G = DU/Dt // ermittle aktuelle Steigung der Spannungskurve
I = I + K1*(U-TH) + K2*G // Entladestrom anpassen
I = Limit(0..Imax) // I auf gültigen Bereich beschränken
Setcurrent(I) // Entladestrom einstellen
if(I==0)
sleep(1 Sekunde bei bei steigender Spannung=Laden, sonst 5 Sekunden)
else
Wait(1/10s) // Wenn aktiv: Wiederholrate 10 Messungen pro Sekunde
}

Die Faktoren K1 und K2 sind empirisch ermittelt, konkrete Zahlenwerte habe ich nicht parat.

Gruß,

Otti
 
Ansicht hell / dunkel umschalten
Oben Unten