www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unlinearitäten im AD Wandler


Autor: soundmachine (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Mikrocontroller Gemeinde.
Kurz zu meinem Status. Ich habe vor ca. 4 Wochen angefangen mich das 
erste mal mit einem Mikrocontroller zu beschäftigen, bin aber allgemein 
was Elektronik betrifft recht fit durch mein Studium.
Ich habe folgendes Problem mit meinem Atmega8:
Ich möchte gerne einen Widerstandswert einlesen um diesen in meinem 
Porgramm zu verarbeiten.

Hardwaremäßig ist das Ganze so aufgebaut, dass ich einen Spannungsteiler 
(5k Ohm - 5k Ohm) benutze um eine Referenzspannung von 2,5V zu erzielen. 
(AREF). Dann benutze ich einen Spannungsteiler (68 Ohm 
Präzissionswiderstand - Prüfling ) und habe die Zuleitung zum Prüfling 
auch zum Analogeingang 0 des Atmega geführt und messe so also meinen 
Spannungsfall über dem Prüfling.
Daraus kann ich mir ja folgendermaßen den Widerstand berechnen:

2,5V bedeuten 1024
-->5V bedeuten 2048, somit kann ich auf Grundlage eines Spannungsteilers 
die Formel für einen "BITTEILER" aufstellen.

X(bitwert) = 2048 * (Prüfling / 68+Prüfling)
umgekehrt bedeutet dies um vom eingelesenen Bitwert auf den Widerstand 
zu kommen


Prüfling = (68*X(bitwert)) / (2048 - X(bitwert))


Ist das soweit richtig oder bin ich da irgendwo falsch abgebogen?

Jetzt habe ich mal eine Messreihe erstellt mit sehr guten Multimetern 
(Fluke...)und bekomme, wie bei einem Spannungsteiler üblich eine Art 
e-Funktion für die verschiedenen Widerstände/Spannungsverhältnisse.
So weit so gut.
Allerdings gibt es bei mir sehr große Unterschied zwischen dem wie oben 
erwähnt errechneten und dem tatsächlich vom Atmega gemessenen.

Woher kann das kommen, gegen 1000 im AD Register sind dies schon 10 Ohm 
Unterschied!!!!
In der nähe von 512 passt es komischerweise wieder und es sieht 
ansatzweise so aus als ob die Unterscheide bei Werten <512 in genau die 
andere Richtung abhauen.

Hat jemand ähnliche Erfahrungen, oder was kann ich falsch gemacht 
haben???
Kondensator is drin, mache auch 300 Messungen und mittele diese wobei 
zwischen maxwert und minwert höchstens 4 im Register unterschied sind.
Bin echt mit meinem Latein am Ende.


(Ach ja, habe verschiedene Atmega8's ausprobiert-->gleiches Speil)


War jetzt viel Text aber ich wollte es so gut wie möglich beschreiben.

Bin für jede Hilfe dankbar.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hardwaremäßig ist das Ganze so aufgebaut...
Die Beschreibung macht mir einen Knoten ins Hirn...
Kannst du bitte ein Skizze/Schaltplan posten?

Autor: micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gehst Du davon aus, dass jedes Bit des AD 100% stimmt? IMHO hat der 
Atmel8 zumindest 1,5 LSB, d.h. von den 10bit kannst Du im Prinzip nur 
den höchsten 8,5 vertrauen ;-)

Bei Atmel gibt es ein paar App-Notes:
AVR120: Characterization and Calibration of the ADC on an AVR
AVR121: Enhancing ADC resolution by oversampling

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> einen Spannungsteiler (5k Ohm - 5k Ohm) .... Referenzspannung
Ist der Spannungsteiler nicht ein wenig hochohmig für den 
Eingangswiderstand am Vref-Pin? Laut DB:
RREF Reference Input Resistance  32 kΩ

Autor: X- Rocka (x-rocka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Referenzspannung überprüfen, sieht ja nach nem linearen Fehler aus.

edit: ninja'd! jau, 32k || 5k = 4.32k => Fehler ~15%
entweder Referenzspannung mit OPV puffern oder eben den neuen 
Referenzwert in die Berechnung nehmen.

Autor: soundmachine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leutz, hab mal im Datenblatt nachgesehen, hab den Spannungsteiler mit 
470 Ohm aufgebaut und die 32kOhm mit verrechnet und siehe da es passt 
fast. wenn ich 28kOhm ansetze sogar genau.

Vielen Dank nochmal,

ihr seid echt Klasse.

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Bei Atmel gibt es ein paar App-Notes:
>> AVR120: Characterization and Calibration of the ADC on an AVR
>> AVR121: Enhancing ADC resolution by oversampling

>> und siehe da es passt fast. wenn ich 28kOhm ansetze sogar genau.

Die ADC Routine vielleicht noch optimieren, kann ja nicht schaden :-)

Beitrag "ADC und Fixed-Point Arithmetik"

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.