Forum: Analoge Elektronik und Schaltungstechnik Messungenauigkeit und Nichtlinearität bei ADC (MAX11200)


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.
von XChalo (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag zusammen,

für ein Insitutsprojekt im Rahmen meines Hiwi-Jobs habe ich eine Platine 
entworfen und aufgebaut, deren Zweck es ist, mit sehr hoher 
Eingansimpedanz (~200 MOhm) die Selbstentladung von Batterizellen zu 
messen.

Die Zellen werden für die Messung nacheinander über Relais mit einem 
Widerstandsteiler (2x100 MOhm) verbunden, um die maximal 4,2V 
Zellspannung auf unter 3,3V zu bringen.
Dieser Widerstandsteiler ist mit einem als Impedanzwandler verschalteten 
Operationsverstärker (OPA377, < 1pA Input-Bias-Strom) verbunden, damit 
der Messstrom das Ergebnis nicht verfälscht.
Dieser Teil scheint eigentlich redlich gut zu funktionieren, ich habe 
das Testweise mit einem Multimeter und einer 
Kalibrierungsspannungsquelle geprüft und es ergibt sich in der Tat ein 
stabiler, linearer Zusammenhang.

Am Ausgang des Operationesverstärkers befindet sich ein RC-Filter, der 
mit dem Eingang des ADCs (MAX11200) über einen mechanischen Umschalter 
verbunden ist.
Das war zunächst ein recht naiver Schaltungsentwurf mit einer sehr 
niedrigen Grenzfrequenz für den Tiefpass (15 Hz).
Der Schalter dient dazu, Gain und Offset des ADCs zu kalibrieren, indem 
Referenzspannung und BAT- an den Eingang angelegt werden können.
Es gibt hierfür laut Datenblatt zwei Modi: Selbstkalibrierung und 
"System Calibration", für letztere wir der Schalter verwendet.
Die Eingangsbuffer des ADC, welche den Messstrom drastisch verringern 
sollen, sind aktiviert.

R16 im Schaltplan ist übrigens nicht aufgelötet.

BAT- ist über einen Sternpunkt mit AGND verbunden.

Nun zum Problem:
Im Großen und Ganzen funktioniert die Schaltung, der ADC misst die 
angelegten Spannungen, ABER: Die Qualtität der Messung ist sehr 
unbefriedigend. Zum einen rauscht die Messung sehr stark, mit einer 
Amplitude von ca. 1mV, das ist allerdings nicht weiter tragisch. Das 
Hauptproblem ist jedoch, dass ein größerer Messfehler von ca. 5mV in 
Abhängigkeit von der angelegten Spannung besteht. Soweit ich das sehen 
kann, besteht kein linearer Zusammenhang, sondern bei manchen Spannungen 
wird dieser Messfehler plötzlich sehr klein oder sehr groß.

Ich hänge eine Auswertung an, die das verdeutlichen soll. Blau sind 
eingestellte und gemessene Spannung, auf der rechten, roten y-Achse ist 
der Messfehler aufgetragen. Der lineare Anstieg ist zu erwarten und 
erklärt sich durch die Toleranz der Widerstände, aber um ca. 1,5V herum 
ist ein Verlauf, den ich mir nicht erklären kann.
Hat jemand eine Idee, wodurch das verursacht werden könnte?
Liegt das eventuell am Kickback-Effekt?

Dinge, die ich bereits erwogen/probiert habe:
- Ganz zu Anfang, mit den im Schaltplan angegebenen Werten für R15 und 
C8 war beim Start der Messung selbst mit Multimeter ein kurzer Anstieg 
der Spannung an AINP zu sehen. Mit deaktivierten Buffern war die ein 
deutlich sichtbarer Abfall der Spannung. Nach kurzer Zeit stabilisierte 
sich die Spannung an AIN wieder.
- Der RC-Tiefpass wurde deutlich verkleinert. R ist jetz 15 Ohm, C ist 
bei ca 50pF. Dadurch sind diese Spannungstransienten deutlich 
zurückgegangen und kaum mehr erkennbar.
- C3 an AVDD wurde auf 10µF vergrößert.
- Unter dem ADC und parallel zu den Messleitungen verlaufen auch 
I2C-Leitungen (ging nicht anders, das Board ist sehr länglich). Aber 
dadurch würde ich keinen deterministischen, spannungsabhängigen Fehler 
erwarten.
- Die 3V-Referenz ist, soweit ich es beurteilen kann, sehr stabil.
- Die 3V3A-Versorgung für AVDD ebenfalls.
- Nach dem Schileßen des Relais wird lang genug abgewartet, damit sich 
die Leitungskapazitäten am Abgriff des Spannungsteilers aufladen kann.
- Das Problem tritt auch auf, wenn ich die Spannungsquelle direkt an den 
ADC anschließe und den Rest der Schaltung (RC-Filter, OpAmp) außen vor 
lasse.
- Gemessen wird im Single-Cycle-Conversion-Modus mit der geringsten 
Sample-Rate (1SPS)
- Es hat keinen sichtbaren Efinluss auf das Problem, die verschiedenen 
Kalibrierungsstufen zu aktivieren oder zu dekativieren.

Hat noch jemand Ideen oder Vorschläge, was man tun könnte, um denm 
Problem zu begegnen?
Vielen Dank im Voraus!

von XChalo (Gast)


Lesenswert?

Vielleicht noch einen kleinen Nachtrag, da ich vergessen hatte, es zu 
erwähnen:

Wir haben das Board insgesamt dreimal und mit Rakelschablone aufgebaut, 
aber das Problem tritt bei allen Exemplaren auf, d. h. es ist vermutlich 
kein Problem mit einer Lötstelle.
Analoge und Digitale Versorgung sind übrigens getrennt: DVDD und AVDD 
haben jeweils einen eigenen DC/DC. Im Falle von AVDD gibt dieser 3,7V 
aus, die mit einem Low-Dropout-LDO auf 3,3V gebracht werden.

Bei Bedarf kann ich hier auch noch den Schaltplan des kompletten Boards 
reinstellen.
Falls ich sonst noch etwas nachliefern kann, lasst es mich gerne wissen 
:)

