www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Genauigkeit


Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich abe mal eine Frage bezüglich Genauigkeit von ADCs. Speziell geht es 
bei mir um einen AD7891 von Analog Devices.
Mein Problem besteht darin, das der Wandler bei kurzgeschlossenem 
Eingang (VINA und VINB auf GND) trotzdem Spannungen bis zu 60mV ausgibt 
und zwar positiv wie auch negativ. Nun weiß ich ja, dass so ein Wandler 
fehlerbehaftet ist. Muss ich denn alle möglichen Fehler, die auftreten 
können (Zero Error, Nichtliniearität usw.) addieren um, eine 
verlässliche Aussage über die Ungenauigkeit zu bekommen? Wie ist das mit 
dem Offset- Fehler: ist der konstant für alle Messungen oder auch 
stochastisch? Das frage ich deshalb weil ich mal positive und mal 
negative Werte angezeigt bekomme,wobei doch ein Offset immer präsent ist 
nach meinem Dafürhalten, aber ich kann mich irren.

Gruß, Alex

Autor: sechsdreizwei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ganze aufm Steckbrett ?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Alexander Heß (ill_son)

>bei mir um einen AD7891 von Analog Devices.

12 Bit ADC mit acht differentiellen EIngängen.

>Mein Problem besteht darin, das der Wandler bei kurzgeschlossenem
>Eingang (VINA und VINB auf GND) trotzdem Spannungen bis zu 60mV ausgibt
>und zwar positiv wie auch negativ.

Dann ist was faul. Das wären bei 5V Betriebsspannung 50 LSB! Du fängst 
dir wahrscheinlich Störungen duch einen miesen Aufbau ein. Woher kommt 
deine Referenzspanung?

>können (Zero Error, Nichtliniearität usw.) addieren um, eine
>verlässliche Aussage über die Ungenauigkeit zu bekommen? Wie ist das mit

Nein, geht so einfach nicht.

>dem Offset- Fehler: ist der konstant für alle Messungen oder auch
>stochastisch?

Konstant, kann aber über lange Zeit (Stunden, Tage) leicht driften.

MFG
Falk

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so schaut's aus. Steckbrett und ca. 5cm Drähtchen zum ADC, der sich auf 
einer Adapterplatine von Conrad aufgelötet befindet. Allerdings sind die 
Kutzschlüsse der Eingange direkt auf der Platine nahe der Pins 
angebracht.

@ Falk

Die Unterschiede treten von einer Messung zur nächsten auf (ca 20 sek.)
Zeit zum Messen ist auch genug, das alles geht quasistatisch (Zeit 
zwischen den Messungen > 1ms).

Alex

Autor: sechsdreizwei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die ueblichen dicken 10uF//100nF neben dem ADC sind vorhanden ? Ein 
12bitter sollte auf ein paar LSB stabil sein, allerdings im geplanten 
Layout.

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch eine Ergänzung vielleicht. Es handelt sich um den AD7891-1, der für 
den Messbereich -+10V konfiguriert ist.

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
100uF / 10uF??? Erzähl mal mehr bitte.

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Falk:


Referenz ist on chip, hatte ich vergessen. Die ist aber bis auf wenige 
mV genau 2,5V und mit nem kleinen C gegen GNDREF gepuffert.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal ein Bild von deinem Aufbau und poste es. Beachte dabei bitte 
die Bildformate.

MFG
Falk

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich morgen machen, weil keine Kamera dabei, bin nicht daheim.
Ich kann's aber mal kurz beschreiben:

Controller und alles, was es braucht, damit er controllert befindet sich 
als Modul auf einer ordentlichen industriell gefertigten Platine, die in 
einem Steckbrett steckt. Von diesem geht ein etwas wüster Drahtverhau 
auf eine Adapterplatine, auf die der ADC aufgelötet ist.

Wie sieht das jetzt mit diesen Kondensatoren für den ADC aus (100uF /10 
uF)?

Gruß, Alex

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Dann ist was faul. Das wären bei 5V Betriebsspannung 50 LSB! Du fängst
>dir wahrscheinlich Störungen duch einen miesen Aufbau ein.

Bei einem 12-bit Ergebnis 50LSB zu verlieren ist in der Tat ziemlich 
kritisch... Da ist dann aber nicht nur der Aufbau dran schuld. Wohnst du 
evtl über einem Umschaltwerk???

mfg Reiner

Autor: sechsdreizwei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moderne ADCs wollen 10uF//100nF und dies zwar fuer den DVcc, sowie fuer 
den AVcc. Ich hab das Datenblatt des AD7891 noch nicht angeschaut ... 
doch, figur 16. Dacht ich's mir.

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Cs werde ich morgen gleich testen. Wenn ich an die Kamera 
denke, mach ich ein Bild - und wer lacht, wird erschossen.
Vielen Dank erst mal, ihr seid Klasse.


