Forum: Mikrocontroller und Digitale Elektronik XMEGA ADC Offset Calibration


von Michael (Gast)


Lesenswert?

Hallo Gemeinde,

ich betreibe meinen ADC eines XMEGA wie folgt:
* Single Ended
* Unsigned
* Ext. Referenz

Mit den Messwerten bin ich zufrieden. Ich könnte diese noch verbessern, 
wenn ich den tatsächlichen Offset (tpy. laut Datenblatt 190 LSB) noch 
vermesse und dann von meinem Messwert abziehe. Aktuell subtrahiere ich 
bei jeder Messung 190 LSB.

So jetzt die spannende Frage, wie messe ich den Offset? Aktuell habe ich 
nur die Idee einen ADC-Eingang auf Masse anzuschließen und den Offset 
zu messen und anschließend immer von den eigentlichen Messungen 
abziehen.

Einzig was mir an der obigen Lösung nicht gefällt, ich "verschwende" 
somit einen wertvollen Eingang.

Kennt jemand einen bessern Weg?

VG,
Michael

von Magic S. (magic_smoke)


Lesenswert?

Ich hab so eine "Selbstkalibration" für einen Strom-Messwert mal 
realisiert, indem ich diesen bei deaktvierter Leistungsstufe gemessen 
habe (Strom bekannt und sicher Null). Diesen Wert nimmt das Programm 
dann als Null.

Vielleicht hast Du ja eine ähnliche Möglichkeit, wenn der Controller die 
Nullstellung sicher selbst anfahren kann (z.B. Leistungsstufe 
deaktivieren).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Michael schrieb:
> So jetzt die spannende Frage, wie messe ich den Offset? Aktuell habe ich
> nur die Idee einen ADC-Eingang auf Masse anzuschließen und den Offset
> zu messen und anschließend immer von den eigentlichen Messungen
> abziehen.
>
> Einzig was mir an der obigen Lösung nicht gefällt, ich "verschwende"
> somit einen wertvollen Eingang.

Du kannst den Multiplexer so schalten, dass Du den jeweiligen 
Mess-Eingang intern auf GND oder PAD_GND schaltest. Was Du dann über 
diesen Eingang misst, ist der Offset. Wenn Du mehrere Eingänge 
verwendest, solltest Du jeden einzeln messen, da sich der Offset 
verschiedener Eingänge etwas unterscheiden kann. Es ist durchaus 
sinnvoll, pro Eingang mehrere Messungen zu machen (32 oder 64) und den 
Mittelwert zu nehmen, da der XMEGA-ADC gern einmal rauscht.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Leider habe ich nicht die Möglichkeit einen definierten Nullpunkt 
anzufahren. Somit scheidet diese Möglichkeit leider aus.

Den internen Multiplexer bzgl. dem ADC kenne ich nur von der 
AT32UC-Serie, dort gehe ich wie von Knut beschrieben vor. Bei den XMEGA 
habe ich diese Möglichkeit (noch) nicht gefunden. Evtl. kann mir ja hier 
jemand diesbezüglich die Augen öffnen.

VG,
Michael

von Magic S. (magic_smoke)


Lesenswert?

Dann wirst Du wohl eine Vergleichsmessung bzw. Eichung vornehmen müssen 
wenn Du keinen ADC-Eingang opfern möchtest.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Michael schrieb:
> Bei den XMEGA
> habe ich diese Möglichkeit (noch) nicht gefunden.

Welchen XMEGA benutzt Du denn? Wenn ich das weiss, kann ich Dir die 
Seite im Manual sagen, wo das geschrieben steht ;-)

von Magic S. (magic_smoke)


Lesenswert?

Hast Du die im Kopf oder was? ;)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Andererseits kannst Du den betreffenden ADC-Pin auf Ausgang_Low 
schalten, wenn Deine angeschlossene Treiberschaltung dies verkraftet und 
dann misst Du ja quasi Masse und kannst den Offset auswerten. Zur 
Messung der ADC-Werte schaltest Du den Pin selbstverständlich auf 
Eingang.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

magic smoke schrieb:
> Hast Du die im Kopf oder was? ;)

Die betreffende Seite? Nö, aber ich könnte ja mal nachschlagen. Für 
Single Ended gibt es aber nur o.g. Möglichkeit.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Noch eine Variante wäre es, den Ausgang eines DAC zu messen, der 0V 
ausgibt. In der Hoffnung, dass der DAC nicht rauscht... ;-)

von Michael (Gast)


Lesenswert?

Hallo Ihr Zwei,

danke für Eure Antworten. War gerade Offline, family... Typ XMEGA16A4U

Danke,
Michael

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.