@Searcher: wenn dus nicht glaubst, dass ich Recht habe, dann glaub ich es für dich mit.
Und lass einfach deine bekannten Anfeindungen, insb. wenn dir die Argumente ausgehen!
PS,
ab jetzt antworte ich nur noch auf Siros Fragen.
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Der Parallelumsetzer, den man für den C64, nach der Zeitschrift, bauen konnte, der hatte 4 Komparatoren (LM324) und eine 2-Bit-Ausgabe. Also 4 Bereiche. Dazu ein paar LEDs zum Abgleich. Den Mittelwert musste man glaub ich einstellen, über ein Poti. Das Audiosignal wurde über einen Kondensator (weiß nicht mehr genau - 10nF ?) zugeführt. War nicht so dolle, aber es war zu erkennen, was man aufgenommen hatte und konnte das mit dem C64 auch wieder abspielen.
MfG
Vielleicht ist es ein guter Ansatz die Funktionsweise des Wandlers nachzuvollziehen, um die Frage zu beantworten.
Wenn es nicht so leicht ist die zu ergründen, dann schon einmal die Funktionsweise in umgekehrter Richtung, beim D/A Wandler der ja dazu passend sein sollte.
Da arbeitet man mit PWM und es werden 2 hoch n Werte erreicht mit dem kleinsten Wert 0V und dem größten Wert 5V (oder entsprechend Vref).
nein, es werden nicht (2 hoch n) Werte erreicht, sondern (2 hoch n) -1, wobei n die Bitzahl (ADC-Bit-Auflösung) ist.
Für einen 8-bitter also
(2 hoch 8 ) - 1 = 256-1 = 255
was genau der maximalen Größe der erreichbaren ADC-Werte entspricht.
Und wir brauchen hier auch nicht die Mathematik neu zu erfinden:
werden 2 Skalierungen linear in Relation gesetzt, gilt immer noch der Dreisatz
a/aMax=v/vMax, also hier (a= abgelesene ADC-Variabe, v=korrelierte Volt-Variable)
a/255=v/5
also
v=(a/255)*5
Mit dem einen LSB war es mir bisher schleierhaft. Weil im Datenblatt der ATmega ist "LSB" nur als niederwertigstes Byte beschrieben (zumindest habe ich nichts anderes gefunden). Obwohl damit eigentlich nur das niederwertigste Bit gemeint sein kann. Ich finde aber auch die Formulierung etwas irreführend, wenn ich nach der Auflösung frage und beantworte die Frage damit, dass sich dass auf einen best. Wert bezieht, minus einem Bit der Auflösung (die eben unbekannt ist). Aber ist egal. Auf manchen Webseiten ist das bildlich dargestellt. Und wenn es eben in den Datenblättern heißt: "The minimum value represents GND and the maximum value represents the voltage on the AREF pin minus 1 LSB", dann sollten sich alle Bereiche (nämlich 256, bei 8 Bit, bzw. 1024 bei 10 Bit) zwischen 0V und Max (z.b. 5V) befinden. Daher ist dann durch die Zahl der Bereiche zu teilen.
MfG
nein, die "Bereiche" sind die Anzahl der "Schritte" zwischen dem niedrigsten (0) und dem höchstmöglichen ablesbaren Wert (z.B. 255 oder 1023).
Die ganzen Formulierungen in Datenblättern sind aber immer nur der mehr oder weniger taugliche Versuch, den simplen Dreisatz in Worte zu fassen, oft eben sehr missverständlich.
Der höchste erreichbare (ablesbare) ADC-Wert ist 255 (oder ggf. 1023), die höchstmögliche Referenzspannung 5V, und daher
a/aMax=v/vMax, also hier (a= abgelesene ADC-Variabe, v=korrelierte Volt-Variable)
a/255=v/5
also
v=(a/255)*5
Weil Deine Werte nicht stimmen.
Das Ergebnis einer AD-Wandlung gibt das Intervall zurück. Die Intervalle sitzen nicht zwischen den quantisierten Messwerten, sondern um die Messwerte herum. Insofern ist der Vergleich mit dem Zaunlattenprinzip hanebüchender Unsinn.
Bei der 2Bit-Wandlung ergibt sich:
0 U<1,25V
1 1,25V<=U<2,5V
2 2,5V<=U<3,75V
3 3,75V<=U
Genau das gibt der von Siro zitierte Satz aus dem DB wieder.
… and the maximum value represents the voltage on the AREF pin minus 1 LSB.
Sprich: 0x3FF sind beim AVR de facto nicht 5V. Nicht in der Theorie und auch nicht in der Praxis.
Eigentlich hatte ich gehofft, Dich durch die Rückführung auf das einfachst mögliche Beispiel noch einmal mit der Nase drauf zu stoßen.
Aber nein, HaWe weiß es besser!
Geändert von Holomino (07.02.2020 um 12:49 Uhr)
Lesezeichen