ADC prescaler

Gast #167795
Hallo,

Ich habe gerade den ADC meines ATmega16 ausprobiert, und zwar mit
folgenden Einstellungen:

/* set prescaler */
ADCSRA = prescaler;
/* set reference voltage */
ADMUX |= (1 << REFS0);
/* enable the ADC */
ADCSRA |= (1 << ADEN);

Ich wollte ausprobieren, was eigentlich die verschiedenen Prescaler bei
ein und derselben Messung bewirken. Dazu verwende ich ein Potentiometer,
das zwischen 0V und 5V liefert.

Mache ich nun eine Messung bei 0V, so ergeben sich folgende Ergebnisse
auf den Siebensegmentanzeigen:
Prescaler = 128: 0x0000
Prescaler =   2: 0x03FF
Prescaler =   4: 0x001F
Prescaler =   8: 0x0013
Prescaler =  16: 0x0007
Prescaler =  32: 0x0000
Prescaler =  64: 0x0000

Bei 5V:
Prescaler = 128: 0x03FF
Prescaler =   2: 0x03FF
Prescaler =   4: 0x03E0
Prescaler =   8: 0x03E7
Prescaler =  16: 0x03F8
Prescaler =  32: 0x03FF
Prescaler =  64: 0x03FF

Ich finde das zwar faszinierend doch kann ich diese Ergebnisse nicht
deuten.
Ich habe nur gelesen, dass der Prescaler auf die UmwandlungsZEIT
Einfluss hat, aber dass sich dadurch die Messergebnisse unterscheiden
verwirrt mich...

Kann mir bitte jemand erklären, was diese Messergebnisse bedeuten?
Gast
Da die Messungen um so stärker vom erwarteten Ergebnis abweichen je
kleiner der Prescalerwert wird, vermute ich mal, dass einfach die
Taktrate zu hoch ist (PICs zeigen ähnliches Verhalten).
Am besten mal das Datenblatt dazu befragen.


Dieter
Gast
@ testfall

Datenblatt Mega16 sagt auf Seite 205 ausdrücklich, dass die
Eingangsfrequenz für den ADC zwischen 50 und 200 kHz liegen sollte.

Der Vorteiler ist dazu entsprechend der Taktfrequenz einzustellen.
Gast
@compucat
Das habe ich natürlich auch gelesen; Ich habe ja auch geschrieben, dass
zu diesem speziellen Verhalten nichts zu finden ist, und ich gerne
wüsste, wie man dieses interpretiert!
Gast
@testfall

wenn eine sequentielle Näherungsschaltung eine schaltungsbedingte
bestimmte (maximale) Eingangstaktfrequenz für eine bestimmte Auflösung
hat, ist die Umwandlung bei einer höheren Taktfrequenz nicht mehr
möglich.

Wie im Datenblatt angegeben ist, ist bei höherer Taktfrequenz eine
kleinere Auflösung zu wählen.
Gast
Das ist doch ein schönes Ergebnis. Damit gibt es beim Teiler 32
entsprechend 500kHz noch keine Abweichungen. Das ist immerhin um den
Faktor 2,5 schneller, als von Atmel spezifiziert.

Warum Du aber oberhalb von 500kHz diese Abweichungen bekommst,
weiss ich auch nicht. Hast Du eine Einzelmessung gemacht, oder
mehrfach hintereinander gemessen? Vielleicht reicht bei einer
Einzelmessung die Zeit zum Laden der S&H-Stufe nicht aus.

Gruß
Gerd

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.