Forum: Analoge Elektronik und Schaltungstechnik ADC/DAC otimal kalibrieren


von Ovi (Gast)


Lesenswert?

Hallo Jungs
ich bin daran, eine Hardware zu bauen, wo ein STM32 ein paar ADCs und 
DACs ansteuert. Ichhabe 16 Bit Wandler eingesetzt und auch 
dementsprechende Spannungsreferenzen verbaut. Das Layout habe ich nach 
diversen Application Notes optimiert.

Wenn ich jetzt den DAC nutzen möchte, um eine 'genaue' Spannung 
auszugeben oder den ADC, um was zu messen, dann sollte ich ja eine 
Kalibrierung vornehmen. Die Frage ist: wie kalibriere ichmein System, um 
die maximal mögliche Genauigkeit zu erzielen? Offset und Gain einfach 
anhand zweier Referenzmessungen bestimmen, oder eine Rampe fahren und 
dann daraus Offset und Gain mit linearer Regression bestimmen?
gibt es noch andere Möglichkeiten? allgemein: worauf sollte ich noch 
achten, um eine möglichst hohe Genauigkeit und reproduzierbarkeit der 
Messungen zu erzielen?

von Bonzzo (Gast)


Lesenswert?

Moeglichst hohe Genauigeit ? Welche Genauigkeit ? Wozu ? Ich kalibriere 
nie einem ADC, sondern einen Sensor dran.

von dmsfreak (Gast)


Lesenswert?

Wir machen sowas grundsätzlich als Zweipunkt-Justage. Der ADC gibt z. B. 
zwei Spannungen aus, sagen wir 1 V und 9 V, die man mit mit einem 
entsprechend präzisen Multimeter komfortabel messen kann, die 
Justierfaktoren werden errechnet und dann ist das fertig. Details wie 
Nichtlinearität zu berücksichtigen ist zwar theoretisch möglich, man 
muss sich aber überlegen, ob das sinnvoll ist. Wenn du eine 
Linearitätsabweichung von z. B. 1/2048 = 12 Bit brauchst, nimmst du 
einfacher einen 16 Bit Wandler. Das ist deutlich einfacher und unterm 
Strich billiger.

Um einen ADC zu justieren, geht man im Prinzip analog vor. Zwei stabile 
Spannungen erzeugen, diese messen, ein bisschen rechnen und gut isses.

Für sehr kleine Eingangsspannungen, die noch verstärkt werden, wird das 
deutlich komplexer, aber das war ja nicht die Frage.

von T506 (Gast)


Lesenswert?

" diese messen, ein bisschen rechnen und gut isses"