Gruß, Alex

PS.: Nein ich wohne nicht neben einem Umspannwerk ;-)

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

>sechszweidrei schrieb:

>Moderne ADCs wollen 10uF//100nF und dies zwar fuer den DVcc, sowie fuer
>den AVcc. Ich hab das Datenblatt des AD7891 noch nicht angeschaut ...
>doch, figur 16. Dacht ich's mir.


die Elkos sind jetz eingelötet und siehe da, die Wete sind schon 
deutlich geringer geworden (weniger als die Hälfte) sind jetzt auch nur 
noch im positiven Bereich, so dass ein statischer Offset erkennbar ist.
Ich hab mal 500 Messungen gemacht und der Mittelwert lag bei 22,6mV, das 
entspricht etwas mehr als vier LSB. Die Varianz der Werte beträgt etwas 
weniger als 3mv, was ja nicht mal ein LSB ist. Sieht also schon deutlich 
freundlicher aus. Das Foto stell ich mal noch rein, wenn ich im Laufe 
des Tages dazu komme. Was sagtihr zu den Ergebnissen, ist einigermaßen 
okay, beziehungsweise, kann  man das statistisch überhaupt so 
betrachten???

Gruß, Alex

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Alexander Heß (ill_son)

>Ich hab mal 500 Messungen gemacht und der Mittelwert lag bei 22,6mV, das
>entspricht etwas mehr als vier LSB. Die Varianz der Werte beträgt etwas

???
12 Bit AD-Wandler

5V / 4096 = 1,22mV

22,6mV -> 18,5 LSB

>weniger als 3mv, was ja nicht mal ein LSB ist. Sieht also schon deutlich

Doch, 2,4 LSB. Das Passt schon eher als Rauschen eines 12 Bit ADC mit 
Steckbrettaufbau. Der Offset ist bissel hoch.

MFG
Falk

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@falk
>12 Bit AD-Wandler
>
>5V / 4096 = 1,22mV
>
>22,6mV -> 18,5 LSB

kann mir mal einer erklären, wie man bei 12 bit auflösung 18,5bit 
verlieren soll??? mir scheint, der herr brunner ist sich dem begriff des 
LSB nicht bewusst...

mfg reiner

Autor: JensG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja - auch wenn der "herr brunner" selbst immer andere Leute auf 
Correctness hinweist - jeder sollte wohl wissen, was er meinte ;-)

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi;

der ADC hat einen Eingangsbereicht von +- 10V, siehe oben oder 
datasheet. Macht bei 20V/4096 4,88 mv/LSB.
So kommen meine Werte zustande.
Nochmal zur Frage: kann (darf) ich das grob erstmal so auswerten, wie 
getan?

Gruß, Alex

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
reiner wrote:

> kann mir mal einer erklären, wie man bei 12 bit auflösung 18,5bit
> verlieren soll?

Du verlierst nicht 18,5 bits sondern 18,5 * 1 LSB.  Das ist gängige
Terminologie bei ADC-Fehlerbetrachtungen.

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@alex

auch dir scheint der begriff des LSB nicht ganz klar zu sein.
LSB steht für Least Significant Bit und meint das unterste Bit in deinem 
Wandlerergebnis... das entspricht in deinem Fall einer auflösung von
>Macht bei 20V/4096 4,88 mv
das 2.-niedrigste bit entspricht der doppelten spannung, das 3. der 
vierfachen des LSB usw...
das bedeutet für 20mV Messfehler (4,88mV, 9,76mV, 19,52mV... ) einer 
ungenauigkeit von etwas mehr als drei LSB...

mfg reiner

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na das ist doch gar nicht so schlecht. der bipolar zero error ist mit 3 
LSB angegeben.

Dass LSB least significant bit heiß, ist mir schon klar. Allerdings 
dachte ich, dass eine fehlerangabe von z.b. 4LSB im datenblat bedeutet: 
4*LSB, im konkreten fall: 4*(20V/4096). irre ich mich da oder nicht.

noch eine frage. ist es legitim, vor beginn einer messung durch 
kurzschließen der eingänge und durchführen von vielen (>200) messungen 
und mittelwertbildung, den statischen offset zu bestimmen und den dann 
im messergebnis durch subtraktion zu berücksichtigen. das habe ich 
nämlich gemacht und erstaunlich genaue werte raus bekommen.

danke, alex

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut der Aussage von Jörg Wunsch scheint die verwendung von x*LSB auch 
verwendet zu werden.
Inhaltlich ist das aber unsinnig bzw nicht wirklich aussgaefähig und 
angaben in datenblättern der ADC-Hersteller beziehen sich definitiv 
nicht auf solche angaben.

