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
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
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
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.
Die Dinger haben noch ein paar Probleme. Siehe Errata. Dieser lässt sich nur unter bestimmten einsetzen.
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.