mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC - Ergebnis gerundet?


Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

es geht hier um den ADC im Tiny45 im Speziellen, aber mich interessiert
die Frage auch allgemein: Ist das Ergebnis eines ADCs eigentlich
gerundet? Also wenn ich eine Referenzspannung von 100 habe und 1.5 am
Eingang anliegen - erhalte ich denn als Wert 1 oder 2?

Im Datenblatt Tiny45 (10 Bit ADC) steht nur die allgemeine Formel
ADC=(Vin*1024)/Vref.

Grüsse,
Steffen

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck ins Datasheet zum Thema Genauigkeit vom ADC, und dann überleg dir
die Frage nochmal.

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh ja, jetzt sehe ich es auch. Bei der Beschreibung des Offset-Fehlers
steht: "The deviation of the first transition (0x000 to 0x001)
compared to the ideal transition (at 0.5 LSB)."

D.h. er springt bei 0.5LSB um und rundet also?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...Referenzspannung von 100 habe und 1.5 am Eingang
> anliegen...

Du scheinst die Funktionsweise des ADC nicht verstanden zu haben. Bitte
setze Dich mal genauer mit der Beschreibung im Datenblatt auseinander,
v.a. was die Referenzspannung und den Wandlungsbereich angeht. Dann
erklärt sich das von selbst. Runden tut da niemand, weils nix zu runden
gibt...

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, es stimmt schon, dass ich mich noch nicht lange mit ADCs
beschäftige. Aber kannst Du mir nicht etwas genauer sagen, wo es hakt?
Irgendwo muss er doch vom Analogbereich eine Quantisierung vornehmen.

Aber ich glaube, Du spielst auf meine Werte an? Die sollten nur
veranschaulichen (stand auch keine Einheit hinter). Aber ein konkretes
Beispeil: 8-Bit ADC, Vref=2,55V und Vin=2,545V. Was steht im
Messregister - der Wert 254 (für 2,54V) oder 255 (für 2,55V)?

Oder auf die Spitze getrieben: 1-Bit ADC, Vref=1V, Vin=0,5V. Steht eine
0 oder eine 1 im Messregister?

Oder bitte nenn mir ein Stichwort, soo viel gibt das Datenblatt des
Tiny nun auch nicht her (oder ich überlese es).

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Bernd Rüter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um es einfach zu sagen:

Ein AD-Wandler "rundet" immer ab, weil er immer den unteren der
beiden Werte als Vergleich erzeugt.
Aufgrund der Meßfehler, Rauschen, ... sollte man sich nicht darauf
verlassen, daß auch immer die angelegte Spannung gemessen wird.

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich aber anders gelernt: die unterste Stufe der treppenförmigen
Übertragungsfunktion ist nur 0,5 LSB breit, die oberste auch, alle
anderen 1 LSB. So erklärt sich, dass üblicherweise in den Formeln durch
1023 (bzw. 2^n -1) geteilt wird, obwohl es 1024 Stufen gibt. Das, was
üblicherweise Quantisierungsrauschen genannt wird,  ist also
symmetrisch links und rechts vom Schnittpunkt der Treppenfunktion mit
der idealen Übertragungsfunktion (Ursprungsgerade mit Steigung 1)
verteilt. Steffen nennt dies Rundung, und ich finde den Ausdruck
treffend.
mfg
Frank Simon
Meine Quelle: Principles of data aquisition.pdf, gibts irgendwo bei
ti.com zum Download

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Genaugkeit des ADC liegt bei 2 LSB. Und ihr diskutiert um 0,5 LSB.
Um geht was es hier eigentlich? Ums Prinzip?

