- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 68

Thema: Ein ADC Schritt Ref/n oder Ref/(n-1)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Köstlich. Da teilen wir 5 V durch 256 - oder 255 Teile und erhalten ne Zahl auf ein paar Billionstel genau. Noch dazu, wo im Datenblatt (zumindest in Atmel-42735B-ATmega328/P_Datasheet_Complete-11/2016) steht: ±2 LSB Absolute Accuracy . . . Schön, gut - es geht hier um die Theorie. Aber ich finde so wunderbare Stellenvermehrung einfach - wunderbar - köstlich.
    richtig, es geht um die Theorie.
    Zäumen wir das Pferd von hinten auf, am Beispiel eines sehr "kleinen" 2-bit ADCs, weil das Prinzip deutlicher hervortritt:

    wie schon angemerkt, hat ein 2bit ADC 2² mögliche ADC-Werte (0,1,2,3) mit 3 Messintervallen.
    Daher wären die 5V Messspannung durch 3 zu teilen (entsprechend dem höchsten ADC-Wert), in Schritten zu 5/3=1,666

    0 -> 0 V
    1 -> 1,67 V
    2 -> 3,33 V
    3 -> 5 V

    Würde man hingegen mit 4 Intervallen rechnen, ergäbe sich, in Schritten zu 5/4=1,25:
    0 -> 0 V
    1 -> 1,25 V
    2- > 2,50 V
    3 -> (...5 V)
    Hier wird deutlich, dass dann der letzte Schritt (das letzte Intervall) zu groß wäre im Vergleich zum Messbereich und zu den anderen Intervallen.

    Bei einem 8-bit ADC mit 256 Messwerten in 255 Stufen/Intervallen (entsprechend dem höchsten ADC-Wert) ist dieses Verhalten "analog":
    5V durch 255 geteilt ergäbe gleich große Intervalle (steps), durch 256 geteilt entstünde der gleiche Fehler wie oben beim 2-bitter gezeigt.

    Daher ist mein schon im 2. Post gezeigter Vorschlag mit 255er Teiler IMO der korrekte, und nicht der mit 256.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von HaWe Beitrag anzeigen
    wie schon angemerkt, hat ein 2bit ADC 2² mögliche ADC-Werte (0,1,2,3) mit 3 Messintervallen.
    Daher wären die 5V Messspannung durch 3 zu teilen (entsprechend dem höchsten ADC-Wert), in Schritten zu 5/3=1,666

    0 -> 0 V
    1 -> 1,67 V
    2 -> 3,33 V
    3 -> 5 V

    Würde man hingegen mit 4 Intervallen rechnen, ergäbe sich, in Schritten zu 5/4=1,25:
    0 -> 0 V
    1 -> 1,25 V
    2- > 2,50 V
    3 -> (...5 V)
    Hier wird deutlich, dass dann der letzte Schritt (das letzte Intervall) zu groß wäre im Vergleich zum Messbereich und zu den anderen Intervallen.

    Bei einem 8-bit ADC mit 256 Messwerten in 255 Stufen/Intervallen (entsprechend dem höchsten ADC-Wert) ist dieses Verhalten "analog":
    5V durch 255 geteilt ergäbe gleich große Intervalle (steps), durch 256 geteilt entstünde der gleiche Fehler wie oben beim 2-bitter gezeigt.

    Daher ist mein schon im 2. Post gezeigter Vorschlag mit 255er Teiler IMO der korrekte, und nicht der mit 256.
    Falsch!

    Extrem könnte man auch einen als Input konfigurierten I/O Pin als einen 1-Bit ADC betrachten mit zwei möglichen Ausgabewerten. Die zu digitalisierende Eingangsspannung am Pin liegt zwischen GND (0 Volt) und Vcc (zB 5V). Der Ausgabe Wert ist 0 oder 1.

    Nun die Preisfrage: Es gibt zwei mögliche Ausgabewerte (entweder die 0 oder 1). Gibt es einen oder zwei Bereiche (Quantisierungsintervalle) der Eingangsspannung am Input Pin, die den Ausgabewerten zugeordnet sind? Wie sehen diese aus mit Angabe der von- bis-Werten und zugehörigen Ausgabewerte?

    @oberallgeier: Hier nur die Theorie. Die Fehler eines realen ADC sind auch in der App.-Note erwähnt, die ich oben schon mal verlinkt hatte:
    http://ww1.microchip.com/downloads/e...ote_avr120.pdf
    Dort wird findet man auch den Begriff "perfect ADC", der hier diskutiert wird.
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    HaWe
    Gast
    Zitat Zitat von Searcher Beitrag anzeigen
    Falsch!

    Extrem könnte man auch einen als Input konfigurierten I/O Pin als einen 1-Bit ADC betrachten mit zwei möglichen Ausgabewerten. Die zu digitalisierende Eingangsspannung am Pin liegt zwischen GND (0 Volt) und Vcc (zB 5V). Der Ausgabe Wert ist 0 oder 1.

    Nun die Preisfrage: Es gibt zwei mögliche Ausgabewerte (entweder die 0 oder 1). Gibt es einen oder zwei Bereiche (Quantisierungsintervalle) der Eingangsspannung am Input Pin, die den Ausgabewerten zugeordnet sind? Wie sehen diese aus mit Angabe der von- bis-Werten und zugehörigen Ausgabewerte?

    @oberallgeier: Hier nur die Theorie. Die Fehler eines realen ADC sind auch in der App.-Note erwähnt, die ich oben schon mal verlinkt hatte:
    http://ww1.microchip.com/downloads/e...ote_avr120.pdf
    Dort wird findet man auch den Begriff "perfect ADC", der hier diskutiert wird.
    Falsch!
    es geht um die Abbildung von ADC-Messwerten auf zugehörige Spannungen im gesamten Messintervall!
    Dabei wäre auch sowohl die niedrigste als auch die höchstmögliche Spannung abzubilden (zu repräsentieren).
    ein 1-bit ADC aus deinem Beispiel hat 2 mögliche Messwerte bzw. Zustände (0,1) mit 1 Intervall dazwischen (5/1 = 5):
    0 -> 0V
    1 -> 5V
    Es gibt keine Zwischenschritte oder "fließende Bereiche", da 0 und 1 Integerwerte (Natürliche Zahlen) sind, keine rationalen oder reellen Zahlen: sondern nur feste Schritte in nicht stetigen festen Stufen.
    Da die Schrittgröße beim ADC 1 ist, ist die statistische Genauigkeit beim ADC immer ±1, das gleiche gilt für das zugeordnete Spannungswert-Intervall (das hatte oberallgeier bereits angedeutet).
    Geändert von HaWe (06.02.2020 um 17:57 Uhr) Grund: typo

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Ersteinmal Danke an alle, für die Anteilnahme,
    wie erwartet, gibt es hier unterschiedlichen Ansichten.

    Was ist richtig, was ist falsch, ich weis es auch nicht,
    hatte aber grade folgendes Gedankenspiel:

    Warum gibt es Spannungsreferenzen zu kaufen die so krumm sind:
    2,048V oder 4,096V
    Weil sie genau 2^11 bzw. 2^12 entsprechen

    Somit hat man bei der entsprechenden Bitbreite pro ADU Schritt exakt 1 mV.
    Man erspart sich damit umständliche Berechnungen und ich
    vermute mal das war der Sinn dieser krummen Referenzen.

    Wenn dem so ist, dann ergibt ein maximaler Aducount beim 11 Bitter
    Wertebereich 0..0x7FF (2047 dez) einen Spannungsbereich von 0..2047 Millivolt
    Die volle Referenzspannung wird dann nie erreicht, es fehlt ein LSB
    so wie zum Beispiel bei Atmel beschrieben.
    Dies entspräche der Berechnung Vref/(2^n)
    auf den 8 Bitter bezogen wäre es also einem Divisor von 256 = Vref/n

    Die Diskussion kann man vermutlich ewig weiterführen,
    ich finde aber die Standpunkte/Erläuterungen von euch auch recht interessant.

    Wie ja schon Eingangs erwähnt geht es mir nicht darum ob meine Werte aufs letzte Bit stehen,
    sondern um die Festlegung, sofern es eine gibt, wie die korrekte Berechnung aussehen müsste.

    Es gibt hier z.B. einen Calculator:
    https://www.electronicdeveloper.de/A...Converter.aspx
    Dieser basiert meiner Meinung nach auf (n-1)

    Bei einem 2 Bit Wandler würde ich es wie folgt interpretieren.
    Ref/n 5V/4 Schritte = 1,25V Schrittweite

    ADC
    0 -> 0,00 V 0..1,24
    1 -> 1,25 V 1,25..2,49
    2 -> 2,50 V 2,50..3,74
    3 -> 3,75 V 3,75.....auch bis über Vref

    ----
    @Klebwax:
    Im Prinzip ist mir das auch egal wie die Berechnung erfolgt, da ich es auch völlig anders berechne.
    Beim Kalibrieren lege ich eine möglichst konstante Spannung an den Messeingang und merke mir den
    aktuellen Aducount. Dann weis ich, dass bei dieser Spannung mein Aducount xxx beträgt.
    Den Rest kann ich dann berechnen und verlasse mich darauf, dass sich die Messkette linear verhält.
    Zudem ist die Bitbreite des ADU damit völlig eagl, wobei "mein Code" hier auf maximal 16 Bit beschränkt ist.

    Code:
    U16 CalAtmV = 5000;  // Kalibriert wird bei exakt 5,000 Volt 
    U16 CalCount;        // gemessener Aduwert bei der Kalibrierspannung 
    
    /*----------------------------------------------------------------------------*/
    // Die Umrechnung ADU Count in Millivolt findet dann hier statt:
    
    U16 Calculate_mV(U16 adc_count)
    { S32 value;             // we need < 32 Bit value for calculation
    
      value  = adc_count;    // convert 16 bit value to 32 Bit 
      value *= CalAtmV;      // multiply with Calibration Point Voltage 
      value /= CalCount;     // divide with ADC Calibration count at Calibration Voltage
        
      return (U16)value;     // return with 16 Bit result in mV
    }
    /*----------------------------------------------------------------------------*/
    Weiter Diskussionenn habe ich unter anderem auch hier gefunden:
    https://www.mikrocontroller.net/topic/261692

    Bei Maxim habe ich folgendes gefunden:
    Klicke auf die Grafik für eine größere Ansicht

