Forum: Mikrocontroller und Digitale Elektronik AVR ADC: Null-Offset nach Messung von AVCC höher!?


von Ralf J. (ralfjahns)


Lesenswert?

Hallo,


ich lese zyklisch den ADC und gebe den Wert auf dem UART aus.
Wenn ich den ADC-Eingang auf GND lege und den AVR einschalte, lese ich 
irgendeinen Wert zwischen 4 und 6.
Verbinde ich den ADC-Eingang dann mit AVCC kommen Werte um 1020.
Verbinde ich danach wieder mit GND, kommen Werte um 20.
Ich habe jeweils mehrere Minuten gewartet, die Werte bleiben stabil.
Das ist hier vollkommen reproduzierbar.

Nach Aus- und Einschalten der Versorgungsspannung (nur ein paar 
Sekunden, keine Abkühlung oder so) lese ich bei GND wieder Werte um 5.

Kann das jemand bestätigen bzw. erklären?


Gruß
Ralf Jahns

von Oldie (Gast)


Lesenswert?

Interessant!    -    Haste 'ne Schaltung?

Bitte komplett, inklusive der umgesteckten Verbindungen
nach VCC, GND und AGND, AVCC

von MWS (Gast)


Lesenswert?

Ralf Jahns schrieb:
> Das ist hier vollkommen reproduzierbar.

Dann ist da wo hier ist der Wurm drin.
Ist der ADC auf single ended, dann ist bei ADC Eingang auf GND der Wert 
nicht 4 oder 6 oder 20, sonder 0.

von Ralf J. (ralfjahns)


Lesenswert?

Hallo,


zum Thema Schaltplan:

Arduino China-Clone auf Steckbrett (ohne Arduino-SW). 
Spannungsversorgung über USB vom PC. Drahtbrücke zwischen ADC-Eingang 0 
und den erwähnten Spannungen.


Gruß
Ralf Jahns

von Ralf J. (ralfjahns)


Lesenswert?

Hallo,


> Dann ist da wo hier ist der Wurm drin.
> Ist der ADC auf single ended, dann ist bei ADC Eingang auf GND der Wert
> nicht 4 oder 6 oder 20, sonder 0.

Falls das Deine Erfahrung sein sollte, dann ist das genau so eine 
Information wie ich sie suche.

Ansonsten frage ich mich, warum Atmel extra eine Application Note 
rausgibt, in der detailliert beschrieben wird, wie man den 
ADC-Offsetfehler korrigieren kann AVR120 
www.atmel.com/images/doc2559.pdf


Gruß
Ralf Jahns

von test (Gast)


Lesenswert?

Ralf Jahns schrieb:
> Kann das jemand bestätigen bzw. erklären?

Bei GND muß 0 gemessen werden.

Vielleicht ist ja bei einem echten Arduino ein Schaltplan zu finden und 
um den Stckbrettaufbau zu erweitern? Steckbretter haben oft miese 
Übergangswiderstände. Vielleicht weißt du ja auch nicht, welchen der 
vielen Arduinos/Arduino Clones du hast?

von M. K. (sylaina)


Lesenswert?

Definitiv ein Kontakt-Problem. Wie schon gesagt wurde: Misst man das 
Bezugspotential muss da immer 0 raus kommen und bei meinen Aufbauten kam 
da bisher auch immer 0 raus. Da koppelt sich wahrscheinlich irgend etwas 
ein auf die "Messleitung"

von John D. (Gast)


Lesenswert?

Ralf Jahns schrieb:
>
> Ansonsten frage ich mich, warum Atmel extra eine Application Note
> rausgibt, in der detailliert beschrieben wird, wie man den
> ADC-Offsetfehler korrigieren kann AVR120
> www.atmel.com/images/doc2559.pdf

Da werden doch nur die Standard-Fehler von ADC behandelt (Offset, Gain, 
Linearität, etc.), nicht das Problem des TE.

von MWS (Gast)


Lesenswert?

