Forum: Mikrocontroller und Digitale Elektronik Messungen mit einem AD-Wandler


von Andreas H. (andreas1993)


Lesenswert?

Guten Tag...,

ich hab einen ADC1302 
(http://datasheets.maximintegrated.com/en/ds/MAX1302.pdf) und bin gerade 
dabei den zu testen.
Wenn der AD-Wandler mit 1V beschaltet wird, dann bekomme ich digitale 
Werte zwischen 15995 und 16002. Da kommen alle Werte vor 15995, 15996, 
16000...!


Vref beträgt bei dem AD-Wandler 4,096 V, also ist 1 LSB 0,0625 mV.
Wenn ich jetzt den digitalen Wert 16000 mit 0,0625 mV multipliziere, 
dann erhalte ich 1V, mit den anderen Werten schwankt es zwischen 
0,9996875 und 1,000125 V. Ich weiss, dass das nur minimal ist...!

Ist das schlimm, dass der AD-Wandler solch unterschieder Werte hat oder 
kann ich hier ruhig aufrunden? Ich hab keine Erfahrung wie man solche 
Messungen bewertet, deswegen beschäftige ich mich damit.

Könnte mal vielleicht bei den unterschiedlichen Werten den Mittelwert 
bilden und damit arbeiten?

Gruß
Andreas

von ?!? (Gast)


Lesenswert?

Die Frage ist, wie genau deine Spannungsquelle ist?
Du sprichst hier von einer Spanne von 0,4mV. Das muß nicht nur am 
AD-Wandler liegen. Der Schaltungsaufbau kann auch eine Rolle spielen 
(Störeinstreuungen, schlechte Masseführung).

von Georg G. (df2au)


Lesenswert?

Wie sauber ist deine Eingangsspannung? Wie sieht es mit der Masseführung 
aus? Was du da machst, ist höhere Mückenfi... Jenseits von 12Bit wird es 
spannend. Ohne Erfahrung sind 16Bit etwas zu heftig.
Also: Mittelwert bilden und gut ist.

von ga_st (Gast)


Lesenswert?

"Ist das schlimm, dass der AD-Wandler solch unterschieder Werte hat"
Nein, ist normal die Werte schwanken immer etwas.

Könnte mal vielleicht bei den unterschiedlichen Werten den Mittelwert
bilden und damit arbeiten?

Ja klar.
Ich empfehle den Median Filter.

von c-hater (Gast)


Lesenswert?

Andreas Hoffmann schrieb:

> Könnte mal vielleicht bei den unterschiedlichen Werten den Mittelwert
> bilden und damit arbeiten?

Genau das tut man üblicherweise.

Hier ist ja nichtmal klar, ob nicht vielleicht die zu messende Spannung 
tatsächlich um die gemessenen Beträge wackelt, denn das sind ja nur 
gut 100µV bzw. 0,1‰. Selbst wenn die Quelle ein Labornetzteil ist, wären 
Schwankungen in dieser Größenordnung völlig normal.

von Grundrechenarten (Gast)


Lesenswert?

c-hater schrieb:
> denn das sind ja nur gut 100µV

1,000125V - 0,9996875V = 437,5µV

von Mike (Gast)


Lesenswert?

Grundrechenarten schrieb:
> 1,000125V - 0,9996875V = 437,5µV

Und? Macht das einen Unterschied?

Wird sind hier nicht in der Grundschule zum Thema "Zahlenraum bis 1000" 
sondern es geht ums Prinzip. Und ob das Labornetzteil 100 oder 500µV vor 
sich hin rauscht, wird meistens nicht mal in dessen Datenblatt stehen, 
sondern da ist eine obere Grenze angegeben, die wohl meist deutlich 
darüber liegen wird.

von Dumdi D. (dumdidum)


Lesenswert?

Oder einfach mal mit batterien durchfuehren. (Vss und signal). Wenns 
dann noch richtig wackelt ist es eine Masseschleife (oder etwas anderes 
:) )

von Anja (Gast)


Lesenswert?

Andreas Hoffmann schrieb:
> Ist das schlimm, dass der AD-Wandler solch unterschieder Werte hat

