Forum: Mikrocontroller und Digitale Elektronik XMega ADC fehlerhaft?


von Knut (Gast)


Lesenswert?

Hi,

ich habe hier ein Phänomen das ich mir nicht erklären kann.
Ich messe mit einem Xmega128A3 nacheinander alle ADC-Kanäle.

Funktioniert auch, bis auf das ich an 4 Kanälen von ADC-A einen Offset 
von ca 1500 bei 2,5V Referenz habe. Die Eingangsbeschaltung ist bei 
allen Kanälen gleich. Dieser Offset wird geringer (160) wenn ich ihn 
"hart" auf GND lege. Hatte jemand schonmal ein ähnliches Problem? Bei 
allen anderen Kanälen messe ich durchaus 0 wenn ich den Kanal auf GND 
lege.

Controller habe ich schonmal getauscht, ohne Änderung.
Layout habe ich bereits überprüft.
Ich habe das Gefühl es liegt am Controller...


Gruß Knut

von Knut (Gast)


Lesenswert?

Keiner ne Idee?

von Heiko V. (xmegaman)


Lesenswert?

Hallo Knut,

der Xmega-ADC ist so designt, dass man (single-ended) sogar 'unter' GND 
messen kann! Der Offset von 160 ist also genau so zu erwarten 
(Datenblatt spricht von 200). Der Messwert von 1500 deutet auf eine 
Eingangsspannung von ca. 0,9-1V hin. Kann das sein, oder floaten die 
Eingänge vielleicht ?

Dass die anderen Kanäle 0 anzeigen, kann entweder bedeuten, dass 
tatsächlich ein Signal anliegt, das mind. einige 10mV unter GND liegt, 
oder aber dass bei der Programmierung des ADC etwas nicht korrekt ist 
(Clock, Modus, Vorzeichen, etc.).

Nutzt Du auch ADC-B ?

Gruß

Xmegaman

von Knut (Gast)


Lesenswert?

Ich habe einen TP vor dem Eingang (1k5/10nF). Schließe ich nichts an 
messe ich an einem Kanal 0 und an einem Anderen 15xx. Packe ich nun 
einen 10k Pulldown ran geht der Offset auf 165 runter. Wenn ich den Pin 
kurzschließe habe ich den Offset trotzdem.

Auf Kanal B ist auch alles wie es soll. Nur an ADC A is irgendwas 
faul... Aber auch nur an 4 von 8. Sehr merkwürdig. Es ist auch deutlich 
eine kleine Spannung am Pin zu messen, aber ich weiß nicht warum der 
Eingang die verursacht!?


Knut

von Knut (Gast)


Lesenswert?

Die Dinger sind offensichtlich noch nicht ausgereift...

von ulrich (Gast)


Lesenswert?

Zum ADC sollte man sich auch die Errata anschauen. Gerade beim ADC ist 
nicht alles so wie geplant und im Datenblatt beschrieben.  Noch nicht 
ganz ausgereift ist da keine so schlechte Beschreibung.

Der Offset von hier 160 ist wohl normal für den XMEGA, wenn am Eingang 0 
V anliegen. Das ist etwas ungewohnt, hat aber eher Vorteile. Der offene 
Eingang ist halt nicht definiert - das ist ganz normal, wie bei den 
meisten ADCs.

von 2ter Gast (Gast)


Lesenswert?

Die Dinger haben noch ein paar Probleme. Siehe Errata. Dieser lässt sich 
nur unter bestimmten einsetzen.

von Knut (Gast)


Lesenswert?

In der Tat, dass mit dem Offset von 200 steht drinn!!! Cool!

OK, ADC-B hat ihn auch, ist nur nicht aufgefallen weil dort bewusst ein 
Offset von 2048 drauf sein sollte, gemessen sinds aber 2200! Macht Sinn.

OK, ich dachte zumindest das sich alle offenen Eingänge gleich verhalten 
würden, aber dem scheint nicht so.

Im späteren Betrieb ist der Eingang ja vernünftig bzw. nicht offen.

Nur wundert mich nun das einer der Kanäle diesen Offset nicht hat! Ich 
werd noch irre!!! Ich mach erstmal Feierabend und werd morgen nochmal 
ran gehen, wahrscheinlich sehe ich den Baum vor lauter Wäldern nicht.


Danke schonmal

Knut

von Knut (Gast)


Lesenswert?

Eins noch, ich würde gern wissen wo im Datenblatt der Rchannel und der 
Rswitch steh? Ich kann ihn unter electrical characteristics jedenfalls 
nicht finden.

von Hagen R. (hagen)


Lesenswert?

AppNote zum ADC, nicht im Datenblatt selber

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Im aktuellen Datenblatt sind alle bekannten Fehler (AFAIR etwa 40) 
gelistet, unter anderem auch Probleme mit dem ADC.

Ich hab auch selber mal die Appnotes zusammengetragen:
http://svn.coremelt.net/atxmega128a1_board/trunk/doc/appnotes/

Keine Garantie dass es sich um die letzten Versionen handelt.

Greets,
Michael

von Knut (Gast)


Lesenswert?

Alles klar, danke.

Gruß Knut

von Knut (Gast)


Lesenswert?

Also nach heutigen Erkenntnissen lag das Problem an einem falschen 
Bauteil in der Layout-Lib. Die Offsets sind alle mehr oder weniger 
gleich. Jedoch hat der Controller schon bei 2,4V (Referenz ist 2,5V) 
seinen Vollausschlag. Das muss man jedoch nur wissen und dann 
wegprogrammieren.

Wen es interessiert:
Soweit sind nun alle Messungen stabil, und ich erreiche eine Genauigkeit 
von +/- 100mV bei 0-500V sowie mit einem LA55 100mA bei 0-47A wobei hier 
nur effektiv 11 Bit genutzt werden können wegen der Bidirektionalität 
des Stromes.

Lediglich ein fehlender Abblockkondensator (war nicht bestückt) an einem 
OPV brachte diesen zum oszillieren (sinusförmig, 10Vpp 52kHz) und 
bescherte mir 2 Std. Fehlersuche (Sch*** 0603).

Nun sollte es keine Probleme mehr geben.

Ach ja, der ADC läuft auf 1MHz, ich sample ADC-A und ADC-B immer 
gleichzeitig auf je einem Kanal und über alle Kanäle mit 1,25kHz.

Dazwischen immer mal wieder ne float-Rechnung. Scheint aber noch etwas 
Luft zu haben. Werde es wohl später noch auf die 2x4 internen 
ADC-Resultregister aufteilen und dann im Sweep-Modus messen, damit noch 
mehr Performance bleibt.

Alles in Allem bin ich aber relativ zu frieden mit dem Ding.


Knut

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.