Forum: Mikrocontroller und Digitale Elektronik Kalibrierung von ADCs, möglichst einfach


von Gustav (Gast)


Lesenswert?

Hallo,

kurze Frage: Ich würde gerne möglichst einfach einen ADC kalibrieren.

Meine Idee war folgende.
Ich lasse den ADC mithilfe einer Referenzspannungsquelle zwei Werte 
messen.

z.B. einmal 10V und einmal 1V.
Angenommen für 10V kommt der Wert 400 raus und für 1 V der Wert 20 z.B. 
(weil er wahrscheinlich ja Offset und Gainfehler hat).

Kann ich dann einfach sagen, ich merke mir die zwei Werte 10V=400 und 
1V=20 und rechne dann für die spätere Messung die Spannung mithilfe 
linearer Interpolation mithilfe dieser zwei Referenzwerte aus.

Kann man das so machen?

von Kolja L. (kolja82)


Lesenswert?

Miss doch noch nen dritten Punkt, dann kannst du Aussagen über die 
Linearität treffen.

von Harald (Gast)


Lesenswert?

Kann man so machen!

Man sollte natürlich prüfen, ob weitere Faktoren die Linearität zwischen 
diesen Punkten  beeinflussen. Z.B. habe ich schon so manches mal 
gesehen, dass man versucht, die max. ADC-Eingangsspannung mit einer 
parallel geschalteten Z-Diode begrenzen zu wollen. Dabei hat der 
Designer vergessen, dass eine Z-Diode auch schon deutlich vor der 
Zener-Spannung leitend wird und die Linearität verbiegt.

von Karl M. (Gast)


Lesenswert?

Hallo,

bist zu ISO zertifiziert für eine Kalibrierung ?
Nein, dann ist es doch eher ein Abgleich.

von Einer K. (Gast)


Lesenswert?

Gustav schrieb:
> Kann ich dann einfach sagen, ich merke mir die zwei Werte 10V=400 und
> 1V=20 und rechne dann für die spätere Messung die Spannung mithilfe
> linearer Interpolation mithilfe dieser zwei Referenzwerte aus.

Die beiden Punkte möglichst weit auseinander wählen.
Daraus die Steigung berechnen. Einmalig.
Die Steigung, ist einer dieser Brüder, die ich gerne ins EEProm stopfe.

In meiner kleinen AVR Welt ist dieses Verfahren vollkommen ausreichend.
Ich nenne es "2 Punkt Kalibrierung".

von Horst (Gast)


Lesenswert?

Karl M. schrieb:
> bist zu ISO zertifiziert für eine Kalibrierung ?
> Nein, dann ist es doch eher ein Abgleich.

Versuchst Du jetzt das Theater mit der Eichung auf die Kalibrierung zu 
übertragen?
Das erklär doch mal seit wann man zum Kalibrieren zertifiziert sein muß 
und nach welcher ISO? Und warum die auf de TE zutreffen sool.

von Karl M. (Gast)


Lesenswert?

Arduino F. schrieb:
> In meiner kleinen AVR Welt ist dieses Verfahren vollkommen ausreichend.
> Ich nenne es "2 Punkt Kalibrierung".

Ja, ok.

Atmel hat dazu, ADC, auch noch einige Application Notes verfasst.

von Marek N. (Gast)


Lesenswert?

OK, dann wollen wir mal richtig klugscheißen:

Die ISO interessiert sich nur für die Dokumentationspflicht der 
Kalibrierung.
Wer die Kalibrierung durchführt ist dem Zertifizierer egal, Hauptsache, 
es gibt ein Dokument darüber, was den Prozess möglichst widerspruchsfrei 
beschriebt.
Wie der Prozess im Detail abläuft, wird von der QS als Stabsstelle 
definiert, nicht von der ISO.
Du kannst dir also auch ein HP3458A hinstellen mit nem roten Aufkleber 
"nicht kalibrierpflichtig" und ein Zollstock aus dem 19 Jahrhundert 
jedes Jahr in Paris gegen das Urmeter prüfen lassen.

von BirnKichler S. (Firma: privat) (max707)


Lesenswert?

Gustav schrieb:
> Kann ich dann einfach sagen, ich merke mir die zwei Werte 10V=400 und
> 1V=20 und rechne dann für die spätere Messung die Spannung mithilfe
> linearer Interpolation mithilfe dieser zwei Referenzwerte aus.
>
> Kann man das so machen?

Nein!

von Peter D. (peda)


Lesenswert?

Karl M. schrieb:
> bist zu ISO zertifiziert für eine Kalibrierung ?

Na dann eben "calibration".

von c-hater (Gast)


Lesenswert?

Gustav schrieb:

> Kann man das so machen?

Das ist nur eine Näherung, Linearitätsfehler werden damit nicht erfasst.

Ein vollständige Kalibrierung ist nicht wesentlich komplexer umzusetzen, 
erfasst aber auch die Linearitätsfehler. Im Prinzip läuft das so ab: 
steuerbare Spannungsquelle durchfährt den gesamten Messbereich, µC ruft 
bei jeder Änderung des Messwertes der ADC die aktuelle Spannung von der 
Quelle ab und baut aus den Werten eine vollständige Lookup-Tabelle auf.

