mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Spannungsmessung an LIPO Akkus


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Andreas E. (andreas_e660)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Elektronikexperten,

das Thema Spannungsmessung an Akkus( in meinem Fall Lipos) ist natürlich 
nicht neu, auch nicht hier im Forum.

Ich möchte zum Üben aber selbst eine kleine Meßplatine entwickeln.
Der derzeitige Status der Schaltung ist als Bild angehängt.

Überlegungen/Komponenten:

1) Die Zellen werden einzeln über den Balancer Stecker abgegriffen 
(JST-EH für 6S)

2) 8 Kanal analog multiplexer/demultiplexer um jede Zelle separat 
weiterleiten zu können

3) OP AMP als Impedanzwandler (74HC4051BQ) --> Schaltung soll 
Spannungsquelle möglichst nicht belasten um

4) Referenzspannung (LM4040) zur Erhöhung der Meßgenauigkeit

5) 10-bit ADC am Mikrocontroller (ATTINY85) zur Spannungsmessung

6) später noch Ausgabe auf Display (Keystudio 2004A)

Die Spannungsversorgung ist noch offen, sollte vorerst nicht aus dem 
Akku kommen, um nicht die Messung zur verfälschen.

Die Zellspannungen liegen ty­pi­scher­wei­se zwischen 3.1 und 4.2 Volt.

Nun die Fragen ans Forum:

1) Funktioniert die Schaltung in dieser Form?
2) Reichen 5V VCC für den OP AMP? Oder muss da mind. 1-2V mehr 
Versorgungsspannung als Eingangsspannung anliegen?
3) Wird es rauchen, hähäh ...

Vielen Dank für alle Kommentare im Voraus.

Andi

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas E. schrieb:
> LM4040

zum LM4040 gibt es auch ein Datenblatt:
http://www.ti.com/lit/ds/symlink/lm4040-n.pdf

Das im Bild 1 einen einfachen Aufbau des LM4040 zeigt.

Wie passt das zu deiner Schaltung.

Dann fehlen wie immer Kondensatoren an unterschiedlichen Stellen.

Auch wäre es spannend mal die Auflösung solch einer Beschaltung, ohne 
Spannungsteiler am Eingang, zu bestimmen.

Auflösung je Bit = 5000mV /1023 = 4,888mV

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch etwas,

man muss auch die Bezugspegel der Messung mit umschalten, sonst
misst man nicht 6x 4,3V = 25,6V, sondern jeweils die Reihenspannungen am 
Stecker.

Das kann so ein Attiny / Atmega nicht mit dieser Beschaltung, denn Vcc 
muss kleiner gleich des Messspannung sein.
Mehr steht im Datenblatt des Attiny85.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pins werden ja auch knapp, denn du möchtest den Demultiplexer ja 
auch umschalten, wodurch nochmal 3 Pins des ATTiny fällig werden. Dann 
bleibt dir am Tiny praktisch kein Pin mehr, um das Ergebnis der Messung 
der Aussenwelt mitzuteilen.
(Reset zähle ich mal nicht mit, weil man sich da schnell aussperrt, wenn 
was schiefgeht).

: Bearbeitet durch User
Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas E. schrieb:
> 1) Funktioniert die Schaltung in dieser Form?

Nein.

Es kommen ja bis 25.2 V rein an Y5.

Sie könnte funktionieren, wenn sie eine 5V Versorgung hat die galvanisch 
unabhängig von der Akkuspannung ist und nicht nur der Messeingang mit 
einem 4051 umgeschaltet wird, sondern auch die GND Verbindung an den 
Minuspol der entsprechenden Zelle umgeschaltet wird. Aber VEE und VDD 
des 4051 müssen an minus und plus des Akkus und der 4051 hält keine 
25.2V aus. Es müsste ein DG409 oder so sein, mit GND und VCC an die 5V 
des uC.

> 2) Reichen 5V VCC für den OP AMP?