und wie sieht dieses bisschen rechnen aus?!
Eine ähnliche frage hatte ich vor einigen Tagen hier auch schonmal 
gestellt..wie so oft kam nichts brauchbares bei raus :-(

von dmsfreak (Gast)


Lesenswert?

Die Mathematik entspricht der Definition einer Geraden durch zwei 
Punkte.

http://de.wikipedia.org/wiki/Zweipunkteform

x entspricht den LSB, y entspricht U

von Clemens L. (c_l)


Lesenswert?

Auch bei zwei Messwerten kann man eine lineare Regression machen.

Konkret: Wenn der ADC bei 1 V den Wert A ausspuckt, und bei 9 V den Wert 
B, dann ist bei Wert C die Spannung:

von Werner M. (Gast)


Lesenswert?

dmsfreak schrieb:
> Die Mathematik entspricht der Definition einer Geraden durch zwei
> Punkte.

Die Mathematik sagt aber auch, dass mit zwei Punkten bestenfalls eine 
Gerade definiert ist. Mögliche Nichtlinearitäten fallen dabei 
zwangsweise unter den Tisch.

von dmsfreak (Gast)


Lesenswert?

@Werner: ja, so isses. siehe weiter oben.

von Arc N. (arc)


Lesenswert?

Ovi schrieb:
> gibt es noch andere Möglichkeiten? allgemein: worauf sollte ich noch
> achten, um eine möglichst hohe Genauigkeit und reproduzierbarkeit der
> Messungen zu erzielen?

Kommt drauf an was für ein ADC das ist, was an Schaltung noch davor 
sitzt und - wie schon erwähnt wurde - wie genau und reproduzierbar (in 
welchem Zeitraum -> Langzeitdrift von Widerständen, Spannungsreferenzen 
usw.) das sein muss.

Fehler können abhängig von der Quellimpedanz und/oder Eingangsspannung 
sein, Offsets und Verstärkung ebenso wie Nicht-Linearitäten.
Dazu driftet alles mehr oder weniger stark in Abhängigkeit von 
Lufttemperatur, -Feuchtigkeit und -Druck.
Luftdruck dürfte hier zu vernachlässigen sein, da dieser bei 
Widerständen und Spannungsreferenzen nur im sub-ppm Bereich eine Rolle 
spielt. Bspw. liegt Manganin-Draht bei 0.023 uOhm/Ohm/kPa.
Luftfeuchtigkeit und Temperatur dagegen mit Sicherheit...
Zudem muss auch das Messequipment entsprechend genauer sein, um 
Messunsicherheiten angeben können...

von Pandur S. (jetztnicht)


Lesenswert?

Man sollte sich ueberlegen, was das Ganze bringen soll. Um einen 16bit 
ADC kalibieren zu koennen. muss der Messaufbau, dh Spannungsteiler, plus 
Referenz besser als 10^-5 sein. Das waeren dann 10ppm. Ich bekomm zwar 
eine Referenz mit kleinerer Drift aber nicht mit 10ppm absoluter 
Genauigkeit. Bezahlbar. Widerstaende von 0.01% gibt's noch, aber eher 
teuer. Das waeren dann aber 100ppm, dafuer mit 2ppm/K drift.
Die Nichtlinearitaet eines ADC messen zu wollen macht wenig Sinn.

Also was soll das Ganze?

: Bearbeitet durch User
von Arc N. (arc)


Lesenswert?

Jetzt Nicht schrieb:
> Man sollte sich ueberlegen, was das Ganze bringen soll. Um einen 16bit
> ADC kalibieren zu koennen. muss der Messaufbau, dh Spannungsteiler, plus
> Referenz besser als 10^-5 sein. Das waeren dann 10ppm. Ich bekomm zwar
> eine Referenz mit kleinerer Drift aber nicht mit 10ppm absoluter
> Genauigkeit. Bezahlbar. Widerstaende von 0.01% gibt's noch, aber eher
> teuer.
> Das waeren dann aber 100ppm, dafuer mit 2ppm/K drift.

Wenn die Anforderungen "möglichst hohe Genauigkeit und 
Reproduzierbarkeit" so hoch sind, sollten die Kosten eigentlich keine 
wesentliche Rolle spielen...

> Die Nichtlinearitaet eines ADC messen zu wollen macht wenig Sinn.

Das ist noch ohne teures Equipment machbar z.B.:
High-Performance ADC Linearity Test Using Low-Precision Signals in 
Non-Stationary Environments
http://www.researchgate.net/profile/Degang_Chen/publication/4217671_High-performance_ADC_linearity_test_using_low-precision_signals_in_non-stationary_environments/links/0c96052a2015960eb3000000.pdf
oder
Low-resolution DAC-driven linearity testing of higher resolution ADCs 
using polynomial fitting measurements
http://dl.acm.org/citation.cfm?id=2490376
oder
Testing of High Resolution ADCs using Lower Resolution DACs via 
Iterative
Transfer Function Estimation
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5170452

von Pandur S. (jetztnicht)


Lesenswert?

>Wenn die Anforderungen "möglichst hohe Genauigkeit und
Reproduzierbarkeit" so hoch sind, sollten die Kosten eigentlich keine
wesentliche Rolle spielen...

Ich habe das Gefuehl der Poster hat keine Ahnung was er da machen will. 
Deshalb mein Rat. Der ADC ist sicher gut genug wenn die Referenz gut
genug ist. Die Daten kann man den Datenblaettern entnehmen. Das Geheul 
kommt dann erst wenn der ADC auf den hinteren 4 bit wachelt wo 
eigentlich ein stabiles Bit erwartet wird.

von Simpel (Gast)


Lesenswert?

Bei analogen Sensoren ist es, je nach Anforderung sinnvoll, diese 
zusammen mit dem ADC durch einige Referenzpunkte zu vermessen und ggf. 
additiv (Offset), bzw. multiplikativ, oder algorithmisch (Steigung) zu 
kalibrieren, wenn das erforderlich sein sollte. Man kann das mit 
Konstanten, Formeln, oder LU-Tabellen machen, wobei dann konsequenter 
Weise die gesamte Kette (analoger Sensor, AD, DA, analoger Aktor) 
einbezogen werden muss. Welche Genauigkeit dabei letzlich nötig ist und 
welcher Aufwand dafür noch akzeptabel ist, muss der Entwickler 
abschätzen.
Generell versucht man im µC-Bereich, dort wo es machbar ist, die 
Eingangsgrössen digital zu generieren (z.B. Encoder), zu übertragen, zu 
verarbeiten und ausgeben zu können.

Ansonsten, im Hobby- oder Consumerbereich einfach mal entspannt "5e 
gerade sein lassen" und die Erbsen nur in jenen Lebenssituationen 
zählen, wo es angebracht ist... ;-)

