mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler im DB beim ADC?


Autor: Thomas Haber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute.

Das DB des ATmega8 sagt ADC errechne sich zu:

ADC = (Vin/Vref)*1024

Das DB des ATmega16 genauso

ADC = (Vin/Vref)*1024

ABER:

Das DB des AT90PWM2B:

ADC = (Vin/Vref)*1023(!!!!)


nun haben ALLE einen ADC mit 10 bit Auflösung. Also 1024 Stufen. Dann 
müsste das doch 0...1023 sein???!!?

Autor: Thomas Haber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keiner ne Idee?

Autor: Ralli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Formulierungsungenauigkeiten sind für Unbedarfte etwas
verwirrend, aber der Unterschied ist doch kleiner 0,1%.
Beim Gebrauch kommt es aber auf Auflösung UND Genauigkeit an!

Schon mal dran gedacht, wie beim idealen 10-Bit-ADC die
Aufteilung sein muss? - Genau:

   0*Vref/1024......1*Vref/1024    ergibt    0
   1*Vref/1024......2*Vref/1024    ergibt    1
...............................
   usw...usf
...............................
1022*Vref/1024...1023*Vref/1024    ergibt 1022
1023*Vref/1024...1024*Vref/1024    ergibt 1023

Dazu kommen dann (besonders bei einem günstig mit einem µC
miterworbenen ADC) Linearitäts- und Offset-Fehler in der
Größenordnung von einigen Bit, was ATMEL auch jeden wissen
lässt, der die Datenblätter aufmerksam liest.

Die Dinger bringen für wenig Geld eine Auflösung von 0,1%,
aber für die paar Cent kann man doch nicht mehr als 1%
Genauigkeit von ihnen erwarten!

Autor: Thomas Haber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Erklärung ist mir wohl bekannt.

Problem ist nur, dass ich nicht verstehe, warum Atmel im einen 
Datenblatt den ADC Wert so berechnet und im anderen ebn anders?!

Das ist doch das Merkwürdige!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Das ist doch das Merkwürdige!

Im nachfolgenden Text findest du folgendes:

ATMega8:
'0x000 represents ground, and 0x3FF represents the selected reference 
voltage minus one LSB.'

AT90PWM2B:
'0x000 represents analog ground, and 0x3FF represents the selected 
reference voltage.'

MfG Spess

Autor: Ralli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die OFFENSICHTLICHE und in der Auswirkung
VERNACHLÄSSIGBARE "Formulierungsungenauigkeit" als
Erklärung nicht reicht, dann hat da wohl jemand etwas
zum Staunen und Wundern bis an sein Lebensende gefunden!

Eine zivilgerichtliche Klage gegen Atmel ist aber leider
nicht sehr aussichtsreich: Siehe "Disclaimer" am Ende des
jeweiligen Datenblatts.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sich selbst Gedanken zu diesem Thema machen ist nicht verboten ...
;-)

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.