Steht doch genau so im Datenblatt:
Transition noise = 1 LSB RMS
Den Peak-Peak Wert erhält man durch Multiplikation von 6.6 mit 3 Sigma 
Unsicherheit.

Um 50Hz Brumm herauszufiltern sollte man so viele Messwerte mitteln bis 
20 ms (oder vielfache davon) aufintegriert sind.

Gruß Anja

von Arc N. (arc)


Lesenswert?

Anja schrieb:
> Andreas Hoffmann schrieb:
>> Ist das schlimm, dass der AD-Wandler solch unterschieder Werte hat
>
> Steht doch genau so im Datenblatt:
> Transition noise = 1 LSB RMS
> Den Peak-Peak Wert erhält man durch Multiplikation von 6.6 mit 3 Sigma
> Unsicherheit.

Oder aus dem SNR zurückrechnen (solange die Bedingungen ähnlich sind...)
LSB = 4.096/2^16 = 62 uV
Rauschen P-P waren 437.5 uV
SNR = 6.02 * N + 1.76 dB
Hier z.B. die 88 dB im single ended Modus und VREF
88 dB = 6.02 * N + 1.76 dB => N = 14.32 Bit

Beides passt gut zu den gemessenen Werten

von Andreas H. (andreas1993)


Lesenswert?

?!? schrieb:
> Die Frage ist, wie genau deine Spannungsquelle ist?
> Du sprichst hier von einer Spanne von 0,4mV. Das muß nicht nur am
> AD-Wandler liegen.


Guten morgen,