von T506 (Gast)


Lesenswert?

"Ich habe das Gefuehl der Poster hat keine Ahnung was er da machen will. 
"


Wo ist jetzt bitte das Problem?!? Wo beantwortet das bitte die Frage?!

Er fragt wie man ein Eingangssignal Linearisieren kann PUNKT!!

Bisslang gibt es wie bei meinem Threat vor eingien Tagen viel bla bla 
aber keine Brauchbare Hilfe..wie immer..
Wenn man keine Ahnung hat, sollte man wenigstens Verwirrung stiften?! 
oder was?

von Pandur S. (jetztnicht)


Lesenswert?

>Er fragt wie man ein Eingangssignal Linearisieren kann PUNKT!!

Natuerlich kann man. Eine Frage der Anforderungen. Das Messequipment 
muss ein Stueck genauer sein wie der Fehler, den man beheben will, sein. 
Dann misst man soviele Punkte wie man haben moechte und legt zB eine 
Gerade, oder ein Polynom durch.

Wenn ich das genauere Equipment schon habe, kann ich doch gleich dieses 
verwenden... und das Ungenaue stehen lassen...

: Bearbeitet durch User
von T506 (Gast)


Lesenswert?

es geht um das WIE!!!

Völlig wurscht was für Werte!!
Er fragt nur wie man das generell! anstellt!!

Also nach dem Motoo, miss einmal bei Wert 1V dann bei 4V
PAcke diese in ein Array und lasse fdiese Funktion darüber laufen.....

ODer verwende so eine Formel, mit der kann man mit zwei Vorgabe Punkten 
linearisieren!!
oderoderoder!
Lösungsvorschläge werden gesucht sind Gefasel

von Christian L. (cyan)


Lesenswert?

T506 schrieb:
> Wo ist jetzt bitte das Problem?!? Wo beantwortet das bitte die Frage?!
>
> Er fragt wie man ein Eingangssignal Linearisieren kann PUNKT!!
>
> Bisslang gibt es wie bei meinem Threat vor eingien Tagen viel bla bla
> aber keine Brauchbare Hilfe..wie immer..
> Wenn man keine Ahnung hat, sollte man wenigstens Verwirrung stiften?!
> oder was?

Dem TO wurde erklärt, wie man linear eine Fehlerkorrektur machen kann. 
Ihm wurde auch aufgezeigt, wie man Nichtlinearitäten bestimmen und somit 
eliminieren kann. Der TO hat sich aber nicht mehr gemeldet, sodass 
keiner weiß, welche Anforderungen wirklich notwendig sind. Die Fragen 
wurden also soweit es ging beantwortet.

Wo ist also dein Problem? Dass du trotz der Stichwörter und Links in 
deinem, als auch in diesem Thread immer noch nicht in der Lage bist aus 
zwei Punkten eine Gerade aufzustellen, dafür kann hier niemand etwas.

Also halte dich etwas zurück.

: Bearbeitet durch User
von Gerhard (Gast)


Lesenswert?

T506 schrieb:
> Er fragt wie man ein Eingangssignal Linearisieren kann PUNKT!!

Nein, er fragt nach einer Kalibrierung - nicht nach einer 
Linearisierung. Die Linearisierung bekommt man mit 2 Punkten nicht hin.

Wie man das mit der Kalibrierung mach hat Clemens oben schon 
hingeschrieben. Solange der OP nicht erklärt, ob er wirklich den AD oder 
nicht eher die gemessenen Sensorwerte kalibrieren will kommt man hier eh 
nicht weiter.

Gerhard

von Georg (Gast)


Lesenswert?

T506 schrieb:
> Völlig wurscht was für Werte!!

Eine für einen Messtechniker absolut disqualifizierende Aussage.

Georg

von X4U (Gast)


Lesenswert?

Ovi schrieb:
> wie kalibriere ich mein System, um die maximal mögliche Genauigkeit zu erzielen

Die Fragestellung halte ich für falsch. Eine "maximal mögliche 
Genauigkeit" ist faktisch nicht zu erreichen. Alterung, 
Temperatur/Luftfeuchte, Nichtlinearitäten, Störstrahlungen (Handys et 
al.), Spannungsschwankungen, Abkühlung durch Wind, Verschmutzung usw. 
usf. sind nicht in allen Kombinationen überprüfbar.