Name:	MCP3221_1_LSB.jpg
Hits:	6
Größe:	28,6 KB
ID:	34798

    Siro

  5. #5
    HaWe
    Gast
    @Siro:
    ich würde die Volt-Bereiche beim 2-bitter völlig anders interpretieren, wobei diese natürlich willkürlich numerisch gesetzt sind und nicht statistisch oder stochastisch verifiziert (was der bessere Weg wäre, über statistische Messreihen mit einem berechenbaren Signifikanzniveau):

    0 -> 0 V (0...0,83)
    1 -> 1,67 V (0,84...2,50)
    2 -> 3,33 V (2,51...4,16)
    3 -> 5 V (4,17...5,0)

    Diese basieren dann nach wie vor auf dem Intervall-Teiler 5/3, nicht 5/4, denn es sind nach wie vor 3 Intervalle und nicht 4 !
    Analog gilt das dann bem 8-bitter für 5/255.

    das Zeichen
    ->
    kennzeichnet eine mathematische Abbildung ("Funktionswert") von einem Wert auf einen anderen.
    Geändert von HaWe (06.02.2020 um 18:54 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von HaWe Beitrag anzeigen
    ich würde die Bereiche beim 2-bitter völlig anders interpretieren, wobei diese natürlich willkürlich numerisch gesetzt sind und nicht statistisch oder stochastisch verifiziert (was der bessere Weg wäre, über statistische Messreihen mit einem berechenbaren Signifikanzniveau):
    anders interpretieren als was? Es geht doch immer noch um die Theorie bei einem perfekten ADC oder bist du schon wieder woanders?

    0 -> 0 V (0...0,83)
    1 -> 1,67 V (0,84...2,50)
    2 -> 3,33 V (2,51...4,16)
    3 -> 5 V (4,17...5,0)

    Dese basieren dann auf dem Teiler 5/3, nicht 5/4, denn es sind nach wie vor 3 Intervalle und nicht 4 !
    Analog gilt das dann bem 8-bitter für 5/255.
    3 Intervalle statt 4? Ich zähle in der Tabelle vier Intervalle.
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    HaWe
    Gast
    3 Intervalle statt 4? Ich zähle in der Tabelle vier Intervalle.
    ogottogottogott...

    0
    [1.Intervall]
    1
    [2.Intervall]
    2
    [3.Intervall]
    3


    Intervall = Zwischenraum.

    Wenn du 4 Pfosten im 1m-Abstand hintereinander in den Boden rammst, wieviele Zwischenräume (Intervalle) gibt es? Und wie ist die Gesamtlänge vom 1. bis zum 4. Pfosten??

    Das ist Mathe aus der 5. Klasse!!

    (PS: Die Werte in den Klammern sind keine Intervalle, sondern die Werte von der vorhergehenden Intervallmitte zur nächsten Intervallmitte)
    Geändert von HaWe (06.02.2020 um 19:04 Uhr)

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von HaWe Beitrag anzeigen
    es geht um die Abbildung von ADC-Messwerten auf zugehörige Spannungen im gesamten Messintervall!
    Nein. Es ging um die Frage die Siro gestellt hatte:
    Zitat Zitat von Siro Beitrag anzeigen
    Frage
    wie berechne ich einen ADU Schritt.
    Ich bin der Meinung, daß es bei einem 8-Bit ADC VRef/256 sind, wie es aus der Application Note des Herstellers zu verstehen ist.
    Das bestreitst du und behauptest daß es VRef/255 sind.

    Lies dir also nochmal meine Frage durch und versuche von dem 1-Bit ADC auf einen 8-Bit ADC zurückzuschließen. Oder muß ich dazu multiple choice Antworten formulieren.

    In jedem Fall verstehe ich nicht, was die Pfeile in
    0 -> 0V
    1 -> 5V
    bedeuten sollen.
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. Entscheidungshilfe Schritt oder Getriebemotor
    Von Atmega328 im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 30.04.2014, 17:38
  2. Antworten: 5
    Letzter Beitrag: 09.10.2013, 11:50
  3. Suche Drehtisch/Schwenkkopf für Kamera (Schritt oder Servo)
    Von MasterFX im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 5
    Letzter Beitrag: 13.07.2013, 08:28
  4. Schritt- oder Getriebemotor?
    Von logliner im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 22
    Letzter Beitrag: 28.08.2012, 15:47
  5. welchen motor, schritt oder servo?
    Von x3oo im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 23.03.2010, 22:41

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test