Bei einem R2R rail-to-rail OpAmp ja.

Autor: Andreas E. (andreas_e660)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten.
Ich wusste es raucht ...

Denkfehler Nummer 1 war dass der Balancer je Pin die 
Einzelzellenspannung abgreift. Also muss ich jeweils die 
Differenzspannung zwischen 2 Zellen messen oder die Schaltung 
anderwertig anpassen. OK?

Kondensatoren habe ich vergessen stimmt. 100nF zwischen VCC und GND 
möglichst nah am AVR. Und dann zur Unterdrückung kleiner Schwankungen am 
Spannungssignal. Richtig?

Spannungsteiler für höhere Auflösung auch verstanden. Kalibrieren (wegen 
Toleranz der Widerstände) muss man dann ja entsprechend in der Software.

Zu wenig Pins. OK. Dann nehme ich den ATTINY84A.
Zur Info: ich hab eh etliche dieser MCs von ATTINY13 bis ATMEGA328 bzw. 
auch Rasperrys und Arduinos zur Verfügung. Hier geht es nur ums Üben und 
wie man sieht hab ich das nötig :)

Den LM4040 habe ich mir als externe Referenzspannung (weil genauer) 
statt der internen Spannungsreferenz gedacht. Die muss halt höher als 
das zu messende Signal sein. Falsch?

Gruß und Danke für die Hilfe!

Autor: Ralf (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
MaWin schrieb:
> Bei einem R2R rail-to-rail OpAmp ja.

Warum Sollte ein Rail2Rail verwendet werden? Die Eingangs- und 
Ausgangsspannung geht weder an die 0V noch an die 5V ran.

Man könnte aber mit einem R2R OpAmp die Auflösung erhöhen wenn man man 
bei von 3,0V -> 0V ausgibt und bei 4,2V -> 5V ausgibt.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralf schrieb:
> Warum Sollte ein Rail2Rail verwendet werden? Die Eingangs- und
> Ausgangsspannung geht weder an die 0V noch an die 5V ran.

Er will/muss 4.2V messen bei 5V Versorgung, das schafft ein single 
supply OpAmp wie LM358/LT1013 nicht.

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du eh einen Zweikanal-Analogschalter verwendest könntest du 
genausogut gleich eine diferentielle Messung über einen Kondensator 
machen.

Einfach einen "genügend großen" Kondensator zwischen die beiden Ausgänge 
(X,Y) des Multiplexers, und an die Eingangspaare schaltest du deine 
Zellen (X1,Y1; X2;Y2;...) und den ADC (Xn,Yn). Um die Spannung einer 
Zelle zu messen, schaltest du den Schalter erst auf die Zelle, dadurch 
wird der Kondensator parallel zur Zelle geschaltet und lädt sich auf die 
Spannung der Zelle auf. Dann schaltest du den Schalter auf die ADC-Pins, 
dadurch wird der Kondensator dessen Spannung die Batteriespannugn ist an 
den ADC angeschlossen und du kannst offsetfrei und 
spannungsteilerfrei deine Zellspannung messen.

Braucht halt a) einen Analogschalter der die Eingangsspannung ab kann.
Der Kondensator muss groß genug sein damit Charge Injection und 
ADC-Ladungsenthnahmen vernachlässigbar sind und genügend gering 
eLeckströme haben dass die Spannung weniger als die geforderte 
Genauigkeit absinkt während der ADC misst.
Die Schaltung muss langsam genug schalten dass sich der Kondensator über 
die Analogschalterwiderstände genau genug auflädt.

Autor: Alex W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es einen Grund weshalb du einen ATTiny und Multiplexer für 6S einem 
normalen ATMega8 mit 6(8) Analogeingänge vorziehst?

Bedenke das du am Eingang bei 6S bis zu 25,2 Volt hast, welche dir alle 
Bauteile grillen werden. Du musst also von Zelle zu Zelle durchschalten 
und dabei den jeweils vorletzten Pin als Masse verwenden um die 3,7/4,2V 
nicht zu überschreiten.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas E. schrieb:
> Die Spannungsversorgung ist noch offen, sollte vorerst nicht aus dem
> Akku kommen, um nicht die Messung zur verfälschen.

