mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD-Wandler 24Bit


Autor: danyo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christof Krüger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: danyo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.