Ralf Jahns schrieb:
> Ansonsten frage ich mich, warum Atmel extra eine Application Note
> rausgibt, in der detailliert beschrieben wird, wie man den
> ADC-Offsetfehler korrigieren kann AVR120
> www.atmel.com/images/doc2559.pdf

Damit eben auch diese Möglichkeit berücksichtigt ist. Du wirst auch 
bemerkt haben, dass in den angeführten Beispielen von 1,5 LSB die Rede 
ist, wobei in einem der Fälle immer noch 0 kommt, obwohl schon eine 
geringe Spannung anliegt.

Dann zeig' mal Deinen Testcode, evtl. findet man dann was raus, 
vielleicht Prescaler zu klein. Schließ' auch ein Multimeter parallel zum 
Pin an, damit Du Kontaktprobleme ausschließen kannst.

Dir muss klar sein, dass bei Dir was schief läuft, denn nach dem 
beschriebenen Verhalten wäre der ADC unbrauchbar. Die Wahrscheinlichkeit 
ist einfach viel höher, dass ein User Fehler macht, als dass 
unbrauchbare Chips Atmel verlassen.

Andererseits - vielleicht hast Du einen Arduino-China-Clone mit einem 
Atmel-AVR-Clone ;D

Und nenn' doch auch die genaue Arduino HW, damit man sich den Schaltplan 
ansehen kann.

von Ralf J. (ralfjahns)


Lesenswert?

Hallo,


> Dir muss klar sein, dass bei Dir was schief läuft

Alles klar, hab' ich verstanden.

> Und nenn' doch auch die genaue Arduino HW, damit man sich den Schaltplan
> ansehen kann.

Es ist ein Arduino Nano Clone mit ATMega 328P, der RS232<->USB-Umsetzer 
ist ein FTDI (wobei das bei dem Preis von dem Board wohl auch ein Clone 
sein muß).

Ich werde heute abend mal ein bißchen messen. Weiteres danach.


Gruß
Ralf Jahns

von Bernd K. (prof7bit)


Lesenswert?

GND ist nicht immer gleich GND, vor allem nicht auf dem Steckbrett! Hast 
Du vielleicht noch ein paar andere Verbraucher dort, schaltest Du evtl 
eine LED zwischen zwei Messungen oder dergleichen? Nimm doch mal zum 
Spaß testweise den GND-Anschluss auf der anderen Seite des Arduino. Ich 
hab da schon lustige Sachen erlebt was Ground-Bounce-Probleme und 
Arduino angeht und mit Teilen der Schaltung auf dem Steckbrett erst 
recht.

von F. F. (foldi)


Lesenswert?

99% Steckbrettprobleme. Und die Dinger werden immer schlechter, egal 
woher du die kaufst. Nimm Lochraster!
Zum testen, ob es grundsätzlich klappt, dafür kann man sie ja nehmen, 
aber wenn es da um Offset geht, dann ist das der falsche Aufbau.

Sind ganz spannende Sachen zu beobachten, wenn man sich in die OpAmps 
rein arbeiten will.

von Conny P. (conny_phi)


Lesenswert?

Einen ähnlichen Effekt wie den beschriebenen habe ich im Zusammenhang 
mit einem gleitenden exponentiellen Mittelwert gesehen.

Gibst Du die ADC Werte direkt aus, oder passiert vorher eine Rechnung 
wie z.B. Mittelung?

von Ralf J. (ralfjahns)


Lesenswert?

Hallo,


vielen Dank für Eure Hilfe. Es ist tatsächlich das Steckbrett.
Die Erfahrung hatte ich noch nicht gemacht, normalerweise wird bei mir 
immer alles irgendwie zusammengelötet (selten Lochraster, meistens 
geätzte Platine).
Wenn ich die Drahtbrücke am ADC-Eingang 0 im Steckbrett stecken lasse 
und mit dem anderen Ende direkt die GND und 5V Arduino-Pins berühre, 
kommen auch vernünftige Werte (0 bzw. 1023).


Gruß
Ralf Jahns

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.