Forum: Mikrocontroller und Digitale Elektronik AD-Wandler 24Bit


von danyo (Gast)


Lesenswert?

Hallo!

Ich bin gerade dabei, eine Messwert-Erfassung mit einem µC-gesteuerten
AD-Wandler zu programmieren. Der µC ist ein Mitsubishi M16C62 und der
AD-Wandler ein 24bit Burr-Brown ADS1211.

Folgendes Problem habe ich: Der gemessene Wert vom ADC schwankt in
konstanten Abständen (20mV) um 40mV.
Zur Erklärung: bei einer eingestellten Analog-Eingangsspannung von
1,000V misst der ADC bis 1,020V richtig, ab einer Spannung von 1,021V
rutscht er jedoch auf 0,981V, also um 40mV nach unten. Dieses Verhalten
besteht dann bis 1,040V. Ab 1,041V rutscht er dann wieder um 40mV hoch
auf korrekte 1,041V, ab 1,061V dann wieder nach unten. So verhält er
sich über den ganzen Messbereich hinweg bis Full-Scale 5V.

(Spannungen sind Beispielwerte)

Hat jemand von euch schon einmal die gleiche Erfahrung gemacht oder
eine Erklärung dafür?

Gruß Danyo

von Christof Krüger (Gast)


Lesenswert?

Das klingt ja fast so, als würde das Bit mit der Wertigkeit 2^16 falsch
herum funktionieren. Eine Änderung dieses Bits würde bei einer
Referenzspannung von 5V etwa 20mV entsprechen.

Hier ein kleines Beispiel beim verkehrten Bit mit der Wertigkeit 2^1

 normal  |  falsch
---------+----------
0 = 000  |  010 = 2
1 = 001  |  011 = 3
2 = 010  |  000 = 0
3 = 011  |  001 = 1
4 = 100  |  111 = 6
5 = 101  |  110 = 7
6 = 110  |  101 = 4
7 = 111  |  100 = 5
...         ...

Vielleicht reicht es, wenn du das Bit invertierst. Warum das allerdings
so ist, kann ich dir nicht erklären

von danyo (Gast)


Lesenswert?

Ja, das ist richtig, dass was mit dem Bit 16 nicht stimmt (wenn 1.Bit =
Bit 0). Die letzten drei Nibbles hab ich ausgeblendet, da die erst mal
keine Rolle spielen (µV-Bereich)

40mV zu wenig angezeigt:
bei 1,014V => 0001 1000 1111 .... .... ....

jetzt Sprung zur korrekten Anzeige:
bei 1,016V => 0001 1010 0000 .... .... .... usw.

bei 1,034V => 0001 1010 0111 .... .... ....

jetzt wieder Sprung zu 40mV zu wenig:
bei 1,036V => 0001 1001 1000 .... .... .... usw.

bei 1,054V => 0001 1001 1111 .... .... ....

jetzt wieder Sprung zur korrekten Anzeige:
bei 1,056V => 0001 1011 0000 .... .... ....

Wie man sieht, wird irgendwie immer ein Bit-Wert übersprungen.
Nur eigentlich darf das ja nicht vorkommen...

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.