Hallo zusammen, ich möchte gerne die Einzelzellspannungen eines Battery Packs messen. Jede Zelle hat 3,2V und 16 davon sind in Reihe geschaltet. Mein Problem ist jetzt, das Ground meines µc (ESP8266) wohl auf den Minuspol der ersten Zelle gelegt wird. Jetzt war ich erst so naiv anzunehmen, das ich dann einfach einen differentiellen ADC nehmen kann um z.B. die Zellspannung der letzten Zelle zu messen. Allerdings liegt deren Potential ja um ~48V höher als das Bezugspotential meines ADCs/µcs. In den ADC Datenblättern wurden Begriffe verwendet die mich glauben lassen, das ein Standard ADC nicht so hoch über seinem Bezugspotential messen kann (ich finde das Datenblatt mit dem Begriff gerade nicht). Zu meinen Fragen: 1. Ist die geschilderte Messsituation ein Problem für gängige ADCs? 2. Wenn das ein Problem ist: kennt ihr ADCs mit denen man so eine Messung durchführen kann - idealerweise mit I2C Interface? 3. Wie lauten die Fachbegriffe um nach einem ADC zu suchen der soetwas kann? Ich hatte schon gesehen das es extra ICs gibt für Battery Packs, aber die scheinen recht komplex zu sein, sehr teuer und überall vergriffen. Und da ich die 16 Zellspannungen nicht parallel messen muss, sondern einfach sequentiell, dachte ich es tut vielleicht auch ein "normaler" ADC. Viele Grüße Herbert
> 1. Ist die geschilderte Messsituation ein Problem für gängige ADCs? Es ist standard fuer ALLE Ics das sie nur mit Eingangssignalen umgehen koennen die innerhalb ihrer Betriebsspannungen liegen. Sollte es ICs geben die mehr koennen steht das auf der ersten Seite des Datenblatts weil die Marketingsabteilung da ganz doll Stolz drauf ist. > 2. Wenn das ein Problem ist: kennt ihr ADCs mit denen man so eine > Messung durchführen kann - idealerweise mit I2C Interface? Ich meine Linear hatte da mal einen lustigen digitalen Bus fuer solche Faelle, weil der muss ja auch potentialfrei sein. Du koenntest natuerlich einfach viele Spannungsteiler bauen, verlierst dabei aber an Aufloesung. Musst du halt mal rechnen ob dir das reicht. Olaf
Messe jede Zelle mit einem Mikrocontroller und gebe das Ergebnis seriell aus. Die Ergebnisse kannst du dann (z.B. über Optokoppler getrennt) an einem zentralen Mikrocontroller einsammeln.
Stefan ⛄ F. schrieb: > Messe jede Zelle mit einem Mikrocontroller und gebe das Ergebnis seriell > aus. > > Die Ergebnisse kannst du dann (z.B. über Optokoppler getrennt) an einem > zentralen Mikrocontroller einsammeln. Die Idee vom Stefan hatte ich schon 2012 mal umgesetzt. Im Anhang der Schaltplan falls es jemanden etwas nützt. Da steht auch noch Füllstand und Magnetventil. Das kann dann natürlich wegfallen! Im zweiten Bild stelle ist nur einen Ausschnitt bereit. Da ich mit diesem Teil schließlich Geld verdiene. :-) Hier habe ich mit Schalter ICs die einzelnen Zellen angesteuert und die Spannung jeder Zelle auf einen AD Wandler gegeben der mit I2C angesteuert wird. I2C ist dann mit einem ADUM1251 physikalisch getrennt. Viel Spaß Tom.
Oder wenn es teuer sein soll so einen optisch isolierten ADC: SI8901B
Wow...vielen Dank für die vielen Rückmeldungen. Ich schau mir mal alles an und überlege wie ich vorgehen kann.
Herbert H. schrieb: > Und da ich die 16 Zellspannungen nicht parallel messen muss, sondern > einfach sequentiell, dachte ich es tut vielleicht auch ein "normaler" > ADC. Du musst auch nicht differentiell messen, sondern du bestimmst die Spannung an jedem Verbindungspunkt der Zellen - Plus von Zelle X ist dabei Minus von Zelle X+1, du brauchst also 17 Messungen. Eine Subtraktion wird dein Prozessor wohl schaffen. Du brauchst auch keine 16 Spannungsteiler, es genügt einer, der sicherstellt dass die höchste vorkommende Spannung gemessen werden kann. Umschalter für die 17 Anschlüsse brauchst du natürlich. Problem ist dabei u.U. die Genauigkeit: du misst an der obersten Zelle z.B. 47 und 50 V, die Differenz willst du auf 10 mV genau wissen - das ist anspruchsvoll aber keineswegs unmöglich, jedes Multimeter aus dem Baumarkt kann das, es entspricht einer Anzeige von 4 Stellen (49,99 V). Nötigenfalls geht es auch noch genauer, dann muss der ADC halt mehr als 12 Bit auflösen, sowas soll es ja geben. Eine echte differentielle Messung braucht man nur bei sich schnell ändernden Messwerten, was bei Akkus eher nicht der Fall ist. Georg
Herbert H. schrieb: > 1. Ist die geschilderte Messsituation ein Problem für gängige ADCs? Ja. > 2. Wenn das ein Problem ist: kennt ihr ADCs mit denen man so eine > Messung durchführen kann - idealerweise mit I2C Interface? Nein. Aber Instrumentstation-OpAmps, wie INA117 Herbert H. schrieb: > Jede Zelle hat 3,2V Merkwürdig. Üblich sind 4.2V, wenn sie voll sind, also 68V zusammen. Bei 3.2 eher leer. LTC1043 kann das bis 18V, nützt also nichts. Daher sind Akkupacks in Reihenschaltung nicht-trivial, ein Job vor dem Tesla nicht zurückschreckte und heute die Früchte ernten kann. Man muss sich halt an das anpassen was es auf dem Markt gibt und sich nicht irgendwas zusammenwünschen. LTC6802 und TLE9012 gehen bis 12 Zellen, sind aber kaskadierbar. MAX11080/MAX11081 12-372 Zellen.
Olaf schrieb: > Es ist standard fuer ALLE Ics das sie nur mit Eingangssignalen > umgehen koennen die innerhalb ihrer Betriebsspannungen liegen. > Sollte es ICs geben die mehr koennen steht das auf der ersten > Seite des Datenblatts Es gibt diese tatsächlich, gerade im Umfeld Batteriemanagement. Hier müsste er mal die Angebote von Texas durchgehen, ob die in der Reihe INA_irgendwas einen Stein haben, der 60 Volt kann. Michael B. schrieb: >> Jede Zelle hat 3,2V > Merkwürdig. Üblich sind 4.2V, wenn sie voll sind, also 68V zusammen. Bei > 3.2 eher leer. Für Dich vom Google kopiert: ======== Die Nennspannung einer LiFePo4 Zelle beträgt 3,2 V (Blei-Säure: 2 V pro Zelle). Eine 12,8 V LiFePo4-Batterie besteht daher aus 4 in Reihe geschalteten Zellen und eine 25,6 V Batterie besteht aus 8 in Reihe geschalteten Zellen. ======== Auf jeden Fall muß Herbert auch die vollen Zellen berücksichtigen, das sind 3,6 V und in Summe rund 60 Volt.
Wie schon von Michael B. geschrieben, nimmt man dafür Batery Management ICs. Die gibt es reichlich, oft auch mit Balancing das du wahrscheinlich auch brauchst, man muss nur danach suchen. Mit einer diskreten Lösung bräuchtest du ja auch einen differentiellen Multiplexer, der diese hohe Spannung kann. Spannungsteiler würden deinen Akkupack langsam entladen = Designpattern "das viereckige Rad neu erfinden".
Stefan ⛄ F. schrieb: > Messe jede Zelle mit einem Mikrocontroller und gebe das Ergebnis seriell > aus. > Die Ergebnisse kannst du dann (z.B. über Optokoppler getrennt) an einem > zentralen Mikrocontroller einsammeln. Z.Zt. plane ich für mein neues Haus, in das ich (hoffentlich) dieses Jahr einziehen werde. Da es etwas abgelegen ist, will ich bei einem Defekt die Reparatur selbst durchführen können. Alles andere würde zu lange dauern. Deshalb versuche ich soweit als möglich Fertig-Lösungen von der Stange zu vermeiden. Meine BMS sieht genau so wie von Stefan beschrieben aus. Ein INA229 zusammen mit einem STM32F030 überwacht alles, was in den Akku rein- und rausfliesst. Alle LiFePo4-Stränge werden von Attiny412 kontrolliert, die auch das Balancing übernehmen. Verbunden sind sie alle über Optokoppler mit einem etwas leistungfähigeren Controller.
Mehmet K. schrieb: > Meine BMS sieht genau so wie von Stefan beschrieben aus. Wie genau sammelst du die Daten zentral ein? Ich würde die Ausgänge der Optokoppler gerne alle parallel schalten, aber dann muss man irgendwie sicherstellen, dass nicht mehrere Sensoren gleichzeitig senden.
Senden tun die Balancer nur bei Request. So konnte ich die TxD-Optos parallel schalten, während die RxD-Optos über einen Multiplexer angesteuert werden. Siehe Anhang. HD4 dient dazu, die Leitungen innerhalb der gestapelten PCBs zu verbinden. Da ich z.Zt. in Arbeit ertrinke, habe ich noch immer keine Zeit gefunden, das Ganze nochmals zu überdenken und die PCBs zu bestellen. Kritik ist also durchaus erwünscht.
Für Messungen mit hohen Offset-Spannungen (beispielsweise um Ströme mit einem Shunt zu messen, der im positiven Spannungspfad liegt) gibt es spezielle Operationsverstärkerschaltungen. Teilweise wurde dazu auch Operationsverstärker auf den Markt gebracht, die die notwendigen Widerstände schon integriert hatten (z.B. von BurrBrown - jetzt bei Texas Instruments). Einen ersten Ansatz liefert die Applikationsschaltung SBOA097B von Texas Instruments, die mit dem INA146 Operationsverstärker aufgebaut ist. Statt nun 15 dieser Schaltungen aufzubauen, um die Spannung der 16 in Reihe geschalteten Zellen zu messen, würde ich nur eine aufbauen und diese mit Reedrelais an die jeweils zu messende Zelle schalten.
was für eine bekackte Idee da mit Relais zu arbeiten
Alternativ zu Optokopplern: Du könntest die Signale auch übertragen durch "Low-Power Digital Isolators": ISO7021, ISO7041, IL01x Series, MAX 1293x, Si861x/2x, usw. Oder analog übertragen mit: ISO124, AN614 Die analogen Übertrager haben allerdings eine höhere Ruhestromaufnahme.
Dieter D. schrieb: > "Low-Power Digital Isolators" Nebst der Kleinigkeit, dass das preislich in einer ganz anderen Liga spielt: meine Intention ist es, soweit als möglich keine Spezial-Bausteine zu verwenden, damit ich bei einem Schadensfall auf das zurückgreifen kann, was ich eh schon massenhaft auf Lager habe.
Mehmet K. schrieb: > was ich eh schon massenhaft auf Lager habe. Also Optokoppler, Drosseln mit zwei galvanisch getrennten Wicklungen und µC im Leistungsbereich von ATtiny13.
Dieter D. schrieb: > Also Optokoppler, Drosseln mit zwei galvanisch getrennten Wicklungen und > µC im Leistungsbereich von ATtiny13. Ja, so könnte man es auch machen. Oder aber man benutzt gleich die zu balancierende LiFePo4 als Quelle.
Es gibt für ca 60 Euros ein BMS mit RS485 oder Bluetooth. Da bekommst du die einzelnen Batteriewerte. Wenn du es in Stückzahlen bauen möchtest ist es was anderes.
Herbert H. schrieb: > 1. Ist die geschilderte Messsituation ein Problem für gängige ADCs? Die Auflösung eines ADC mit 10bit hätte folgende Auflösung: 1. Zelle 5mV, 2. Zelle 10mv 3. Zelle 15mv 4. Zelle 20mV Erforderliche Genauigkeit der Teilerwiderstände und Referenz: 1. Zelle - Teilerwiderstände <0,5% 2. Zelle - Teilerwiderstände <0,25% 3. Zelle - Teilerwiderstände <0,13% 4. Zelle - Teilerwiderstände <0,08% D.h. auf der Platine solltest Du noch Platz lassen um Widerstände für den Feinabgleich parallel ergänzen zu können. > 2. Wenn das ein Problem ist: kennt ihr ADCs mit denen man so eine > Messung durchführen kann - idealerweise mit I2C Interface? Obiges heißt, dass bis zu 4 Zellen möglich wären mit einem Chip zu verarbeiten. Wenn ein digitales Interface, z.B. I2C oder SPI vorhanden sein sollte, dann wäre am sinnvollsten µC zu verwenden. Zum Beispiel ATtiny. > 3. Wie lauten die Fachbegriffe um nach einem ADC zu suchen der soetwas > kann? - Siehe unter 2. Der µC muss mindestens einen 10bit ADC beeinhalten. - Auf ausreichende programmierbare Pins achten.
:
Bearbeitet durch User
Dieter D. schrieb: > Herbert H. schrieb: >> 1. Ist die geschilderte Messsituation ein Problem für gängige ADCs? > > Die Auflösung eines ADC mit 10bit hätte folgende Auflösung: > 1. Zelle 5mV, > 2. Zelle 10mv > 3. Zelle 15mv > 4. Zelle 20mV Wenn es um 16 serielle Zellen geht, stellt sich mir einiges an Fragen, warum man hier mit lächerlichen 10bit arbeiten sollte, wenn Du schon eine Messgenauigkeit nach Zellenebene angibst. Ein ADS1115 arbeitet mit 16bit, bei ideal theoretischen damit aufgelösten 60V könnte der auf 0,915..mV genau messen. Mit 10bit käme man immer noch auf (theoretische) Auflösung von knapp 60mV bei 60V. Deine ideale Spannungsmesswertgenauigkeit eines 10bit ADC gilt für eine angenommene maximale Messspannung von 5,12V. Ohne Begründung für den Fragesteller kaum sinnvoll. > Erforderliche Genauigkeit der Teilerwiderstände und Referenz: > 1. Zelle - Teilerwiderstände <0,5% > 2. Zelle - Teilerwiderstände <0,25% > 3. Zelle - Teilerwiderstände <0,13% > 4. Zelle - Teilerwiderstände <0,08% Bei einem seriellen Akkupaket ist anzunehmen, dass die Tellebenenspannungen interessant sind, auch der Threadtitel führt in die Richtung. Kaum anzunehmen, dass man mit üblichen ADC-Bauteilen das Ergebniss einfach "so" irgendwie irgendwo ohne einem kleinen Progrämmchen auf einem μC irgendwo ausgeben oder speichern mag. Egal ob man einen ADC-Eingang durch weitere Beschaltung nacheinander an alle Spannungsteilermesspunkte schaltet oder 4 x ADC mit vier Eingängen und z.B. vier unterschiedlichen I2C-Addys abfragt, man kommt um eine Korrekturtabelle im μC nicht drumrum. An die theoretischen <1mV bei 60V und 16bit wird man dabei nicht kommen, aber vieles hängt davor dabei auch nur noch von den vorhandenen Fähigkeiten und Equigment ab.
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.