Vorteile:
- auch Linearitätsfehler kompensiert
- Umrechnung von ADC-Messwert auf physikalische Größe zur Laufzeit 
entfällt
  (Tabelle enthält bereits die entsprechende Größe)

Nachteil:
- Speicherplatz für Tabelle erforderlich

Um den Nachteil loszuwerden, kann man dann aus der Tabelle z.B. die 
Koeffizenten für ein Polynom zweiten oder dritten Grades ermitteln, was 
die Werte besser annähert als ein einfacher linearer Zusammenhang. Damit 
ist man dann die Tabelle los, muss aber wieder zur Laufzeit rechnen. 
Also der klassische trade-off zwischen Performance und 
Speicherplatzverbrauch. Muss man je nach Anwendung immer wieder neu 
entscheiden.

Dabei sollte man beachten, dass die Rechnerei nicht nur Performance 
kostet, sondern auch Speicherplatz für den Code, der sie ausführt. U.u. 
ist die Tabelle auch bezüglich des Speicherplatzbedarfs das kleinere 
Übel...

von Harald W. (wilhelms)


Lesenswert?

Gustav schrieb:

> kurze Frage: Ich würde gerne möglichst einfach einen ADC kalibrieren.

Die Linearität moderner AD-Wandler ist heutzutage so gut, das man
schon recht spezielle Meßtechnik braucht, um Abweichungen festzu-
stellen. Normalerweise sollte es reichen, Nullpunkt und Vollaus-
schlag richtig einzustellen.

von Peter D. (peda)


Lesenswert?

c-hater schrieb:
> Das ist nur eine Näherung, Linearitätsfehler werden damit nicht erfasst.

Eh man da Aufwand treibt, sollte man erstmal prüfen, ob das ausreichend 
ist.
Und wenn die Schaltung nichtlinear ist, muß man erstmal prüfen, warum 
sie das ist und vor allem, ob das langzeitstabil ist!

Einfach so ein Mehrpunktabgleich ohne Sinn und Verstand ist Quatsch.
Es ist auch ein Unterschied, ob ich einen 10Bit-ADC kalibriere oder 
einen 24Bit-ADC.

von Mostpfeife (Gast)


Lesenswert?

Die Linearitaet eine Wandlers ergibt sich aus dem Datenblatt. Wenn man 
sich nun  fuer etwas interessiert, so misst man Null und die Referenz. 
Das war's dann.

Wenn man der Linearitaet des Wandlers nicht traut weil die Analogik 
vornedran schlecht ist, wird man eh Schwierigkeiten haben, die 
Linearitaet zu messen.

von branadic (Gast)


Lesenswert?

Zum Lineasieren eines ADC kannst du eine Spannungsquelle (z.B. 
Batterien) mit einen Widerstandsteiler (z.B. 20 Widerstände oder mehr 
gleichen Wertes) verwenden und die korrespondierenden Spannungen 
abgreifen. Die Summe aus den zwei korrespondierenden Spannungen muss 
immer wieder die Gesamtspannung der Spannungsquelle ergeben.

http://www.eevblog.com/forum/projects/oshw-24bit-adc-measurement-system-for-voltage-references/msg427526/#msg427526

(siehe resistor divider)

von c-hater (Gast)


Lesenswert?

Mostpfeife schrieb:

> Die Linearitaet eine Wandlers ergibt sich aus dem Datenblatt.

Nein, das tut sie leider nicht. Im DB wird nur der maximal zu erwartende 
Fehler der Linearität stehen, keinesfalls aber der konkrete Verlauf der 
Kurve.

Wenn man mit dem Maximalfehler leben kann, dann reicht natürlich ein 
Zweipunkt-Abgleich.

Dasselbe gilt übrigens auch genauso für Nullpunkt und Steigung. Wenn man 
auch mit diesem Fehlern, deren Maximalwerte typischerweise ebenfalls im 
DB stehen, leben kann, dann braucht man garnicht abgleichen...

Du siehst, wohin dein Einwand in letzter Konsequenz führt?

von W.S. (Gast)


Lesenswert?

Gustav schrieb:
> kurze Frage: Ich würde gerne möglichst einfach einen ADC kalibrieren.

Ach.

Kannst du mir mal verraten, wozu sowas nötig sein sollte? Guck ins 
Datenblatt des ADC, das reicht für gewöhnlich. Grund: Du meinst etwas 
ANDERES, aber du hast dies nicht gesagt.

Also: Ich vermute, du hast irgend einen Meßumformer (was auch immer für 
ein Ding) mit angeschlossenem ADC. Also sowas wie:

Spannung rein, ADC-Wert raus
Druck rein, ADC-Wert raus
Flughöhe rein, ADC-Wert raus
Konfektionsgröße rein, ADC-Wert raus
oder so ähnlich.

