Genauigkeit ADC überprüfen

Gast #91168
Hallo,
ich habe mir mir mit einem durchlaufenden Zähler und nem Timercompare
ne quasi PWM aufgebaut. Das funktioniert aus soweit.
Ich möchte nun den Timercompare-Wert in Abhängigkeit einer ADC-Messung
verändern.
Das Puls/Pausenverhältnis soll also proportional der gemessenen
Spannung sein.
Die ADC-Messung wird anscheinend auch gemacht, zumindest wird das
ADSC-Register zurückgesetzt.

Die Frage, die sich mir jetzt stellt ist, wie genau ist der gemessene
Wert eigentlich. 10bit,9bit oder evt. nur 8bit. Wie kann ich den
ADC-Wert ausgeben um beurteilen zu können, welche genauigkeit er hat?

Das ganze läuft auf einem attiny15.

Den Quellcode hab ich mal anghängt.

Besten Dank schonmal im Vorraus
  Werner
Angehängte Dateien:
Gast #91169
Hallo werner

in der bechreibung deines tiny15 steht die Bitzahl deines uC. Schau mal
nach. Dann kommts bei den uC darauf an mit welcher referenzspannung sie
arbeiten. Beisiel 10 Bit ADC, 5 Volt: 2^10 = 1024
5/1023 = 4,88mV Auflösung, bei 12 Bit: 5Volt/4095 = 1,22mV. Das Zur
Auflösung. Unter dem Begriff Genauigkeit versteht man eher den fehler
des ADC und der liegt meist im Bereich +-2 LSB, also im letzten
Beispiel +-2 Digits von 1,22mV = +-2,44mV.

Gerhard
Gast #91170
Ich habe in einem alten Beitrag gelesen, das die Genauigkeit auch von
der Abtastfrequenz abhängt.
Laut Datenblatt hat der Controller 10 bit. Ich überlege jetzt nur, wie
ich zu Debug-Zwecken herrausbekomme, was hat der Controller den gerade
gemessen.
Vielleicht kann man den gemessenen Wert ja seriell über einen Pin
rausschieben und sich auf dem PC anschauen. Mal sehen ob das klappt.
Gast #91172
Oder nacheinander gemessene Werte in verschiedene EEPROM-Zellen, dann
hast du eine Aussage über die Streuung der Werte.

Mach das aber nicht zu oft (Schleife), sonst wird dein EEP müde.
Gast #91173
Besten Dank für die Hilfe. Ich mach es momentan aber was anders.
Ich gebe mir die Werte über einen Pin jetzt seriell aus und beobachte
die Signale am Ossi. Das war für mich im Moment das einfachste, da ich
mit dem Eeprom noch nicht gearbeitet habe.
Probiere gerade die Signale zu interpretieren ;-)

Als nächstes muss ich aus den 10bit nen 8bit Wert berechnen, macht man
das mit dem Z-Register (ist ja 16 bit), oder wie geht man da eigentlich
vor?

Werner
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.