von Olaf (Gast)


Lesenswert?

Lass mich mal die Probleme zusammenfassen: Hiwi, 24Bit-ADC, 
DCDC-Wandler, Eingangskapazitaet/Innenwiderstand des Wandlers.

Olaf

von Wolfgang (Gast)


Lesenswert?

XChalo schrieb:
> Bei Bedarf kann ich hier auch noch den Schaltplan des kompletten Boards
> reinstellen.

Und wenn es um saubere Abtastung hochohmiger Signale geht, ist das 
Layout mindestens genauso wichtig.

Ein Inhaltsverzeichnis zu deinem Posting wäre auch nicht schlecht ;-)

von XChalo (Gast)


Angehängte Dateien:

Lesenswert?

Hi Wolfgang, danke für deine Antwort!

Ich hänge mal das Layout vom ADC an und zur Orientierung auch eine 
3D-Ansicht.
Das ganze Board wäre vermutlich etwas zu unübersichtlich, weil es 
konzeptbedingt sehr lang und schmal ist.
Was vermutlich zuerst auffällt: Die AGND-Anbindung der Kondensatoren an 
AVDD ist nicht sehr gut, was wahrscheinlich der Signalqualität nicht 
gerade zuträglich ist.
Diesen spannungsabhängigen, deterministischen Fehler kann ich mir 
dadurch allerdings nicht erklären, dabei bereitet der mir am meisten 
Kopfzerbrechen :/
Hat da jemand eine Idee, woran das liegen kann?

> Ein Inhaltsverzeichnis zu deinem Posting wäre auch nicht schlecht
Da hast du Recht... Die Sache ist, ich schreibe erst Forenposts, wenn 
ich mit Nachdenken, Google und Ausprobieren nicht mehr weiterkomme, 
dadurch hat sich eingiges gesammelt :/

von Ludger (Gast)


Lesenswert?

Hallo,

ein Foto von der realen Platine / Aufbau wären schon mal nicht schlecht.
Dann mal eine gute Spannungsquelle anschliessen und stufig durchfahren.
In einer Tabelle Eigangsspannung, erechnete Spannung und den Rohwert 
eintragen, damit man sieht welcher Fehler wo ensteht.

Ludger

von Günni (Gast)


Lesenswert?

Die Verwendung eines 24-Bit ADC ist nur sinnvoll, wenn die 
Referenzspannung eine noch höhere Genauigkeit und Langzeitstabilität 
hat. Ein LDO hat meist eine geringere Auflösung (oft weniger als 1%). !% 
Genauigkeit liefert schon ein 8-Bit ADC. Ein 10-Bit ADC hat bei einer 
Referenzspannung von 3,3 V eine Auflösung von 3mV, ein 12-Bit ADC eine 
von 0,75 mV. Bei Leiterplatten ist es schwierig, Rauschspannungen unter 
5 mV zu erreichen, wenn Digitalschnittstellen für die Datenübertragung 
verwendet werden. Das schaffen nur gute Experten, ein sorgfältiges 
Layout unter Beachtung üblicher Regeln reicht da oftmals nicht.

