Forum: Mikrocontroller und Digitale Elektronik ADC prescaler


von testfall (Gast)


Lesenswert?

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?

von dds5 (Gast)


Lesenswert?

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

von testfall (Gast)


Lesenswert?

Leider konnte ich im Datenblatt nichts näheres zu diesem Verhalten
finden.

von compucat (Gast)


Lesenswert?

@ 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.

von testfall (Gast)


Lesenswert?

@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!

von compucat (Gast)


Lesenswert?

@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.

von Gerd Laschinski (Gast)


Lesenswert?

Hallo testfall,

mit welcher Taktfrequenz läuft denn Dein Mega16?

Gruß
Gerd

von testfall (Gast)


Lesenswert?

Standardmäßig mit 16MHz, und eben je nach Prescaler (-> siehe Tabelle).

von Gerd Laschinski (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.