Guten Abend, ich habe bereits die Suchfunktion genutzt, bin aber so allgemein nicht auf eine Antwort gestoßen. Zur Situation: Ich habe einen ATmega 2560 in verwendung. Genutzt wird der interne ADC (10Bit) zur analogen einer Analogen Spannung (Ursprünglich 0-10V, wurde aber über einen Spannungsteiler aus Messwiderständen(0,1%) 2 x 680_Ohm auf 0-5V reduziert. Die Referenzspannung AREF=Beträgt 5,00V (abgelichen über Wendelpotentiometer). Ich habe nun über ein Labornetzteil den ADC mit einer Spannung in 0,1V schritten beaufschlagt um die Genauigkeit zu überprüfen. Der Wert errechnet ich wie folgt: U=(ADC_Value*1024)/AREF Leider kommt es grade im unteren Bereich zu erhöhten Abweichungen (Siehe Bild). Welche Gründe gibt es dafür ? Linearitätsfehler und Quantisierungsfehler sind ja bekannt, nur verstehe ich nicht warum es grade im unteren Bereich zu so hohen Abweichungen kommt. Im Oberen Bereich ist hingegen alles in Ordnung. Mfg Robert
Hallo, hier solltest Du noch mal das Datenblatt lesen und überlegen was falsch ist: U=(ADC_Value*1024)/AREF Stichwort Dreisatz Uinp / Aref = ADC_Value / 1024 Dann gibt es viele kleine Application Notes die die unterschiedlichen ADC Messfehler und deren Abgleich aufzeigen.
Was für ein Labornetzteil verwendest du, bzw. wie genau ist das in dem niedrigen Bereich? Ich habe jetzt nicht nachgesehen, was für den ATmega spezifiziert ist, aber ich würde die Fehlerquelle eher beim Labornetzteil suchen. Du solltest auf jeden Fall mal die Ausgangsspannung des Labornetzteils mit einem Multimeter nachmessen. Das dürfte in der Regel genauer sein, als die Anzeige auf dem Netzteil.
Robert schrieb: > grade im unteren Bereich zu erhöhten Abweichungen Robert schrieb: > verstehe > ich nicht warum es grade im unteren Bereich zu so hohen Abweichungen > kommt Was willst du? Wenn der Absolutfehler gleich bleibt wird der Relativfehler nach unten grösser! Völlig normal!
Hey sorry für den Fehler in der Berechnung, da habe ich den Aref mit der Auflösung vertauscht. Ich Berechne wie folgt: U=(ADC_Value*AREF)/1024 Zum Labornetzteil: Es handelt sich nicht um ein Präzisionsnetzteil. Ich habe den jeweiligen Spannungswert mit einem kalibrierten Messgerät beim einstellen überprüft. Grund war - wie Ihr bereits gesagt habt - das die Anzeige vom Labornetzteil zu ungenau ist. Es kann also das Labornetzteil als Fehlerquelle ausgeschlossen werden. Karl M. schrieb: > Dann gibt es viele kleine Application Notes die die unterschiedlichen > ADC Messfehler und deren Abgleich aufzeigen. Kannst du mir das ein bisschen auf die Sprünge helfen? Welche Faktoren spielen in die Abweichung mit rein? Gibt es eine Möglichkeit den Messfehler rechnerisch zu erfassen um diesen dann bei der Berechnung der gemessenen Spannung mit einzubeziehen?
Robert schrieb: > abweichung.JPG Du gibst eine relative Abweichung an, sagst aber gar nicht, worauf du dich dabei beziehst. Der Messfehler setzt sich aus einem relativen Fehler bezogen auf den Messwert und einem relative Fehler bezogen auf den Messbereich zusammen.
Das ist entweder Sättigung (z.B. Output Headroom bei Rail2Rail OPV) oder ein Offset. Musst du selber kucken. Kann man mit einem Multimeter leicht nachvollziehen - miss die Messkette durch. Beim INA138 sieht die Strommessgenauigkeit "unten raus" z.B. exakt so aus.
Robert schrieb: > Leider kommt es grade im unteren Bereich zu erhöhten Abweichungen (Siehe > Bild). Welche Gründe gibt es dafür ? Die falsche Formel. Den Fehler berechnet man immer bezogen auf den Endwert des ADC.
Robert schrieb: > Die Referenzspannung AREF=Beträgt 5,00V (abgelichen über > Wendelpotentiometer). Wie garantierst du, dass Vcc und AVcc dauerhaft gleich/größer als Aref bleiben? -------- Ich würde ja die interne Referenz verwenden. Der ATMega2560 hat derer gar zwei. Die sind vielleicht nicht sonderlich genau (10% ?), aber dafür viel stabiler als es eine typische Stromversorgung im Feld je sein wird.
Robert, das ein Relativer Fehler bei Messwert 0 keinen Sinn macht, und bei Werten nahe 0 recht wenig, wurde ja schon gesagt. Um wirklich etwas aus diesem Thread zu lernen, wäre es sinnvoll, Deine originalen Messergebnisse (keine umgerechneten) hier in einer Tabelle zu zeigen, z.B.: ADC, Multimeter 1, 0.0V 17, 0,1V 22, 0,2V .... Dann ist es leichter, daran die grundlegenden Konzepte von Fehlern, Kalibrierung, Linearität etc zu zeigen.
Hmm schrieb: > Beim INA138 sieht die Strommessgenauigkeit > "unten raus" z.B. exakt so aus. Ja, und beim INA219 bekomme ich kurz über Null keine sinnvollen Spannungswerte heraus - nennt sich ja auch "High-Side-Sensor". Peter D. schrieb: > Den Fehler berechnet man immer bezogen auf den Endwert des ADC. Die graphische Darstellung ist einfach unglücklich. Ich würde horizontal die Spannung und vertikal den ADC-Wert 0..1024) einsetzen, dann muß nicht über die Berechnungsmethode gestritten werden.
Weiter gehts: Bis hier hin erstmal vielen Dank für die ganzen Anregungen. Entschuldigt bitte, ich bin grad am Anfang meiner Erfahrungen was µCs angeht. Ich gebe mein bestes um so nah wie möglich euren Ansprüchen gerecht zu werden ;) Grundsätzlich habe ich nicht vorgehabt ein hochgenaues Messgerät zu bauen, ich suche lediglich eine logische Erklärung warum der ADW grade im unteren Bereich eine hohe Abweichung hat (damit meine ich nicht 0V, sondern zum Bsp. die Abweichung zwischen 1V und 2V). Arduino F. schrieb: > Wie garantierst du, dass Vcc und AVcc dauerhaft gleich/größer als Aref > bleiben? Die VREF habe ich mit einem kalbrierten Messgerät bei eingeschalteten µC eingestellt. Zusätzlich habe ich den AREF-Eingang mit 10nF stabilisiert. Ist natürlich keine hochgenaue Referenz. sollte aber meiner Meinung nach durchaus reichen. Die Interne Referenz habe ich grade wegen der nicht feststellbaren Abweichung nicht verwendet. Achim S. schrieb: > Um wirklich etwas aus diesem Thread zu lernen, wäre es sinnvoll, Deine > originalen Messergebnisse (keine umgerechneten) hier in einer Tabelle zu > zeigen, z.B.: Wird gemacht: Hab da ein Bild gepostet! Wolfgang schrieb: > Du gibst eine relative Abweichung an, sagst aber gar nicht, worauf du > dich dabei beziehst. Der Messfehler setzt sich aus einem relativen > Fehler bezogen auf den Messwert und einem relative Fehler bezogen auf > den Messbereich zusammen. Ich habe wie folgt gerechnet: Rel_Abw=100-((U_Ausgabe/U_Labornetzteil)*100%) Ist diese Vorgehensweise also Falsch? ich habe mich hier nicht auf den voll Messbereich bezogen. Wie ist hier die korrekte vorgehensweise ? Die Absolute Abweichung habe ich mir nun nach recherge im Datenblatt so vorgestellt: Abweichung angegeben laut DB=+-2LSB Absl_abw=±2*5V/1024=±9,766mV≈±10mV Ist diese vorgehenswiese korrekt ? Oder muss ich noch mehr berücksichtigen ?
Hier die versprochnen Bilder
Für mich sieht die Abweichung im unteren Bereich nach schlechter Verdrahtung aus.
Robert schrieb: > Arduino F. schrieb: >> Wie garantierst du, dass Vcc und AVcc dauerhaft gleich/größer als Aref >> bleiben? > > Die VREF habe ich mit einem kalbrierten Messgerät bei eingeschalteten µC > eingestellt. Zusätzlich habe ich den AREF-Eingang mit 10nF stabilisiert. > Ist natürlich keine hochgenaue Referenz. sollte aber meiner Meinung nach > durchaus reichen. Die Interne Referenz habe ich grade wegen der nicht > feststellbaren Abweichung nicht verwendet. Auch wenn es für dein konkretes Problem nicht relevant ist.... Du hast mich nicht verstanden! Meine Frage nochmal etwas klarer: Wie stellst du sicher dass Vcc >= Aref ist und auch dauerhaft so bleibt? Robert schrieb: > Die Interne Referenz habe ich grade wegen der nicht > feststellbaren Abweichung nicht verwendet. Die Abweichung ist sehr wohl feststellbar z.B.: > mit einem kalbrierten Messgerät
Wie sieht eigentlich das Progamm aus? ADC noise reduction mode?
Manfred schrieb: > Die graphische Darstellung ist einfach unglücklich. Ich würde horizontal > die Spannung und vertikal den ADC-Wert 0..1024) einsetzen, dann muß > nicht über die Berechnungsmethode gestritten werden. Damit wird es auch nicht viel besser. Du bekommst eine diagonal durch den Graph verlaufende Linie und musst mit der Lupe die Abweichung zur idealen Geraden suchen. Die Y-Skalierung wird erheblich günstiger - weil weiter "aufgerissen" - wenn man vertikal nicht die ADC-Werte, sondern die Abweichung der ADC-Wert vom Idealwert darstellt. Robert schrieb: > werte.JPG Meinst du, irgend jemand hat Lust, die Werte abzutippen, um einen aussagekräftigen Graph daraus zu basteln? Wie wäre es mit einer ASCII-Datei, z.B. als Anhang?
Arduino F. schrieb: > Meine Frage nochmal etwas klarer: > Wie stellst du sicher dass Vcc >= Aref ist und auch dauerhaft so bleibt? Die Eingangsspannung des µCs ist 5V. Bereitgestellt wird diese über einen Schaltregler 12V/5V 1A. Weitere Vorkehrungen habe ich nicht getroffen. Welche Möglichkeiten nimmst du da in betracht? Ich habe aus dem Datenblatt des µCs entnommen, das AREF nicht größer werden darf als Vcc. Sehe ich das richtig? Wolfgang schrieb: > Meinst du, irgend jemand hat Lust, die Werte abzutippen, um einen > aussagekräftigen Graph daraus zu basteln? Wie wäre es mit einer > ASCII-Datei, z.B. als Anhang? Entschuldige bitte, soweit habe ich nicht gedacht. Ich hänge die Werte noch mal als ASCII an. Vielen Dank für euer Engagement.
Anbei noch mal die Werte direkt am AD-Eingang (hinter dem Spannungsteiler) gemessen. (0-5V) Gruß
> Schaltregler
Ist vielleicht zum Ausprobieren ein Linearregler zur Hand?
Der GND-Pegel des ATmega2560 scheint gegenüber dem GND der Signalquelle (des Labornetzgeräts) um ca. 0,2V zu hoch zu liegen. Hast du alle 5 GND-Pins des ATmega2560 angeschlossen, insbesondere auch Pin 99? Miss auf jeden Fall mal die Spannung zwischen Pin 99 und dem GND des Labornetzgeräts. Vielleicht gibt es auch irgendwo ein Kontaktproblem.
WIrd gemacht, ich werde berichten!
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.