Ich habe alle 8 Kanäle eines ADC (AD7609, 18bit Auflösung) verbunden und
speise eine Spannung von exakt 10,0mV ein.
Nun liefern mir die Kanäle aber unterschiedliche Werte (zusätzlich auch
noch eine unterschiedlich große Schwankung - manche wackeln um +-1LSB,
andere um +-2LSB).
Woher kommen diese unterschiedlichen Offsets?
Jetzt wollte ich den Fehler in Software auskorrigieren, aber leider ist
der Fehler nicht konstant, ich habe z.B. noch eine Testreihe mit 900mV
aufgenommen, da sieht das Bild dann wieder etwas anders aus. Ein fester
Offset lässt sich also nicht einprogrammieren!
Was macht man denn in solchen Fällen?
Mir ist klar, dass die gemessende Spannung bereits sehr klein ist, aber
da mit dem ADC Sensoren sehr genau ausgelesen und verglichen werden
sollen steht die Anforderung, dass die Messung auf wenigstens 150µV
genau sein sollte.
Lässt sich das eurer Meinung nach sicher korrigieren?
EGSler schrieb:> Achso, Grafik hab ich vergessen.
Empfindest du nicht, daß es da ein paar Sätze der Erläuterung braucht.
Ich gebe zu, ich habe angefangen das Ding verstehen zu wollen, aber wozu
die Mühe, wenn ein paar Worte von dir das erheblich verkürzen würden?
Oh, welche Info fehlt?
Also, wie gesagt, 10mV lagen an, y-Achse zeigt die Spannung. Unten ist
der Zeitstempel, gemessen wurde alle 100ms (aber das spielt ja hier kaum
eine Rolle).
Die Grafik sollte nur veranschaulichen, in welchem Maße die einzelnen
Kanäle voneinander abweichen.
Was ich im vorigen Tread
Beitrag "Range des AD7609 (AD-Wandler)"
schon geschrieben hab.
Lies das Datenblatt!
In dem Abschnitt "DC ACCURACY" ist längst nicht alles auf 0(NULL).
Dir ist klar, dass bei solchen geforderten Genauigkeiten das Layout eine
entscheidende Rolle spielt?! Ganz nebenbei scheinst du dir ein
periodisches Signal einzufangen, wo auch immer das herkommt.
Wie sieht denn deine Filterbeschaltung bzw. überhaupt deine Schaltung
aus?
EGSler schrieb:> Lässt sich das eurer Meinung nach sicher korrigieren?
Nein.
Schau ins Datenblatt. Die Infos unter DC Accuracy sollten deine Fragen
beantworten.
Merkwürdig finde ich aber die Angabe +-10LSB total unadjusted error. Da
liegen jede Menge Einzelfehler schon über den 10 LSB.
Max Mustermann schrieb:> Lies das Datenblatt!> In dem Abschnitt "DC ACCURACY" ist längst nicht alles auf 0(NULL).
Ja, soweit ist das klar, das habe ich durchaus gelesen.
Aber ich bin bisher davon ausgegangen, dass das ein fester Fehler sein
wird, den man problemlos über einen Offset (entweder fix oder
prozentual) rausrechnen kann.
Aber wenn sich der Fehler ändert, dann steh ich auf dem Schlauch, wie
ich die Kanäle auf ein vergleichbares Niveau bekommen kann ;/
@Ingo Less
Ja, die Periodizität kann ich mir nicht wirklich erklären, da sie eine
Periodendauer von ~4s hat. Ein 0,25Hz Signal kann mir schlecht durch
andere Geräte einstreuen, oder?
Sicher spielt das Layout eine große Rolle, aber da alle Kanäle ziehmlich
gleich angeschlossen sind, hatte ich dann auch einen identischen (durch
den Aufbau bestimmten) Fehler erwartet. Filterschaltungen kommen keine
zum Einsatz, da ich das Signal nicht unnötig belasten und gleichzeitig
mit 10Hz messen wollte.
EGSler schrieb:> Ja, die Periodizität kann ich mir nicht wirklich erklären, da sie eine> Periodendauer von ~4s hat. Ein 0,25Hz Signal kann mir schlecht durch> andere Geräte einstreuen, oder?> gemessen wurde alle 100ms
damit kann die Frequenz aber auch viel höher sein und du sieht nur
irgendwelche alias Effekte. Miss mal jede ms.
EGSler schrieb:> davon ausgegangen, dass das ein fester Fehler sein> wird, den man problemlos über einen Offset (entweder fix oder> prozentual) rausrechnen kann
Ja glaubst du den dass deine 8 Messfühler keine 8 unterschiedlichen
Nullpunktfehle/Steigungsfehler/Nichtlinearitäten/Temperaturdrift/Langzei
tdrift.... haben?
18 Bit ist schon eine höhere Liega!
(18^2=262144!)
EGSler schrieb:> manche wackeln um +-1LSB,> andere um +-2LSB).
Na und? Im DC Accuracy Abschnitt des Datenblatts gibt es je nach
Messbereich Schwankungen von +-140 LSB.
wie hoch ist denn deine Spannunsgauflösung, das hängt ja von deiner
Referenz des ADC ab.
Deine Graphic verstehe ich da auch nicht wirklich, die y-Achse ist mit
Spannung [ mV ] , oder? dann sprichst du wieder von LSB, da hättest du
allerdings direkt die realen counts angeben können.
Beim genauen Messen ist eben ausschließlich wichtig, dass man die
Messungenauigkeiten und Drifts kennt, sonst hat man zwr ein Ergebnis,
aber eine Aussage lässt sich damit nur schwer treffen.
Uff, das ist ja auswertungstechnisch doch deutlich anspruchsvoller als
ich erwartet hatte. Da muss ich mir dann nochmal was überlegen, bzw.
mich intensiver einlesen. Ich hatte gehofft, das wäre eine einfache
Softwarekorrektur für alle Kanäle und schon wäre das Problem gelöst.
Naja, wieder was gelernt.
Ich begeb mich mal auf die Suche nach verständlicher Literatur...
sdg schrieb:> Deine Graphic verstehe ich da auch nicht wirklich, die y-Achse ist mit> Spannung [ mV ] , oder? dann sprichst du wieder von LSB, da hättest du> allerdings direkt die realen counts angeben können.
Die Auflösung beträgt 75µV, daher kann man in der Grafik, trotz Skala in
mV, ganz gut die einzelnen vertikalen Schritte erkennen.
EGSler schrieb:> Uff, das ist ja auswertungstechnisch doch deutlich anspruchsvoller als> ich erwartet hatte.
Was liefern den deine Sensoren an GENAUIGKEIT?
Nur weil der Hersteller 18 Bit empfiehlt heißt es noch lange nicht, dass
die Sensoren auch nur annähernd 18 Bit Genauigkeit liefern.
> Nun liefern mir die Kanäle aber unterschiedliche Werte ...> manche wackeln um +-1LSB, andere um +-2LSB
Das ist völlig normal. Bei einem 18bit Wandler hätte ich sogar mehr
erwartet.
EGSler schrieb:> Die Auflösung beträgt 75µV
2^18bit * 75µV = 19.608 V
Ich lese jetzt deine Datenblätter nicht, und deine Spezifikationen hast
du ja zum Glück auch nicht angegeben :)
Ich kennen keinen ADC der 20 V Refernezspg hat oder kann, aber ich kenne
ja auch nur meine kleine Elektronikwelt und lasse mich gerne belehren.
Schau dir mal lieber direkt die ADC counts an, ADC counts ist das einzig
reale, sobald du ne Umrechnung in Volt vornimmst, hast du schon wieder
einen ( wenn auch kleinen ) Umrechnungsfehler drin und soweiter.
Mach dir mal ein Bild von deinem Gesamtsystem, und den realen Größen,
dein ADC rechnet digital nämlich mit counts und da gibt es keine
Spannungen mehr, sei dir immer bewusst welche Größen und Fehler dadurch
auftreten können.
18bit ADC heisst ja sowieso nicht, dass du real 18bit Auflösung hast,
bedingt durch physikalisches Grundrauschen kommst du da schon nicht hin,
thermische Sachen usw...
Wie willst du denn messen, max zu messende Spg. minimale Auflösung usw.
dann könnte ja sein dass du am Ende garnicht sogenau messen musst und
dir deine Abweichung eigentlich egal sein kann, oder eben auch nicht,
aber das musst du wissen.
EGSler schrieb:> Ich hatte gehofft, das wäre eine einfache> Softwarekorrektur für alle Kanäle und schon wäre das Problem gelöst.
Das gilt nur, wenn Du den AD-Wandler innerhalb eines Simulations-
programms aufbaust. :-)
sdg schrieb:> 2^18bit * 75µV = 19.608 V>> Ich lese jetzt deine Datenblätter nicht, und deine Spezifikationen hast> du ja zum Glück auch nicht angegeben :)
Hatten wir in einem vorherigen Tread.
Beitrag "Range des AD7609 (AD-Wandler)"
"Im 10V-Modus darf die max. Spannung an den Eingängen (bezogen auf AGND)
+-10V betragen.
Die Differenzspannung an den Eingängen darf max. +-20V betragen.
Wenn du das Bezugspotential für deine Messschaltung auf -10V legst und
mit dem V- Eingang verbindest hast du am V+ Eingang einen Messbereich
von 0V - +19,9992V zur verfügung. Was einem Wertebereich von 0x00000 bis
0x1FFFF entspricht"
Ich hab mal eine Messung alle 3ms aufgenommen, schneller schafft meine
Software leider nicht. Und links die Skala ist mir entglitten, das sind
natürlich nach wie vor mV.
Die großen Schwingungen von den Messungen mit 10Hz sind nicht mehr zu
sehen...
Jetzt Nicht schrieb:> Das schaut doch super aus. Was soll daran nicht gut sein?
Find ich auch. Der Offset zwischen den Kanälen war über die Messungen
auch sehr schön konstant.
Da lässt sich in der Software dann was machen. (Gain-Abweichung noch
prüfen)
Musst aber halt immer wieder prüfen und ggf. nachjustieren. Man hofft
halt, dass die Abweichungen relativ gleich bleiben. Garantiert ist aber
nichts.
EGSler schrieb:> sdg schrieb:>> Deine Graphic verstehe ich da auch nicht wirklich, die y-Achse ist mit>> Spannung [ mV ] , oder? dann sprichst du wieder von LSB, da hättest du>> allerdings direkt die realen counts angeben können.>> Die Auflösung beträgt 75µV, daher kann man in der Grafik, trotz Skala in> mV, ganz gut die einzelnen vertikalen Schritte erkennen.
75 uV bei einem Bipolar Zero Code Error Matching von typ 13 LSB max 65
und einem Positive Full-Scale Error Matching von typ 40 LSB und max 100
LSB.
10 mV liegen nahe bei 0 V d.h. der erstgenannte Fehler kann schon zw. 13
bis 65 LSB * 75 uV = 975 uV bis 4875 uV liegen... D.h. die Messungen
passen gut zu den Angaben im Datenblatt...
Andere Fehler durch die geringe Eingangsimpedanz (1 MOhm) und die hohen
Eingangsströme (2.5 uA typ) kommen da noch hinzu.
SNR liegt bei 100 dB typisch (fin = 160 Hz) d.h. ENOB = (SNR - 1.76) /
6.02 etwa 16.32 Bits. Beim SINAD sind es ohne Oversampling etwa 14.66
Bits. Passt also vom Rauschen auch...