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?
Moeglichst hohe Genauigeit ? Welche Genauigkeit ? Wozu ? Ich kalibriere nie einem ADC, sondern einen Sensor dran.
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.
" 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 :-(
Die Mathematik entspricht der Definition einer Geraden durch zwei Punkte. http://de.wikipedia.org/wiki/Zweipunkteform x entspricht den LSB, y entspricht U
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:
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.
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...
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
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
>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.
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... ;-)
"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?
>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
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
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
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
T506 schrieb: > Völlig wurscht was für Werte!! Eine für einen Messtechniker absolut disqualifizierende Aussage. Georg
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
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.
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
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.
temp schrieb: > Da > reicht u.U. ein 4stelliges Multimeter. bei 16 Bit? eher nehme ich lieber ein 6,5-stelliges.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.