Forum: Mikrocontroller und Digitale Elektronik schwankende Werte am AD-Wandler


von Mikrocontroller X. (kifab)


Lesenswert?

Hallo,
ich benutze den analogen 12-Bit Eingang des XMC2GO Controller von 
Infineon und möchte damit über einen Potentiometer eine Weglänge messen. 
Dafür habe ich den nun Digital gewandelten Wert in 5 ASCII Zeichen 
umgewandelt, welche den Aufbau <Hunderter> <Zehner> <Einer> <Zehntel> 
<Hundertstel> darstellen und den Wert so in mm angeben.
Das Problem ist nun, das der Ausgegebene (LCD-Display) bei den hinteren 
drei Zeichen dauernd schwankt trotz konstantem analogen Eingang. Im 
Einerbereich um +-2 Ziffern. Also nur Zehner und Hunderter Zeichen sind 
konstant.
Woran kann das liegen? Kann man die Genauigkeit elektronisch irgendwie 
verbessern, dass zumindest der Einerbereich konstant ist?

von Andreas I. (andy5macht)


Lesenswert?

Bildest du bereits einen Mittelwert aus einigen wenigen Messungen?

von Mikrocontroller X. (kifab)


Lesenswert?

Nein, das könnte ich mal noch versuchen. Jedoch muss ich bestimmte 
Zeiten einhalten daher wäre das eher eine Notlösung.
Aber ist das normal dass die Auflösung trotz 12Bit so grob ist? 
Rechnerisch sollte ich ja erkennen können wenn sich der Sensor um 
0,03662 mm verändert. Muss ich zwar nicht, aber Millimeter und noch 
besser zehntel wäre schon von Vorteil.
Gibt es sonst keine andere Möglichkeit?

von Teo D. (teoderix)


Lesenswert?

Mikrocontroller X. schrieb:
> Aber ist das normal dass die Auflösung trotz 12Bit so grob ist?

JA.
Da braucht's ne gehörige Portion an Schaltungsaufwand, Wissen, 
Erfahrung...., um am ADC-Eingang ein sauberes Signal zu erhalten!

von Sven B. (scummos)


Lesenswert?

Die erste Frage wäre mal mit welcher Samplerate der ADC betrieben wird 
-- und ob du einen passenden analogen Tiefpass vor den Eingang gebaut 
hast?

von Pink S. (pinkshell)


Lesenswert?

Wenigstens ein bisschen mitteln - soviel Zeit muss sein :-)

Einen Kondensator an die Referenzspannung des AD-Wandler hilft auch.

von Sven B. (scummos)


Lesenswert?

Pink S. schrieb:
> Wenigstens ein bisschen mitteln - soviel Zeit muss sein :-)

Ein einzelner Messwert des ADC darf nicht um dutzende oder gar hunderte 
LSB schwanken, da ist was anderes falsch.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Das Poti nimmt also einen Wegbereich von 150 mm auf, d.h. die Anzeige
geht von 0,00 mm bis 150,00 mm. Eine Schwankung von ±2 in der
Einerstelle bedeutet, dass der angezeigte Wert eine Streubreite von
mindestens 3,01 mm hat (bspw. zwischen 3,99 mm und 7,00 mm). Das ergibt
eine effektive Auflösung von

  log₂(150 mm / 3,01 mm) bit = 5,6 bit

D.h. mehr als die letzten 6 der 12 ADC-Bits sind Rauschen. Das ist
wirklich schlecht. 8 oder 9 bit effektive Auflösung sollte mindestens
möglich sein, was einer Wegauflösung von 0,6 mm bzw. 0,3 mm entspräche.

Nutzt du den vollen Messbereich des ADC, d.h. entsprechen 0 mm einem
ADC-Wert von 0 und 150 mm einem ADC-Wert von 4095?

Wenn ja, dann hast du vermutlich deutliche Störungen auf dem Messsignal,
der Referenz- oder der Versorgungsspannung des ADC. Hast du dir diese
Spannungen mal mit dem Oszi angeschaut?

Edit 1:

Sind die Versorgungsspannung und die Referenzspannung ordentlich mit
Kondensatoren versehen?

Ist das Poti mit dem ADC vielleicht über eine zu lange Leitung
verbunden?

Ist das Poti für die Leitungslänge möglicherweise zu hochohmig?

Edit 2:

Die letzten beiden Punkte hat Matthias S. bereits vor meiner ersten
Änderung im Folgebeitrag angesprochen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Je nach Innenwiderstand des Potis ist auch schon Einstreuung ein Thema. 
Es lohnt sich hier vermutlich, abgeschirmtes Signalkabel und ein recht 
niederohmiges Poti (5k-10k) zu benutzen, und einen RC Tiefpass nach 
Gusto.

von W.S. (Gast)


Lesenswert?

Leute, denkt doch auch mal an den ADC als solchen. Die meisten ADC's in 
µC sind ungepuffert, weil es eben schwierig ist, in einem digitalen Chip 
einen wirklich guten RRIO-OpV zu bauen. Aber auch die SAR-ADC's stellen 
eine dynamische Last dar und brauchen deshalb eine eher niederohmige 
Ansteuerung, im einfachsten Fall einen passenden Keramik-C, besser aber 
einen ordentlichen OpV davor.

Und nun guckt euch mal diesen XMC to Go an: Dieser Schlüsselanhänger ist 
nicht im Geringsten nach wirklichen Analog-Prioritäten gemacht. Ob man 
da mit 12 Bit Analog überhaupt zu Potte kommen kann, wage ich leise in 
Zweifel zu ziehen.

Allerdings sind 6 wacklige Bits von 12 schon ein starkes Stück, weswegen 
vielleicht ein näherer Blick in die gewählte chipinterne Verschaltung 
lohnen würde. Könnte ja sein, daß der TO versehentlich irgend einen 
anderen Pin als Referenzeingang ausgewählt hat - falls das der Chip 
hergibt.

Ich selber halte diese XMC-Togo nur für ne billige Quelle, um den dort 
befindlichen Seggerschen J-Link-OB abzulöten und woanders draufzutun, 
dann hat man wenigstens nen ordentlichen J-Link.

W.S.

von Nop (Gast)


Lesenswert?

Immer wieder gern gesehen ist natürlich auch die zu hochohmige Anbindung 
in Verbindung mit schneller Wandlerrate (das ist nicht dasselbe wie die 
Samplefrequenz).

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

W.S. schrieb:
> Aber auch die SAR-ADC's stellen
> eine dynamische Last dar und brauchen deshalb eine eher niederohmige
> Ansteuerung, im einfachsten Fall einen passenden Keramik-C, besser aber
> einen ordentlichen OpV davor.

Das ist wohl wahr. Ich habe ein wenig mit den 12-bit Wandlern des STM32 
rumgespielt und die klangen bei Audio nur dann einigermassen erträglich, 
wenn ich sie mit Opamps/AA Tiefpass und höchstens 100 Ohm Quellimpedanz 
angesteuert habe. Schliesslich musste dann aber doch ein externer AD mit 
I²S Anbindung her - das onchip Gruschelmuschel erzeugt einfach zu viele 
Störungen.

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.