Mein Rat: Eine bessere Referenz verwenden als einen LDO und als AD 
keinen Sigma-Delta-Typ verwenden, da auch dieser durch sein 
Wandelungsverfahren Störspannungen erzeugen kann. Beim 
Eingangsmultiplexer die Signaleingänge mit Kondensatoren absieben und 
diese sehr kurz mit dem Ref- Anschluss als Sternpunkt verbinden, damit 
auf die Leitungen keine Spannungsabfälle durch "Fremdströme" eingeprägt 
werden.

von XChalo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Günni, auch dir danke für deine Antwort!

Der LDO dient wirklich nur zur Versorgung, die Referenzspannung wird 
durch ein dediziertes Bauteil (MCP1501T-30E/CHY) erzeugt.

Beim Durchsehen des Schaltplans war mir allerdings eine Sache 
aufgefallen. In der ersten Revision der Platine war die kapazitive Last 
am Ausgang der Referenzspannung viel zu groß, die haben wir dann zur 
aktuellen Version deutlich verkleiner.
Allerdings habe ich erst jetzt gesehen, dass am AREF-Eingang des ADCs ja 
auch noch 100nF-Kondensatoren sind, sodass die Referenzspannungsquelle 
mit ~200nF belastet wurde; erlaubt sind allerdings nur 300pF. Ups. Da 
habe ich den Wald vor lauter Bäumen nicht gesehen...

Ich hab zuhause noch die erste Revision der Platine liegen und hab 
schnell alle Kapazitäten aus AREF ausgelötet (laut Datenblatt geht es 
auch ohne).
Und siehe da: Die Schwankung (zumindest in einem Messpunkt) liegt unter 
200µV, meist sogar unter 100µV. Und das, obwohl sonst nichts angepasst 
wurde...

Mal schauen, ob das auch das Problem mit der Nichtlinearität löst, bin 
gerade fleißig Messpunkte am Aufnehmen. Sieht aber schon 
vielversprechend aus (siehe Anhang).
Es lässt sich auf jeden Fall deutlich besser fitten. Diese Sprünge 
irriteren mich noch ein wenig, aber das liegt vielleicht an meinem 
billigen Netzteil, was besseres habe ich zuhause nicht :(

>Mein Rat: Eine bessere Referenz verwenden als einen LDO und als AD
>keinen Sigma-Delta-Typ verwenden, da auch dieser durch sein
>Wandelungsverfahren Störspannungen erzeugen kann.

Das wäre unter Umständen für die Zukunft eine Überlegung wert. Welche 
Topologie würdest du empfehlen?

> Beim Eingangsmultiplexer die Signaleingänge mit Kondensatoren absieben und
> diese sehr kurz mit dem Ref- Anschluss als Sternpunkt verbinden, damit
> auf die Leitungen keine Spannungsabfälle durch "Fremdströme" eingeprägt
> werden.
Einen Eingangsmultiplexer haben wird nicht, diese Funktion wird durch 
die Relais miterfüllt.
Der Rest sollte passen, die negative analoge Eingang hat ein eigenes 
Netz mit Sternpunkt, sodass über die Leitung sonst nichts ließen sollte.

von Hannes (Gast)


Lesenswert?

XChalo schrieb:
> für ein Insitutsprojekt im Rahmen meines Hiwi-Jobs habe ich eine Platine
> entworfen und aufgebaut, deren Zweck es ist, mit sehr hoher
> Eingansimpedanz (~200 MOhm) die Selbstentladung von Batterizellen zu
> messen.

Wenn ich was von "200 MOhm" und "< 1pA Input-Bias-Strom)" lese, dann 
fällt mir ein Artikel von Bob Pease ein:

 "What's All This Teflon Stuff, Anyhow?
 Once upon a time, a long time ago, a friend of mine, Arnie Liberman,
 designed a really good operational amplifier with a very low bias
 current - less than 0.1 pA. [...]"

Wenn du in ein amtliches Multimeter rein schaust (HP, Fluke, ...), dann 
findest mitunter Teflonstützpunkte, z.B. in die Platine eingelassen. Und 
das hat sicher seinen Grund.

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]
  • [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.

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