Anforderungen und Umweltbedingungen werden festgelegt, erst danach 
kannst du kalibrieren.  Dazu gehören dann auch Samplerate, 
Mittelwertbildung etc pp.

Für die Bewertung des dynamischen Verhaltens von 16 Bit A/D Wandlern 
finde ich diese Referenzdesign von AD sehr hilfreich:

http://www.analog.com/en/design-center/reference-designs/hardware-reference-design/circuits-from-the-lab/CN0254.html

von Blatfasel (Gast)


Lesenswert?

T506 schrieb:
> Lösungsvorschläge werden gesucht sind Gefasel

was will uns dieser Satz sagen?

von Bonzzo (Gast)


Lesenswert?

Bevor ich einen 16 ADC umkalibriere verwende ich einen 20 bitter...

von K. L. (Gast)


Lesenswert?

dmsfreak schrieb:
> Wir machen sowas grundsätzlich als Zweipunkt-Justage. Der ADC gibt z. B.
> zwei Spannungen aus, sagen wir 1 V und 9 V,

Dann geht die Linie aber nicht durch den Nullpunkt. Entweder 1-Punkt, 
oder 3-Punkt mit Null.

von Joachim B. (jar)


Lesenswert?

dmsfreak schrieb:
> Wir machen sowas grundsätzlich als Zweipunkt-Justage. Der ADC gibt z. B.
> zwei Spannungen aus, sagen wir 1 V und 9 V, die man mit mit einem
> entsprechend präzisen Multimeter komfortabel messen kann, die
> Justierfaktoren werden errechnet und dann ist das fertig. Details wie
> Nichtlinearität zu berücksichtigen ist zwar theoretisch möglich, man
> muss sich aber überlegen, ob das sinnvoll ist. Wenn du eine
> Linearitätsabweichung von z. B. 1/2048 = 12 Bit brauchst, nimmst du
> einfacher einen 16 Bit Wandler. Das ist deutlich einfacher und unterm
> Strich billiger.

genauso mache ich das auch immer, einfache Geradengleichung

Y= m * X + b

oder man macht eine Tabelle, für jeden Digitalwert eine Spannung 
eintragen

Mittelwertbildung über 8-32 Messungen ist auch kein Fehler wenn die 
Messzeit passt. (für DC oder Batteriemessungen)

PS zum Titel verschenke ich ein "p"

: Bearbeitet durch User
von temp (Gast)


Lesenswert?

X4U schrieb:
> Ovi schrieb:
>> wie kalibriere ich mein System, um die maximal mögliche Genauigkeit zu erzielen

Er will ja nicht die absolute max. Genauigkeit, sondern die max. 
Genauigkeit seines Systems. Mit anderen Worten, er will das was er 
aufgebaut hat so gut kalibrieren wie es sein Aufbau eben her gibt. Da 
reicht u.U. ein 4stelliges Multimeter.

von Joachim B. (jar)


Lesenswert?

temp schrieb:
> Da
> reicht u.U. ein 4stelliges Multimeter.

bei 16 Bit? eher nehme ich lieber ein 6,5-stelliges.

von dmsfreak (Gast)


Lesenswert?

Klaus L, wie kommst du auf dieses schmale Brett? Warum soll die Gerade 
nicht durch Null gehen? Du meinst möglicherweise, dass man bei 0 V eine 
etwas höhere Messunsicherheit hat, das kann sein. Kann man leicht 
ausrechnen.

Aber: Die wenigsten Leute interessieren sich für einen Spannungsgeber 
von fast 0 V. Und die wenigen, die das brauchen, z. B. zur 
Thermoelement-Simulation, bauen Geräte mit einem Spannungsteiler nach 
dem DAC. Und absolut 0 V geben sollte nicht zu schwer sein. Das geht 
sogar ohne DAC. :-)

Den Fall fast 0 V messen möchte ich hier nicht weiter vertiefen, das 
geht zu weit.

von K. L. (Gast)


Lesenswert?

dmsfreak schrieb:
> laus L, wie kommst du auf dieses schmale Brett? Warum soll die Gerade
> nicht durch Null gehen?

Weil man dann nur einen Punkt benötigt. Nimmst Du aber zwei ins Boot, 
dann unterstellst Du, dass sie das nicht tut. 2 Punkte sind aber nötig, 
um die Steilheit vieler Systeme im Arbeitspunkt abzubilden. Um das 
Problem zu lösen, nutzen viele die abschnittsweise Geradenbildung. 
Sauberer geht es dann mit einer Xhoch2 und Xhoch3.

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.