ich bin mir nicht ganz sicher, ob es sinn macht den adc in dem bereich 
zu kalibirieren in dem du am ungenauseten misst (bipolar zero error). 
die genauigkeit außerhalb dieses bereichs ist möglicherweise viel 
größer, so dass du auch dort eine kalibrierung vornehmen solltest, also 
z.B bei 5V. Den dort gemessenen und gemittelten Offset kannst du dann 
weiter nutzen.
ich hoffe das ist das, was du wissen wolltest... ;)

mfg reiner

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Heß wrote:

> Allerdings
> dachte ich, dass eine fehlerangabe von z.b. 4LSB im datenblat bedeutet:
> 4*LSB, im konkreten fall: 4*(20V/4096). irre ich mich da oder nicht.

Genau so ist es auch, d. h. so sind die typischen ADC-Datenblätter
aufgebaut.

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ reiner

wenn ich bei 5V kalibrieren möchte, benötige ich allerdings eine 5V 
Referenz. Wenn ich die Eingänge kurzschließe, hab ich aber genau null 
Volt (vorausgesetzt, die Kurzschlussleitung ist nicht sonst wie lang).
Außerdem (so dachte ich, aber ich kann mich irren) ist der statische 
Offset doch konstant, mal von der Temperaturabhängigkeit abgesehen).
Korrigiere mich bitte, wenn ich mich irre.

Danke, Alex

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit kurzschließen meintest du, dass du die ADC-inputs nach gnd 
verbindest, oder?
womit du recht hast ist, dass der statische offset über den gesamten 
spannungsbereich nahezu konstant sein wird.
was allerdings wenig sinnvoll erscheint, ist zu versuchen dieses offset 
im ungenauesten Wertebereich messen zu wollen. mir fällt leider grad 
kein wirklich sinnvoll passender vergleich dazu ein, aber du versuchst 
ja auch nicht die genauigkeit eines geodreiecks mit einem Tafellineal zu 
bestimmen. und in deinem fall gibt die auflösung um den nullpunkt herum 
halt keine exakten werte.
hoffe das war einigermaßen plausibel... ;)

mfg reiner

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da gebe ich dir recht. wenn ich aber 'ne referenz benutze, muss ich 
wieder sicherstellen, wie genau die ist, um zu wissen, wie hoch am ende 
der offset ist. das kann ich im labor mit 'nem geeichten messgerät tun. 
wenn ich aber draußen im feld bei minus zehn grad den adc vor der 
messung kalibrieren will, muss die referenz nicht mehr dieselbe wie im 
mollig warmen labor sein. du siehst, das ist gar nicht so einfach ;-)
worauf ich anfangs hinaus wollte, war zu erfahren, ob ich das überhaupt 
einfach so machen kann - mittelwert bestimmen und dann rausrechnen, oder 
ob ich es mir da etwas zu leicht mache.


Gruß, Alex

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fertige referenzen für sämtliche spannungen und große temperaturbereiche 
gibt es wie sand am meer, aber du hast recht, es ist immer eine frage 
des aufwands. aber eine mittelwertbildung von messwerten zur 
kalibrierung als solches ist durchaus legitim.
wenn dir eine auflösung von 10bit genügt, kannst du einfach mit 12 bit 
messen und die unteren beiden einfach wegshiften, möglicherweise fällt 
das offset dann eh nicht mehr ins gewicht. kommt natürlich immer drauf 
an was du erreichen möchtest.
ach ja, und noch ein kleiner tipp zum thema adc (falls noch nicht 
genannt):

ein adc-eingang hat immer eine bestimmte eingangskapazität, die man im 
datenblatt nachlesen kann. bei jeder wandlung wird diese kurzzeitig 
parallel zur messgröße geschaltet. da das laden eines leeren 
kondensators immer mit "hohen" strömen verbunden ist, kann es sein, dass 
die messgröße spannungsmäßig einbricht (wenn auch nur kurz). deshalb 
schaltet man bei jedem ADC einen sogenannten Tank-kondensator zwischen 
input und ground. die größe dieses Cs berechnet sich aus

C_tank = C_adc * Anzahl der Stufen (2^12 in deinem Fall)

soll heißen: 10pf im ADC ergeben 10pf * 4096 = ca 40nF (47nF)

mfg reiner

Autor: Alexander H. (ill_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da muss ich nochmal kurz nachhaken. zwischen input und gnd meint den 
eingang des ADC? wenn ich also acht eingänge habe, muss ich an jedem 
einen sogenannten tankkondensator vorsehen?

danke, Alex

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, wie eine art puffer, für jeden kanal...

mfg reiner

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.