Autor: Frank Simon (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Na klar gehts hier darum, das Prinzip zu verstehen.
Nochmal zu meinem Posting eben:
In der angegebenen Quelle stehts falsch drin, hab ich grad nochmal
nachgeschaut. Hier stehts richtig:
Understanding data converters.pdf , gibts ebenfalls bei TI.
Im Anhang ist die entsprechende Graphik zu sehen. Ihr müsst also in
Euren Programmen immer das LSB berechnen als
1 LSB = FSR /(2^n -1) , und nicht /(2^n).
mfg
Frank Simon

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 1 LSB = FSR /(2^n -1) , und nicht /(2^n)

Das stimmt so nicht (zumindest dann nicht, wenn FSR die Referenz sein
soll)! Die Formel im ATMEL-Datenblatt stimmt (ADC=(Vin*1024)/Vref -> 1
LSB = Vref / 2^10). Das Thema wurde hier schon mehrfach gründlich
diskutiert. Ein SAR-Wandler wie er im AVR drin steckt teilt die
Referenz durch 2^n. Das maximale Wandlungsergebnis ist aber 2^n - 1,
also 1023. Ein LSB geht prinzipbedingt oben immer 'verloren'. Bei
Vref = 2,56 V entspricht 1 LSB 2,5 mV, der maximal messbare Wert
beträgt 1023 * 2,5 mV = 2,5575 V.

Gruß

Johnny

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Johnny,
wir werden es wohl nicht letztendlich klären können.
Du zitierst richtig, und man kann das Datenblatt an der Stelle nicht
anders verstehen. Das hieße aber andererseits, dass der max.
Quantisierungsfehler -1LSB beträgt, oder mit Steffens Worten: immer
abgerundet wird. Kann ja auch sein, dass Atmel hier für das letzte Bit
kein Extrasüppchen kochen wollte.
Aber an anderer Stelle (ADC Accuracy Definitions) im selben Datenblatt
(Beim Mega8: Abb.100) steht, der Quantisierungsfehler betrage immer
+-0,5 LSB, das passt auch zu der Abbildung, bei der der Sprung von 0
auf 1 bei +0,5 LSB erfolgt. Und steht im Widerspruch zum oben Gesagten.
Vielleicht haben die Atmel-Leute da aus dem selben Theoriebuch
abgeschrieben wie ich, nur dass die Theorie nicht zu ihrem Wandler
passt.
So what, ist ja "in Wirklichkeit" ganz egal!

Gruß

Frank Simon

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der Quantisierungsfehler ist etwas anderes. Der ist tatsächlich
konstant +-0,5 LSB, was lediglich heißt, dass das Wandlungsergebnis
bereits dann als 0x01 ausgegeben wird, wenn am Eingang ein bisschen
mehr als 0,5 LSB anliegen (wäre jetzt mit dem obigen Beispiel mit Vref
= 2,56 V 12,5 mV). Wenn man einen Wert von z.B. 125d ausgegeben
bekommt, heißt das, dass der der am Eingang anliegenden Spannung
entsprechende Wert irgendwo zwischen 124,5 und 125,5 liegt (in
Spannungen ausgedrückt zwischen 1,550 und 1,575 V). Das ist eigentlich
immer so. Die Aufteilung der Referenzspannung ist davon völlig
unabhängig und führt hier zu keinem Widerspruch. Ein (Successive
Approximation-)ADC kann nicht den vollen Bereich wandeln.
Prinzipbedingt bleibt immer 1 LSB übrig (was recht gut verständlich
ist, wenn man sich den Aufbau und die Funktionsweise des Wandlers
ansieht). Bei n Bit Auflösung ist 1 LSB grundsätzlich Vref/2^n, während
der maximal erfassbare Wert (2^n)-1 ist.

Ich habe leider den alten (klärenden) Thread nicht gefunden. Da hatten
wir das mal durchdiskutiert und waren eigentlich zu dem Schluss
gekommen, dass das so schon korrekt ist.

Gruß

Johnny

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hosianna, der Geist ist endlich auch über mich gekommen!
Ich geb dir Recht, und alles ist ganz einfach, wenn man versteht, dass
URef und FSR nicht das gleiche sind:
Es gibt eine Formel mit 2^n, die richtig ist, und eine mit 2^n - 1, die
auch richtig ist.
 FSR (Full Scale Range):    FSR/1023=1LSB   => FSR  = 1023LSB
 URef:                      URef/1024=1LSB  => URef = 1024LSB
Das ganze ist ohne Widerspruch, wenn man weiß, dass beim SA-Wandler
"oben 1 LSB verloren geht", denn das heißt: FSR = VRef-1LSB.
Mein Fehler lag also in der Annahme, Referenzspannung URef und
Messbereich FSR seien das gleiche.
Gruß
Frank

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.