Hast du dafür auch eine Begründung? Das Wichtigste ist die Ref-Spannung 
und die kommt vom LM4040.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MaWin schrieb:
> Er will/muss 4.2V messen bei 5V Versorgung, das schafft ein single
> supply OpAmp wie LM358/LT1013 nicht.

Der OPA ist hier eh sinnlos: Der AVR hat hochohmige Eingänge, die können 
direkt über einen Spannungsteiler am Akku hängen.

Ach, da war ja noch was: Der AVR möchte für den Sample&Hold einen 
Eingangswiderstand von 10kohm sehen, um den Sample-Kondensator laden zu 
können. Dafür packt man einfach einen Kondensator 10-100nF an den 
Eingang, aus dem sich der Sample&Hold bedienen kann.

Der Multiplexer ist auch sinnlos: Jeder AVR hat einen Analogschalter 
drin. Und ein ATtiny84 nimmt nicht mehr Platz weg wie ein ATtiny85 plus 
ein Multiplexer.

6 Analogeingänge, an jeden Eingang ein Spannungsteiler plus 
Pufferkondensator. Bei Runterteilen der Spannung 1:20 und 10bit ADC 
erreicht man eine Auflösung von etwa 20mV. Die Frage ist schlichtweg: 
Reicht das?

Autor: Michael B. (laberkopp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl schrieb:
> Bei Runterteilen der Spannung 1:20 und 10bit ADC
> erreicht man eine Auflösung von etwa 20mV. Die Frage ist schlichtweg:
> Reicht das?

Man müsste mindestens 0.1% Widerstände verwenden, und die Belastung 
durch den Analogeingang (Fehlerstrom 1uA) bei 1/1000 des 
Spannungsteilerstroms halten, also 1mA ziehen. Als Dauerbelastung zu 
hoch.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael B. schrieb:
> Man müsste mindestens 0.1% Widerstände verwenden, und die Belastung
> durch den Analogeingang (Fehlerstrom 1uA) bei 1/1000 des
> Spannungsteilerstroms halten, also 1mA ziehen. Als Dauerbelastung zu
> hoch.

Ach, der Laberkopp mal wieder: Nein, müsste man nicht.

Man kann stinknormale 1% Widerstände nehmen und klemmt alle Eingänge 
einmal an die Referenzspannung, dann kann man die Eingänge kalibrieren.

Abgesehen davon sind 0.1% Widerstände in SMD 0805 inzwischen so 
spottbillig, dass das auch egal wäre.

Datenblätter lesen ist out? Der ADC hat einen Rin von 100Mohm. Da kann 
man locker mit einem Spannungsteiler 2,2 Mohm / 100kohm bei einer Vref 
von 1,1 V rangehen, selbst 10 Mohm / 1 Mohm bei einer Vref von 2,56 V 
wären kein Problem. Das sind dann 2 µA bei 22V Akkuspannung.

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Karl schrieb:
> Datenblätter lesen ist out? Der ADC hat einen Rin von 100Mohm. Da kann
> man locker mit einem Spannungsteiler 2,2 Mohm / 100kohm bei einer Vref
> von 1,1 V rangehen, selbst 10 Mohm / 1 Mohm bei einer Vref von 2,56 V
> wären kein Problem. Das sind dann 2 µA bei 22V Akkuspannung.

Es geht nicht direkt um das Rin, sondern um dem Strom für Sample and 
Hold Kondensator.

So dass ich immer eine Spanungsquelle verwende, die <= 10kOhm hat.
Sonst ergeben sich Messfehler mit mehr als 5%.
Auch diese !10kOhm) findet man im Datenblatt unter "ADC Wandler".