Logischermaßen muß sowas irgendwie kalibriert werden. Und das besteht 
nicht im Anbeten von ISO-Papieren oder so ähnlich, es ist auch kein 
hoheitlicher Akt wie z.B. das Wirken eines Eichamtes, sondern es besteht 
schlicht und simpel daraus, daß man:

a) für eine Einpunkt-Kalibrierung:
 1 bekannte Eingangsgröße anlegt und ihr den daraus entstehenden 
ADC-Wert zuordnet

b) für eine (wesentlich üblichere) Zweipunkt-Kalibrierung:
 2 bekannte Eingangsgrößen anlegt und den jeweilig daraus entstehenden 
ADC-Werten zuordnet.

Der Rest ist Mathematik, die übliche Formel y=a*x+c kennt ja jeder noch 
- oder etwa nicht???

Den Fall c) nämlich Dreipunkt-Kalibrierung lassen wir hier mal außen 
vor, das scheint den Disputanten hier ohnehin zu hoch zu sein. Bei 
Temperaturmessungen z.B. ist sowas manchmal nötig, siehe 
Steinhart-Hart-Formel.

Also zum Prinzip: Kalibrieren heißt, anhand bekannter Vorgaben die 
Ergebnisse richtig zuzuordnen.

W.S.

von DaC (Gast)


Lesenswert?

Arduino F. schrieb:
> Die beiden Punkte möglichst weit auseinander wählen.
> Daraus die Steigung berechnen. Einmalig.

Dann wären der Nullpunkt und der Endpunkt am besten geeigenet. Ist das 
wirklich so?

von Ulf (Gast)


Lesenswert?

DaC schrieb:
> Dann wären der Nullpunkt und der Endpunkt am besten geeigenet. Ist das
> wirklich so?
Jain. Es kann auch günstig sein, im erwarteten Arbeitspunkt bzw. 
Arbeitsbereich zu kalibrieren.

von Purzel H. (hacky)


Lesenswert?

>>Mostpfeife schrieb:
>>
>> Die Linearitaet eine Wandlers ergibt sich aus dem Datenblatt.
>>
>Nein, das tut sie leider nicht. Im DB wird nur der maximal zu
>erwartende Fehler der Linearität stehen, keinesfalls aber der
>konkrete Verlauf der Kurve.

Nun, falls die als Maximum spezifizierte Nichtlinearitaet nicht gut 
genug ist, nimmt man einen Besseren. Man linearisiert sicher keinen 
Wandler. Genauswenig wie man bei OpAmps Offsetabgleiche macht.

von c-hater (Gast)


Lesenswert?

Zwölf M. schrieb:

> Nun, falls die als Maximum spezifizierte Nichtlinearitaet nicht gut
> genug ist, nimmt man einen Besseren. Man linearisiert sicher keinen
> Wandler.

Na da spricht ja der Flachmann...

Natürlich macht man das, wenn es nützlich erscheint! Und nützlich ist es 
z.B. immer dann, wenn der Speicher für die Tabelle + zzgl. des Aufwandes 
für die Kalibrierung immer noch billiger ist als ein besserer Wandler...

Wobei man die Gesamtkosten für den besseren Wandler im Blick haben muss. 
Die gehen deutlich über seinen Einkaufspreis hinaus!

Aber wenn du irgendwann mal erwachsen bist, begreifst du das vielleicht 
auch...

von Georg G. (df2au)


Lesenswert?

Marek N. schrieb:
> Zollstock

Wenn wir hier schon kleine Rosinen ausscheiden, dann richtig. Das Ding 
ist ein Gliedermaßstab.

von Thomas R. (Gast)


Lesenswert?

Willst du abgleichen oder kalibrieren?
Das ist ein was ganz anderes!
https://de.wikipedia.org/wiki/Kalibrierung

von Mostpfeife (Gast)


Lesenswert?

Bei welcher Art Wandler wuerde es sich lohnen eine Linearisierung 
durchzufuehren ?

von A. S. (Gast)


Lesenswert?

Thomas R. schrieb:
> Willst du abgleichen oder kalibrieren?

Die begriffliche Trennung von Kalibrierung und Abgleich erfolgt 
üblicherweise nur bei manuellem Eingriff. Hier, oder z.b. beim setzen 
des Nullpunkts einer elektronischen Waage ist es weltfremd, auf dem 
Begriff rumzureiten.

von Harald W. (wilhelms)


Lesenswert?

Mostpfeife schrieb:

> Bei welcher Art Wandler wuerde es sich lohnen eine Linearisierung
> durchzufuehren ?

Bei einem selbstgebautem. Der wird immer deutlich schlechter sein
als der billigste, integrierte.

von Purzel H. (hacky)


Lesenswert?

Und in welchem Anwendungsfall wuerde ich einen selbstgebauten Wandler 
verwenden wollen ?

von Harald W. (wilhelms)


Lesenswert?

Zwölf M. schrieb:

> Und in welchem Anwendungsfall wuerde ich einen selbstgebauten Wandler
> verwenden wollen ?

Für Lernzwecke.

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.