meine Spannungsquelle ist ein Kalibrierquelle 
(http://www.amplifier.cd/Test_Equipment/other/Burster-4405-Kalibrierquelle.html). 
Die hat ein Messfehler von 0,02%!


> Der Schaltungsaufbau kann auch eine Rolle spielen
> (Störeinstreuungen, schlechte Masseführung).

Das Layout des AD-Wandlers habe ich selber gemacht. Wie kann ich jetzt 
feststellen, dass es an dem Schaltungsaufbaue liegt?

von Burkhardt (Gast)


Lesenswert?

> Das Layout des AD-Wandlers habe ich selber gemacht. Wie kann ich jetzt
> feststellen, dass es an dem Schaltungsaufbaue liegt?

Ganz wichtig ist es, den Schaltplan, das Layout und weitere Deatils 
zurückzuhalten, da die Leute hier massig Zeit haben und dir gerne die 
Würmer aus der Nase ziehen.

von TT (Gast)


Lesenswert?

Andreas Hoffmann schrieb:
> meine Spannungsquelle ist ein Kalibrierquelle
> 
(http://www.amplifier.cd/Test_Equipment/other/Burster-4405-Kalibrierquelle.html).
> Die hat ein Messfehler von 0,02%!

0,02% von 11 V sind 2,2 mV

von Andreas H. (andreas1993)


Lesenswert?

Burkhardt schrieb:
>> Das Layout des AD-Wandlers habe ich selber gemacht. Wie kann ich jetzt
>> feststellen, dass es an dem Schaltungsaufbaue liegt?
>
> Ganz wichtig ist es, den Schaltplan, das Layout und weitere Deatils
> zurückzuhalten, da die Leute hier massig Zeit haben und dir gerne die
> Würmer aus der Nase ziehen.

Das Layout habe ich wie auf Seite 13 (Figure 1) im Datenblatt 
(http://datasheets.maximintegrated.com/en/ds/MAX1302.pdf) aufgebaut. Nur 
anstatt 3.3V (DVDD0) habe ich 5V und CH0 ist bei mir nicht belegt. Ich 
arbeite nur mit CH1 (INPUT). Als Schnittstelle verwende ich SPI, das 
ändert aber nichts an dem Layout!

: Bearbeitet durch User
von Andreas H. (andreas1993)


Lesenswert?

Arc Net schrieb:

Hallo Arc Net,
ich hätte mal ein paar Fragen zur deiner Rechnung.

> Rauschen P-P waren 437.5 uV

Du hast für dein Beispiel die Messwerte 1) 1,000125 und 2) 0,9996875 
genommen. 1,000125-0,9996875 = 437.5 µV, richtig...?

> SNR = 6.02 * N + 1.76 dB

Wie kommst du auf diese Formel? Diese Formel ist doch für "Effetive 
Number of Bits", bzw. ENOB = SINAD - 1.76/6.02 (Datenblatt S.29)!



> Hier z.B. die 88 dB im single ended Modus und VREF
> 88 dB = 6.02 * N + 1.76 dB => N = 14.32 Bit
>
> Beides passt gut zu den gemessenen Werten

Die Rechnung hier kann ich nachvollziehen aber wie kommst du darauf, 
dass die beiden Ergebnisse gut zu den gemessenen Werten passen?

Die letzte Frage wäre, kann der AD-Wandler nur Effectiv Number of Bits 
haben:
        max. 90 db = 14,66 Bits
        min. 80 db = 12,996 Bits (13 Bits)

Dann verstehe ich nicht, warum das ein 16 Bit ADC ist, warum kann man 
ihn nicht gleich AD-Wandler 14,66 Bit nennen?

von dunno.. (Gast)


Lesenswert?

TT schrieb:
> Andreas Hoffmann schrieb:
>> meine Spannungsquelle ist ein Kalibrierquelle
>>
> (http://www.amplifier.cd/Test_Equipment/other/Burst...).
>> Die hat ein Messfehler von 0,02%!
>
> 0,02% von 11 V sind 2,2 mV

Damit ist doch schon alles gesagt. 0,02% abweichung beziehen sich auf 
den messbereichsendwert von 11V.

ergo: deine Spannungsquelle ist offensichtlich verdammt gut..

von Anja (Gast)


Lesenswert?

Andreas Hoffmann schrieb:
> Die hat ein Messfehler von 0,02%!

Das sagt überhaupt nichts über das Rauschen der Quelle aus.
Die 0.02% könnten ja für eine Bandbreite von 0.001Hz sein.
(also fast 1 Stunde Messdauer)

Es gibt auch namhafte Kalibratoren (6 Stellig) die um die 100uVpp 
Rauschen (0.1-10Hz) bei 10V Ausgangsspannung haben.

Eine gute Referenz sollte unter 0.6 ppm (peak-peak) haben.

Gruß Anja

von Anja (Gast)


Lesenswert?

Andreas Hoffmann schrieb:
> warum kann man
> ihn nicht gleich AD-Wandler 14,66 Bit nennen?

Wer kauft schon einen 14,66 Bit Wandler wenn der Mitbewerber 16 Bit ins 
Prospekt schreibt?

Gruß Anja

von Andreas H. (andreas1993)


Lesenswert?

Anja schrieb:

> Wer kauft schon einen 14,66 Bit Wandler wenn der Mitbewerber 16 Bit ins
> Prospekt schreibt?
>
> Gruß Anja


heeeeeee?????

Es gibt doch kein 16 Bit AD-Wandler, der auch 16 Bit liefert oder?
Dann ist es doch falsch wenn ich den AD-Wandler 16 Bit nenne!!!

von Dietrich L. (dietrichl)


Lesenswert?

Andreas Hoffmann schrieb:
> Es gibt doch kein 16 Bit AD-Wandler, der auch 16 Bit liefert oder?
> Dann ist es doch falsch wenn ich den AD-Wandler 16 Bit nenne!!!

So einfach ist das nicht. Du solltest erstmal unterscheiden zwischen
- Auflösung und
- Genauigkeit.
Die Auflösung ist sinnvollerweise immer größer als die Genauigkeit. Und 
die Genauigkeit wiederum hat mehrere Aspekte (Linearität, Rauschen, ...) 
und hängt von vielen Parametern ab.
Ab wann die Angaben des Herstellers unseriös werden, ist so einfach 
nicht zu sagen und hängt auch von der Anwendung ab. Wenn z.B. nicht der 
absolute Wert sondern nur langsame Änderungen erfasst werden sollen, 
kann man zusammen mit Software-Filterung mehr Bits sinnvoll nutzen.

Gruß Dietrich

von Andreas H. (andreas1993)


Lesenswert?

Ok, das nacht Sinn!

Danke für eure Antworten, die haben mir sehr geholfen.

Gruß
Andreas

von Andreas H. (andreas1993)


Lesenswert?

Hi,

ich hab meine Messungen sowei hinbekommen. Jetzt würde ich die 
Ergebnisse gerne etwas analysieren, aber ich komme momentan etwas 
durcheinander.

Ich will von den Ergebnissen den absoluten und relativen 
Quantisierungsfehler ermitteln.

Absolute Quantisierungsfehler: Qa = Uw - Um   Uw = Eingangsspannung
                                              Um = Analoger Wert

diesse Formel finde ich auch in vielen Lehrbüchern, aber für den 
relativen Quantisierungsfehler finde ich in den Büchern nichts.

Wenn ich es google, dann bekomme ich viele Formeln. Deshalb bin ich 
etwas verwirrt, kann mir vielleicht da jemand helfen?

Mir wäre es lieb, wenn ich etwas in Lehrbüchern finden würde. Also wäre 
ich für jeden tipp sehr dankbar.

Gruß
Andreas

von Uwe (de0508)


Lesenswert?

Hallo Andreas,

mich interessiert, wie genau du die analoge Referenzspannung am 
ADC-Eingang erzeugen (Schritte mV und Genauigkeit) und Messen kannst.

von Andreas H. (andreas1993)


Lesenswert?

Hallo Uwe,

ich verstehe deine Frage nicht richtig. Du willst wissen, wie ich die 
Referenzspannung am Eingang des ADC erzeuge? Mit einem Netztgerät und 
messen per ADC 1302 von Maxim.

Gruß
Andreas

von Karl H. (kbuchegg)


Lesenswert?

Andreas Hoffmann schrieb:
> Hallo Uwe,
>
> ich verstehe deine Frage nicht richtig. Du willst wissen, wie ich die
> Referenzspannung am Eingang des ADC erzeuge? Mit einem Netztgerät und
> messen per ADC 1302 von Maxim.

Dir ist aber schon klar, dass ein ADC im Prinzip nur das Verhältnis der 
zu messenden Spannung in Relation zur Referenzspannung feststellt.

D.h. jegliche 'Unsauberkeit' in der Referenzspannung hast du damit auch 
ganz automatisch auch im Messergebnis. Selbst wenn deine zu messende 
Spannung steht wie eine Eins, sobald du auf der Referenzspannung kleine 
Schwankungen hast, schwankt auch das Messergebnis.

Ich wollte das nur klargestellt wissen, denn genau deswegen ist die 
Frage aufgetaucht, wie deine Referenzspannung entsteht.

: Bearbeitet durch User
von Uwe (de0508)


Lesenswert?

Hallo Andreas,

Karl Heinz hat es schon verstanden, worauf ich mit dieser Frage abziele.
Es geht mir um deine Messgenauigkeit und der möglichen Störquellen, die 
muss man all kennen, wenn man eine Aussage treffen möchte

Du schreibst selbst
/Vref beträgt bei dem AD-Wandler 4,096 V/
wie andere TL schon schrieben, ist hier auch eine Toleranz +- x% 
vorhanden.

Dein zu messendes Signal schwankt bestimmt auch, durch die Regelung und 
hat noch eine Rauschspannung überlagert.

Dazu kommt noch die Messungenauigkeit deines Referenzmessgeräts, denn 
wir es DMM, hinzu.

Als dies führt in der Summe zu einer bestimmten Wahrscheinlichkeit 
(Messunsicherheit) wo - also in welchem Bereich - die zu messende 
Spannung liegt.

ok?

von Andreas H. (andreas1993)


Lesenswert?

Ich benutze die interne Refernzspannung des ADC, diese ist 4,096 V.
Somit habe ich eine Auflösung von 0,0625 mV pro Schritt.

Da mein Netzgerät nur drei Stelle nach dem Komma hat, habe ich meine 
erste Messung mit 0,063 mV festgelegt. Somit müsste ich ein digitalen 
Wert zwischen 0 (00000) und 2 (00010) haben.

Laut Datenblatt hat der ADC +/- 1 LSB

Die Messgenauigkeit des Netzgerätes beträgt 0,02%.

von Uwe (de0508)


Lesenswert?

Danke Andreas,

jetzt sehe ich klarer bgzl. deinem Messaufbau.

Vorschlag: bitte mache die ADC Messungen über eine Mittelwertbildung 
über m=2^n; n E {1,..,256} Messwerte.

ADC-Mittelwert = Summe[1 bis m]( eine 16Bit ADC-Messung ) / m

Dann sollte das Flackern der unteren Bits nicht mehr so stark in 
Erscheinung treten.

Bitte berichte.

: Bearbeitet durch User
von Andreas H. (andreas1993)


Lesenswert?

Den Mittelwert habe ich schon von den einzelnen Messungen.

Da ich immer verschiedene Werte bekomme, habe ich den Mittelwert 
gebildet.

Zum Beispiel habe ich die Messung für 0,063 mV zehm mal laufen lassen 
und dann den Mittelwert gebildet. Damit habe ich auch kein Problem.

Mein Problem ist jetzt, wie kann ich den relativen Quantisierungsfehler 
berechen.

: Bearbeitet durch User
von Uwe (de0508)


Lesenswert?

Hallo Andreas,

mache eine Messreihe  mit einer Strittweite von 10mV von 0 bis 4096mV 
erfasse die ADC-Messwerte und setze sie in Relation zu den erwarteten 
ADC-Messwerten.

Ein erwarteter ADC-Messwert (ADC_soll) ist definiert als:

ADC_soll = V_ist /Vref *2^(#Bits)

Mit Vref=4.096V ±1% (MAX1302) ergibt das

ADC_soll = V_ist *2^16 /2^12 = V_ist *2^4

Den relativen Quantisierungsfehler (Q_rel) würde ich als

Q_rel = |ADC_soll - ADC_ist|

definieren.

: Bearbeitet durch User
von Andreas H. (andreas1993)


Lesenswert?

Hallo Uwe,

ok das werde ich machen. Danke

Ein frage hätte ich noch was das Messen des ADC betrifft.

Wenn ich z.B. die Spannung 0,065 mV messe, dann bekomme ich immer 
verschiedene digitale Werte. Da habe ich entschlossen ein Mittelwert zu 
bilden. Die Software hab ich jetzt so programmiert, dass ich nach 10 
Messungen den Mittelwert bekomme.
Aber wieviele Messungen soll ich lieber machen, sind 10 ausreichend oder 
soll ich lieber 100 machen? Gibt es dafür ein Maß oder eine Regel?

Wie geht man an solche Dinge ran?

Gruß
Andreas

von Uwe (de0508)


Lesenswert?

Hallo Andreas,

wir/ ich keinen deinen Aufbau nicht, evtl. fängst Du dir schon 
Schwankungen auf der Versogungsspannung, Strom auf den Masseflächen etc. 
ein.

Also immer 2^n Messungen machen und ausprobieren - wir leben in der 
digitalen Welt.

von Andreas H. (andreas1993)


Lesenswert?

Uwe S. schrieb:

Hallo Uwe,
mir ist etwas aufgefallen undzwar bei den Formeln.

> ADC_soll = V_ist /Vref *2^(#Bits)

Meinst Du hier mit 2^(Bits), den Bit den ich gerade verwende oder 16 
Bits, des ADCs?


> ADC_soll = V_ist *2^16 /2^12 = V_ist *2^4

Warum dividierst Du hier durch 2^12, wie kommst Du darauf 2^12?



> Den relativen Quantisierungsfehler (Q_rel) würde ich als
> Q_rel = |ADC_soll - ADC_ist|

Ist ADC_soll - ADC_ist nicht der absolute Quantisierungsfehler?
Der relative Quantisierungsfehler ist doch nur der Prozentwert, des 
absoluten Quantisierungsfehler oder...?

Gruß
Andreas

: Bearbeitet durch User
von Uwe (de0508)


Lesenswert?

Hallo,

kleine Hilfestellung:

16 Bit ADC Auflösung sind 2^16 verschiedene Werte
4096mV Vref          sind 2^12 mV

Den Rest kann Du selbst entwickeln.

: Bearbeitet durch User
von Andreas H. (andreas1993)


Lesenswert?

Super, danke jetzt habe ich das verstanden.

Letzte Frage für heute. ;)

Du meintest ja; "Mit Vref=4.096V ±1% (MAX1302) ergibt das" dabei ist 
+-1% die Genauigkeit des ADC!? Richtig...?

PS: Du meintest bestimmt hier 2^12 verschiedene Werte und nicht mV, 
oder?

: Bearbeitet durch User
von Uwe (de0508)


Lesenswert?

Nein,

-+1% ist die Genauigkeit laut MAX1302 Datenblatt der Referenzspannung.
Siehe Seite 4 des MAX1302 Datenblatts.

Die Temperaturabhängig mit 30ppm ist dabei noch nicht berücksichtigt !

: Bearbeitet durch User
von Andreas H. (andreas1993)


Lesenswert?

Herzlichen Dank Uwe!

von Andreas H. (andreas1993)


Lesenswert?

Guten Abend,

ich mache gerade ein paar Messungen. Mir ist aufgefallen, dass mein 
AD-Wandler im unteren Bereich nicht die Werte aus gibt.

Wenn ich z.B. im mV Bereich bin 0,1 mV dann bekomme ich ein digitalen 
Wert von 7,38. Dies entspricht 0,46125 mV.

Wenn ich aber im 1000 mV Bereich aufhalte, dann bekomme ich die Werte, 
die ich auch erwarte so zwischen 16000 - 16005.

Woran liegt das?

Ps: Die Kalibrierquelle hat ein Messfehler von 0,02%, der AD-Wandler hat 
eine Genauigkeit von +- 1%.

Gruß
Andreas

von Arc N. (arc)


Lesenswert?

Andreas Hoffmann schrieb:
> Guten Abend,
>
> ich mache gerade ein paar Messungen. Mir ist aufgefallen, dass mein
> AD-Wandler im unteren Bereich nicht die Werte aus gibt.
>
> Wenn ich z.B. im mV Bereich bin 0,1 mV dann bekomme ich ein digitalen
> Wert von 7,38. Dies entspricht 0,46125 mV.
>
> Wenn ich aber im 1000 mV Bereich aufhalte, dann bekomme ich die Werte,
> die ich auch erwarte so zwischen 16000 - 16005.
>
> Woran liegt das?
>
> Ps: Die Kalibrierquelle hat ein Messfehler von 0,02%,

Siehe Datenblatt
http://www.pd.infn.it/elettronica/Strumenti/foto%20strumenti/BURSTER4405.pdf

0.02% vom Bereichsendwert und einen Nullfehler der mal wieder höchst 
unsinnig als < 50 uV angegeben wird. Hinzukommt noch Rauschen, 
Temperatur- und Langzeitdrift.
Im Bereich bis 100 mV wären das 20 uV +- x
Im Bereich 100 mV bis 1000 mV 200 uV +- x
Anders gesagt: Wenn das im 100 mV bis 1000 mV Bereich auftreten würde, 
wäre es noch plausibel. Im niedrigeren Bereich aber nicht.

> der AD-Wandler hat eine Genauigkeit von +- 1%.

Die eingebaute Referenz des Wandlers hat diese...
Hinzukommen Offset- und Verstärkungsfehler, Nichtlinearitäten, Rauschen, 
Temperatur- und Langzeitdrift und Fehler durch den recht hohen 
Eingangsstrom des Wandlers (-1.5 mA bis +0.6 mA)

> Wenn ich z.B. die Spannung 0,065 mV messe, dann bekomme ich immer
> verschiedene digitale Werte. Da habe ich entschlossen ein Mittelwert zu
> bilden. Die Software hab ich jetzt so programmiert, dass ich nach 10
> Messungen den Mittelwert bekomme.
> Aber wieviele Messungen soll ich lieber machen, sind 10 ausreichend oder
> soll ich lieber 100 machen?

Kommt drauf an...
Die Messunsicherheit einer Messung liegt bei
deltaX = Bereich / 2.
Die Messunsicherheit des Mittelwertes liegt bei
deltaAvg = Bereich / (2 * sqrt(N))
Bereich = Maximaler Wert - minimaler gemessener Wert.
N = Anzahl der Werte

Da die Messwerte hier normalverteilt seien sollten, kann abgeschätzt 
werden wie wahrscheinlich das Auftreten eines Ausreißers ist
http://www.cirrus.com/jp/pubs/appNote/an37.pdf
http://de.wikipedia.org/wiki/Fehlerrechnung

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.