Forum: Mikrocontroller und Digitale Elektronik ADC Spannungsdrift bei Xmega


von Fabian T. (fabtrie)


Lesenswert?

Hallo,

Ich benutze eine Atxmega128A3 und möchte den ADC verwenden.

Leider bekomme ich einfach nicht den richtigen Wert. Ich habe immer 
einen Spannungsdrift. Ich habe alle Modi durchprobiert und auch alle 
Referenzen probiert. Bei 0 V stimmt es noch. Wenn ich aber 1.6 V bei 
einer Referenz von 3.3 V messe, dann erhalte ich 1.9 Volt. Ich habe es 
auch mit einer Referenz von 1.8 V probiert und den "scaled vcc" gemessen 
und erhalte 0.387 V bei 3.3 V VCC. Egal was ich probiere, ich habe immer 
einen Drift von 10-20%.

Es scheint allerdings mit der internen 1 V Referenz zu funktionieren.

leider habe ich auch nicht in den errata oder im Handbuch gefunden.

ich hoffe ihr könnt mir helfen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

http://blog.frankvh.com/2010/01/03/atmel-xmega-adc-problems-solutions/

Google hilft mal wieder... auch fuer solche, die zu faul sind.

von Christoph (Gast)


Lesenswert?

3.3V als Referenz sind schonmal zu viel, lt. Datenblatt darf die 
Referenzspannung maximal Vcc-0.6V betragen. Ausserdem hast Du im 
unsigned mode generell nochmal ein Spannungsoffset in deinem Ergebnis.

Von daher würde ich zum testen erstmal die Referenzspannung auf unter 
2.7V schrauben, die Samplerate bewusst niedrig wählen (siehe Errata) und 
im signed mode messen.

Und noch eins: Kalibrierung mit den Werten aus der Production Signature 
Row hast Du gemacht?

von Fabian T. (fabtrie)


Lesenswert?

ich habe die Kalibrierung gemacht, aber bringt eh nix bei so einer 
enormen Abweichung. das Problem besteht ja nicht nur bei 3.3 V sondern 
aich wenn ich VCC/1.6 benutze (ich habe auch extern mal 1.8 V angelegt). 
Außerdem habe ich signed und unsigned mode probiert und das hilft alles 
nicht. Es handelt sich zudem nicht um einen Offset, sondern um einen 
linear ansteigenden Fehler. Bei 0 V ist ja alles richtig und wird immer 
schlimmer wenn die Spannung steigt.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hast den Artikel gelesen?

    * Use Differential mode / differential inputs. Tie an external ADC 
pin to GND if necessary.
    * Use either VCC/1.6, or an external reference voltage, for the ADC 
reference. Not the internal 1.00V. Use the ADC to measure the bandgap if 
that helps.
    * Use signed mode.
    * Consider using a 62 kHz ADC sampling rate.
    * Consider assuming the ADC offset is zero.
    * Average multiple ADC measurements (and clip if it makes sense in 
your application)


Wenn Du das alles (richtig) machst solltest nen brauchbares Ergebnis 
erhalten.

von Fabian T. (fabtrie)


Lesenswert?

ich weiß nicht was ich geändert habe, aber anscheinend funktioniert es 
jetzt. Problem ist, das ich keine vernünftige externe Referenz habe.

Dennoch danke für eure super Hilfe. Ist ein klasse Forum!

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.