Wenn dass nicht geht, kommt ein OPV OPA334 zum Einsatz, der als 
Spannungsfolger geschaltet wurde.

http://www.ti.com/product/OPA334

Autor: Michael B. (laberkopp)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Karl schrieb:
> Ach, der Laberkopp mal wieder: Nein, müsste man nicht.

Ach der Karl, dumm wie immer.

> Man kann stinknormale 1% Widerstände nehmen

Wenn die denn eine Stabilität über Lebensdauer und Temperatur wie 0.1% 
Widerstände hätten. Haben sie üblicherweise aber nicht.


Karl schrieb:
> Datenblätter lesen ist out? Der ADC hat einen Rin von 100Mohm.

Im Gegenteil, bei dir reicht aber offenbar dein Aufmerksamkeitsdefizit 
auch nur für die erste Seite.

Ich habe schon 1uA erwähnt, da hättest du merken können daß du noch was 
übersiehst, aber Karl ist dumm wie immer.

Um es mal mit Worten von jemand anderen zu sagen, mir glaubst du ja eh 
nicht:

The ADC is specified as having a 100 MΩ (that is MegaOhm) input 
impedance.
 However, this seems somewhat suspicious to me. Together with the fact 
that there is no analog input leakage specified, I would guess that this 
is the electrical characteristics of just the ADC, rather then the ADC 
together with the entire IO pin structure. I would guess that the ADC IO 
lines that are shared with digital IO have much more leakage current (1 
uA from the docs).

Autor: Karl (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Karl M. schrieb:
> sondern um dem Strom für Sample and
> Hold Kondensator.

Der Sample&Hold Kondensator ist in der Größenordnung 10pF (Pico!). Der 
ist aus dem 10nF Pufferkondensator am Eingang lässig bedient.

Das schlägt Atmel selbst in einer App-Note zum ADC so vor. Aber Atmel 
ist ja nur der Hersteller, was weiß der schon...

Autor: Karl (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Michael B. schrieb:
> However, this seems somewhat suspicious to me. Together with the fact
> that there is no analog input leakage specified, I would guess that this
> is the electrical characteristics of just the ADC, rather then the ADC
> together with the entire IO pin structure. I would guess that the ADC IO
> lines that are shared with digital IO have much more leakage current (1
> uA from the docs).

https://dict.leo.org/englisch-deutsch/guess

guess => raten, meinen, vermuten, annehmen, schätzen, ahnen

Dann guess mal schön weiter.

Autor: Andreas E. (andreas_e660)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe den Schaltplan aktualisiert (siehe Anhang).

Korrektur der Schaltung für die Spannungsreferenz. Datenblatt gelesen.

Kein OPAMP.

Spannungsteiler für jede Zelle einzeln. Dabei ca. 10k Impedanz 
eingestellt. Datenblatt: "The ADC is optimized for analog signals with 
an output impedance of approximately 10kΩ or less."

Vielleicht reichen jetzt die Ströme nicht bzw. ich muss entsprechend 
lange warten.

Bitte wieder um Kommentare. Freu mich schon :)

Lg,
Andi

Ps.: ich lese immer die Datenblätter; ich verstehe halt bei weitem nicht 
alles bzw. bei den Mengen merke ich mir auch nicht was ich schon gelesen 
habe bzw. weiß ich nicht was jeweils für meinen Anwendungsfall relevant 
ist. Daher übe ich eben um mehr Sicherheit zu bekommen.

Und frage im Forum ...

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

zur Pufferung und als RC Tiefpassfilter, schalte bitte jeweils noch ein 
10nF Kondensator über R2 (Stellvertreter) und allen anderen auch noch.

Autor: Andreas E. (andreas_e660)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe nun die RCs eingebaut. Hoffentlich richtig geschaltet.

Die Widerstände und Kapazitäten werde ich nochmals nachrechnen sodass 
ich möglichst viele gleiche Widerstände habe und je Zelle ähnliche 
Tiefpass-Grenzfrequenzen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.