Hallo zusammen!
Folgendes ist die Ausgangslage:
Ich möchte mittels Mikrocontroller und externem Analog-Digital-Wandler
(ADS1115; fertiges Breakout Board von Adafruit) die Spannung einer
handelsüblichen 12V Gelbatterie messen. Da überdies noch Elektromotoren
im Spiel sind, will ich die Eingänge meines AD-Wandlers gegen
Überspannungen absichern, allerdings scheint hier mein Problem zu
liegen.
Ich verwende die differentielle Messung, um die Spannungsdifferenz an
Eingang A0 und A1 zu ermitteln. Im Anhang befindet sich die Schaltung,
die dem jeweiligen Eingang des AD-Wandlers vorgeschaltet ist. Neben dem
Spannungsteiler sind das wichtigste Element augenscheinlich die Dioden,
die vor Überspannung schützen sollen.
Mein Problem ist nun folgendes:
- Ich teste das ganze zur Zeit mit einer 9V-Batterie mit einer
gemessenen (Multimeter) Spannung von 9,52V. Die erwartete
Ausgangsspannung des Spannungsteilers liegt dann bei 865mV (+/- ein
bisschen für die toleranzen der 0.1% Widerstände).
- Mit der Schaltung wie sie im Anhang zu finden ist, messe ich am
Spannungsteiler 630mV, der AD-Wandler zeigt das selbe Ergebnis.
- Gleiche Schaltung, allerdings ohne die Dioden: Ich messe 857mV am
Spannungsteiler, der AD-Wandler 'sieht' nur 641mV.
- Wenn ich den Pin von V_BATT_NEG auf Masse (hier: GND) lege, dann
stimmen Multimeter und AD-Wandler überein. Der Wandler 'sieht' die selbe
Spannung wie das Multimeter: 864mV
- Selbst wenn ich den negativen Pol der Batterie direkt auf GND lege und
der Eingang am ADC unbeschaltet bleibt, erhalte ich vom AD-Wandler das
vermeintlich richtige Ergebnis von 864mV. Bei der differentiellen
Messung sollte das eingetlich nicht vorkommen, oder?
Ich kann mir dieses Verhalten noch nicht so ganz erklären, aber
vielleicht hat jemand von ein eine Idee, woran es liegen könnte und mag
mich in die richtige Richtung schubsen.
Danke,
Christian
Christian schrieb:> Mit der Schaltung wie sie im Anhang zu finden ist, messe ich am> Spannungsteiler 630mV, der AD-Wandler zeigt das selbe Ergebnis
Diode nach GND falschrum drin?
Christian schrieb:> Gleiche Schaltung, allerdings ohne die Dioden: Ich messe 857mV am> Spannungsteiler, der AD-Wandler 'sieht' nur 641mV.
Das ist seltsam, wo soll der Rest denn hin sein?
Es war auch mein erster Gedanke, also dass ich die Diode nach GND falsch
herum gesteckt habe. Aber wenn das Datenblatt nicht lügt, dann markiert
der schwarze Ring immer noch die Kathode und demnach stecken die Dioden
richtig herum in der Schaltung. :D
Und wo die restlichen mV abgeblieben sind... das ist eine gute Frage. :)
Sobald ich dazu komme, werde ich mal die Spannungen über den einzelnen
Bauteilen messen.
Mag sein das ich da ganz falsch liege, aber 2 Dinge fallen mir ein:
a)
Wie ist das mit dem Eingangsstrom des ADC? Ich nutze normal nur die ADCs
im PIC oder AVR, und beide mögen es nicht wenn da draußen ein Widerstand
>1k dranliegt: Der Eingangsstrom des S&H zieht den Eingang etwas runter
und die Messung ist was daneben.
b)
Die Batterie ist mit nix verbunden außer BatPos und BatNeg?
Dann ist der eine Eingang negativ, denn es bildet sich doch ein
Spannungsteiler + 10k 10k Abgriff 2k Masse 2k Abgriff 10k 10k -
Der eine Abgriff ist dann 432mV positiv, der andere 432mV Negativ.
Kann der ADC das?
Oder spinn ich?
> Die Batterie ist mit nix verbunden außer BatPos und BatNeg?> Dann ist der eine Eingang negativ, denn es bildet sich doch ein> Spannungsteiler + 10k 10k Abgriff 2k Masse 2k Abgriff 10k 10k -> Der eine Abgriff ist dann 432mV positiv, der andere 432mV Negativ.> Kann der ADC das?
Das ist eine gute Frage. Im Datenblatt wird die Mininmalspannung mit VDD
-0.3 Volt angegeben. Weia... :/
> Das ist eine gute Frage. Im Datenblatt wird die Mininmalspannung mit VDD> -0.3 Volt angegeben. Weia... :/
Korrektur: Nicht VDD - 0,3 Volt sondern NUR -0.3V
Christian schrieb:> Wenn ich den Pin von V_BATT_NEG auf Masse (hier: GND) lege,
Klingt, als ob die Batterie sonst nur über
V_BATT_POS
und
V_BATT_NEG
mit der Messchaltung überhaupt verbunden ist,
dadurch besteht kein Potentialbezug und man kann natürlich nichts
vernünftiges messen.
Ein KOMPLETTER Schaltplan würde helfen, das gehört aber NATÜRLICH mal
wieder zum CIA Geheimprojekt, bzw. der notorischen Faulheit der
Fragenden.
Christian schrieb:> Also die Gain Range spricht von +/- 4.096 Volt bei einem Gain von 1.
Das DB spricht aber auch unter Abs Max
Analog input voltage Min GND -0.3 Max VDD +0.3
Was du meinst ist Der Full Scale Range, der ist "Vin = VAinP - VAinN",
also zwischen den Pins gemessen.
Hier wird durch den Spannungsteiler aber ein Massebezug hergestellt, und
der klappt nicht.
Michael B. schrieb:> dadurch besteht kein Potentialbezug und man kann natürlich nichts> vernünftiges messen.
Der Potentialbezug ergibt sich über die Spannungsteiler. Und dabei
passiert genau das, was Jens beschrieben hat:
Jens M. schrieb:> Dann ist der eine Eingang negativ, denn es bildet sich doch ein> Spannungsteiler + 10k 10k Abgriff 2k Masse 2k Abgriff 10k 10k -> Der eine Abgriff ist dann 432mV positiv, der andere 432mV Negativ.
Und die negative Spannung sorgt dafür, dass die eine BAT85 zu leiten
beginnt.
Achim S. schrieb:> Und dabei> passiert genau das, was Jens beschrieben hat:
Nicht genau, weil:
Achim S. schrieb:> Und die negative Spannung sorgt dafür, dass die eine BAT85 zu leiten> beginnt.
Eben.
Also ist:
Christian schrieb:> - Wenn ich den Pin von V_BATT_NEG auf Masse (hier: GND) lege, dann> stimmen Multimeter und AD-Wandler überein
richtig und er soll seine differentielle Messung vergessen.
Michael B. schrieb:> Nicht genau, weil:
Na gut, dann dir zuliebe die noch ausführlichere Beschreibung:
Ohne die externen Dioden geschieht fast genau das, was Jens
beschrieben hat. Dementsprechend misst das Multimeter den korrekten
Wert, aber der ADC ist außerhalb seines Messbereichs und gibt einen
falschen Wert an:
Christian schrieb:> Gleiche Schaltung, allerdings ohne die Dioden: Ich messe 857mV am> Spannungsteiler, der AD-Wandler 'sieht' nur 641mV.
Das "fast" bezieht sich auf den geringen Unterschied zwischen 857mV und
865mV, der sich ggf. aus dem schon einsetzenden Strom über die ESD-Diode
des ADCs ergibt.
Mit externen Dioden belastet die untere BAT85 den einen
Spannungsteiler. Damit verschiebt sich das Teilerverhältnis, so dass
auch mit Multimeter eine Differenzspannung angezeigt wird, der kleiner
ist als vom TO erwartet:
Christian schrieb:> - Mit der Schaltung wie sie im Anhang zu finden ist, messe ich am> Spannungsteiler 630mV, der AD-Wandler zeigt das selbe Ergebnis.
Lustigerweise misst der ADC dabei den identischen Wert wie das
Multimeter, obwohl der Absolutwert an einem Differenzeingang eigntlich
außerhalb seines nominellen Messbereichs liegt.
Michael B. schrieb:> Ein KOMPLETTER Schaltplan würde helfen, das gehört aber NATÜRLICH mal> wieder zum CIA Geheimprojekt, bzw. der notorischen Faulheit der> Fragenden.
Nein, kein CIA Geheimprojekt. Ich werde den Rest der Schaltung nachher
nachliefern, auch wenn es wirklich nicht spektakulär ist. Ein Arduino
mit ADC Breakout (verbunden via I²C). Momentan noch betrieben über USB.
Und richtig: Keine direkte/gemeinsame Masseverbindung zwischen der
messenden Schaltung und dem negativen Pol der Batterie.
Achim S. schrieb:> Mit externen Dioden belastet die untere BAT85 den einen> Spannungsteiler. Damit verschiebt sich das Teilerverhältnis, so dass> auch mit Multimeter eine Differenzspannung angezeigt wird, der kleiner> ist als vom TO erwartet:
Okay, ich glaube so langsam verstehe ich, was das Problem ist. Sehe ich
das richtig, dass eine derartige Beschaltung der Eingänge des
AD-Wandlers also nicht für eine differentielle Messung geeignet ist?
Nochwas .. Die Zehnerdiode. Zehnerdioden sind spezifiziert bei 1mA
Strom, nicht Null. Und eine Zehnerdiode beginnt nicht bei der
Nennspannung abrupt an zu leiten, sondern ein Stueck vorher. Siehe
Datenblatt
*Zener, ohne "h"
Der Herr hieß Zener, aber eigentlich sind Zener nur so bis 2 oder 3V,
darüber ist es ein anderer Effekt, daher richtigerweise "Z-Diode".
@Christian
Jau, soooo gehts nicht!
Der Massebezug ists. Aber warum willst du einen Akku differentiell
messen?
Name H. schrieb:> Nochwas .. Die Zehnerdiode. Zehnerdioden sind spezifiziert bei 1mA> Strom, nicht Null. Und eine Zehnerdiode beginnt nicht bei der> Nennspannung abrupt an zu leiten, sondern ein Stueck vorher. Siehe> Datenblatt
Das sind keine Z-Dioden, sondern Schottky-Dioden.
Jens M. schrieb:> Der Massebezug ists. Aber warum willst du einen Akku differentiell> messen?
Kann ich gerade gar nicht mehr sagen. Ich hab mich darauf versteift. War
kein kluger Zug.
So, nochmal zum Schaltplan: Das angehängte Bild zeigt den Zustand, wie
er Momentan auf meinem Breadboard vorhanden ist. Der DC/DC Wandler ist
zwar da, aber momentan kommt die Versorgungsspannung noch über die
USB-Schnittstelle von meinem Rechner. Zwei "Inputs" sind über den
Spannungsteiler an den ADS1115 angebunden.
Bezüglich der Messart: Ich habe natürlich die Möglichkeit, die
Batteriespannung mittels "Single-Ended-Conversion" messen zu lassen, nur
benötige ja auch hierfür einen Bezugspunkt. Reicht es dafür, den
negativen Pol der Batterie mit GND zu verbinden? Und welchen Einfluss
kann das auf meine Schaltung im Bezug auf Überspannung, negative
Spannung usw. haben?
Es wurde ja schon erwähnt was falsch läuft,
zur Visualisierung das Bild. Schnell am Tablet
bearbeitet daher sorry für die grobe Qualität.
Stromfluss rot von Batt+ nach Batt- dies gibt
eine auf Gnd bezogen negative Spannung an A1 vom Adc.
Was du machen kannst wenn du eine differentielle
Messung möchtest, statt die Spannungsteiler
"enden" auf Gnd zu beziehen diese auf z.b vref/2.
So bleibst du erstmal im Bereich der zulässigen
Eingangsspannung.
Gruß Flo
Man könnte die Spannungsteiler auch einfach gegeneinander beziehen, dann
wäre man den Ärger los ;)
Einfach + R1 Abgriff R2 Abgriff R3 -
R1=R3, R2 << R1, denn es gilt immer noch das die Eingänge nur wenig
voneinander entfernt sein dürfen und innerhalb VDD/VSS sein müssen.
Reihenwiderstand vor den Abgriff, Cap direkt am ADC, juhu.
So wird das normalerweise gemacht...
Jens M. schrieb:> + R1 Abgriff R2 Abgriff R3 -
Hmm... Also ungefähr so, wie in meiner angehängten Darstellung? (Sorry,
diesmal kein Eagle...) Zwei Fragen stellen sich mir allerdings noch.
Erstens: Wie würde man die Eingänge so gegen Überspannung schützen?
Zweitens: Der Messbereich ist mit +/- X angegeben, wobei X vom gewählten
Gain abhänging ist. Das Minus wundert mich ein wenig. Ist das so einfach
möglich, eine negative Spannung auf den Spannungsteiler zu geben,
solange ich das Ganze gegen GND 'referenziere'?
Christian schrieb:> Hmm... Also ungefähr so, wie in meiner angehängten Darstellung?
Das wird dir bei deiner Problemstellung keinerlei Vorteil bringen
gegenüber der einfachen Lösung, dass Batterie-Minus mit GND-ADC
verbunden wird. (und dann ein einfacher Spannungsteiler mit
nachgeschaltetem Kondensator an Batteri-Plus).
Bei der gezeichneten 12V-Batterie wird diese differentielle Variante
auch gar nicht funktionieren, weil die Spannung an A0 rechnerisch 6,3V
betragen würde, die Spannung an A1 rechnerisch 5,7V. Das liegt beides
außerhalb des Arbeitsbereich deines ADCs, real würden also wieder die
ESD-Dioden deines ADCs das Teilerverhältnis verzerren.
Christian schrieb:> Der Messbereich ist mit +/- X angegeben, wobei X vom gewählten> Gain abhänging ist
Das gilt für die Differenzspannung: der Differenzspannung zwischen A0
und A1 darf sowohl negativ als auch positiv sein. Trotzdem muss für die
Spannung zwischen A0 und GND und die Spannung zwischen A1 und GND
jeweils gelten, dass sie zwischen 0V und 5V liegen.
So langsam nähere ich mich der Sache. Das heißt also, dass der ADC
intern zuerst gegen GND referenziert und dann die Differenz bildet,
oder?
Hmm... Also einer der Gründe, warum ich die differentielle Messung
wollte, war, dass ich davon ausgegangen bin, dass es weniger aufwändig
wird auch negative Spannungen zu messen. (Ich habe hier noch einen
Hall-Sensor, dessen Spannungsausgang von -5V bis +5V reicht.) Wenn ich
nun die "Single-Ended"-Messung realisiere, dann werde hier zumindest um
einen Levelshift nicht herum kommen.
Die Verbundung Bat-Minus gegen GND ist über, die muss weg.
Dann ist der Schaltplan richtig. Sofern man die Batteriespannung
differentiell messen muss/will.
Der Achim hat das ja auch erklärt.
Und nein, der ADC referenziert In+ gegen In-, daher sind ja auch
negative Eingangsspannungen möglich. Gegen GND wird das nichts, denn da
greift ja das Hardwarelimit von "GND-0,3V" (was aber "kaputt" ist, nicht
"messen").
Bei dem Sensor gibt sich zusätzlich das Problem, das der ja auch eine
negative Versorgung braucht.
Da bietet sich evtl. an, einen potentialgetrennten +-5V-Wandler mit dem
Mittelpunkt an einen Teiler zu setzen, der die 5V des ADC 1:1 teilt, und
den Ausgang ebenfalls 1:1 zu teilen. Schwupps, 2,5V +-2,5V out of
nowhere.
Jens M. schrieb:> Und nein, der ADC referenziert In+ gegen In-, daher sind ja auch> negative Eingangsspannungen möglich.
Was ist es, dass ich nicht verstehe? :/ Laut Achim ist es ein Problem,
dass die beiden Eingänge im Verhältnis zu GND außerhalb der
Spezifikation liegen. Du sagst nun wieder, dass gar nicht erst gegen GND
referenziert wird und die Schaltung deshalb in Ordnung ist (abgesehen
von von der Verbindung Batt- zu GND).
> Bei dem Sensor gibt sich zusätzlich das Problem, das der ja auch eine> negative Versorgung braucht.
Der Sensor kommt schon komplett fertig; der bekommt 24V (via DC/DC
Wandler) und macht den Rest selbst. Siehe:
http://www.hallsensors.de/CYHCS-WLY-300A.pdf
Christian schrieb:> Was ist es, dass ich nicht verstehe? :/ Laut Achim ist es ein Problem,> dass die beiden Eingänge im Verhältnis zu GND außerhalb der> Spezifikation liegen.
Du musst einfach beide Randbedingungen einhalten.
Die Spannungsdifferenz zwischen beiden Eingängen muss im erlaubten
Bereich sein.
Und gleichzeitig müssen auch die Eingänge bezogen auf GND im erlaubten
Bereich sein.
Stell dir vor, A0 läge auf 1000V und A1 auf 1001V. Die Differenz
zwischen beiden wäre in Ordnung. Trotzdem ist es anschaulich klar, dass
die 1000V am Eingangspin den ADC sofort grillen würden.
Christian schrieb:> Keine direkte/gemeinsame Masseverbindung zwischen der> messenden Schaltung und dem negativen Pol der Batterie.
Da darf man sich dann halt nicht wundern.
Christian schrieb:> Also ungefähr so
Nein, das zeigt eher dein Problem als eine Lösung: Auch hier wird der
common mode des ADC überschritten.
Name H. schrieb:> Nochwas .. Die Zehnerdiode. Zehnerdioden sind spezifiziert bei 1mA> Strom, nicht Null. Und eine Zehnerdiode beginnt nicht bei der> Nennspannung abrupt an zu leiten, sondern ein Stueck vorher. Siehe> Datenblatt
Nochwas: Keineswegs jede Z-Diode ist spezifiziert bei 1mA, sondern je
nach dem was im Datenblatt steht 100uA oder 10mA oder auch mal 100mA,
genau so wenig wie der Herr Zener seinen Zeh verewigen wollte, der will
sowieso daß die Dioden eher Z-Dioden genannt werden, schliesslich
basiert nicht mal jede auf den Zener-Effekt, sondern nur die unterhalb
5.5V.
Achim S. schrieb:> Stell dir vor, A0 läge auf 1000V und A1 auf 1001V. Die Differenz> zwischen beiden wäre in Ordnung. Trotzdem ist es anschaulich klar, dass> die 1000V am Eingangspin den ADC sofort grillen würden.
Ja, das habe ich schon verstanden. Nur dann würde die von Jens ins Spiel
gebrachte Schaltung nur innerhalb eines gewissen Bereichs funktionieren;
nämlich solange, wie die Eingänge des ADCs innerhalb der Grenzen liegen
(bis ca. 10V im allerbesten Fall). Ergo kann ich meinen zu Messenden
bereich damit nicht abdecken.
Christian schrieb:> Nur dann würde die von Jens ins Spiel> gebrachte Schaltung nur innerhalb eines gewissen Bereichs funktionieren;
du hast die Schaltung ja auch nicht so umgesetzt, wie von Jens gedacht.
Deswegen ergänzte er ja:
Jens M. schrieb:> Die Verbundung Bat-Minus gegen GND ist über, die muss weg.> Dann ist der Schaltplan richtig. Sofern man die Batteriespannung> differentiell messen muss/will.
Dann würde sie schon funktionieren - hätte aber in deiner Anwendung
keine besonderen Vorteile gegenüber der single ended Messung mit
geerdetem Batterie-Minus.
Christian schrieb:> Der Sensor kommt schon komplett fertig; der bekommt 24V (via DC/DC> Wandler) und macht den Rest selbst. Siehe:
Oha.
Der Sensor hat den Ausgang auf Masse bezogen. Also brauchst du eine
Isolierte 24V-Versorgung, damit du den Ausgang des Sensors frei auf den
ADC legen kannst.
Der ADC kann ja +-5V messen, also "frei fliegend" ran damit und gut.
Christian schrieb:> Ja, das habe ich schon verstanden. Nur dann würde die von Jens ins Spiel> gebrachte Schaltung nur innerhalb eines gewissen Bereichs funktionieren;> nämlich solange, wie die Eingänge des ADCs innerhalb der Grenzen liegen> (bis ca. 10V im allerbesten Fall). Ergo kann ich meinen zu Messenden> bereich damit nicht abdecken.
Solange deine Eingänge von der Spannung der ADC-Schaltung isoliert sind,
ist alles gut.
Das genannte Beispiel mit 1000 und 1001V (gegen Masse) würde rauchen,
wenn die Spannung an GND angeschlossen ist.
Wenn sie isoliert ist, sagt der ADC "1V" und alles ist supi.
Effektiv könntest du auch single ended arbeiten und die 1000V an deine
GND anschließen.
Die Widerstände in dem Beispiel was du oben gezeichnet hast (nach meinem
Post) ermöglichen dir, beliebige Werte auf den Wertebereich des ADC zu
skalieren.
Du hast jetzt 10k-1k-10k eingezeichnet, mir ist eingefallen das es ja
eigentlich egal ist, mein Fehler, sorry.
Du brauchst nur einen normalen Spannungsteiler mit 2Rs, also "BatNeg" an
A1 direkt, Spannungsteiler BatNeg zu BatPos, Abgriff an A0.
Mit den 10:1k misst der ADC also aktuell 6.144v*11 als Full Scale, also
67,6V.
Du musst nur wie die Sau aufpassen, das du nirgends irgendwelche
Verbindungen hast, z.B. über PE, USB, sonstige Messgeräte, SPS usw. usf.
Okay, aber nur, damit ich es jetzt richtig verstanden habe: Das
Überschreiten von GND -0.3V und/oder VDD +0.3 ist bei der korrigierten
Version (ohne Verbindung zwischen dem negativen Pol der Batterie und
GND) nicht gegeben, da der ADC tatsächlich den Potentialunterscheid
zwischen den beiden Eingängen betrachtet und ihn nicht nach GND
refernziert (auch nicht 'intern')?
Jens M. schrieb:> Der Sensor hat den Ausgang auf Masse bezogen. Also brauchst du eine> Isolierte 24V-Versorgung, damit du den Ausgang des Sensors frei auf den> ADC legen kannst.> Der ADC kann ja +-5V messen, also "frei fliegend" ran damit und gut.
Die Versorgung soll über einen DC/DC Wandler mit voneinander getrennten
Ein- bzw. Ausgängen stattfinden. Ich habe hier z.B. einen TMR6 zur
Verfügung:
https://assets.tracopower.com/20190124103907/TMR6WI/documents/tmr6wi-datasheet.pdf
Jens M. schrieb:> Du musst nur wie die Sau aufpassen, das du nirgends irgendwelche> Verbindungen hast, z.B. über PE, USB, sonstige Messgeräte, SPS usw. usf.
Das ist klar, sonst gibt es unter Umständen nette Funken und magischen
Rauch. Nur die Frage die sich mir noch stellt ist die, wie ich die
differentielle Messung gegen Spannungsspitzen absichern würde. Spricht
etwas dagegen, eine (bidirektionale) TVS Diode über den Spannungsteiler
zu legen?
Christian schrieb:> Nur die Frage die sich mir noch stellt ist die, wie ich die> differentielle Messung gegen Spannungsspitzen absichern würde.
In dem du den Minuspol der Batterie fest mit Masse deiner Schaltung
verbindest über einen guten Kupferdraht.
Eine Diode vom AD-Eingang gegen Plus/Minus sollte reichen.
Die hat ja den Vorwiderstand aus dem Teiler, da muss schon was kommen
damit der versagt. Und dann ist es auch egal.