www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega88 ADC prescaler Einstellungen


Autor: Alexander S. (alexander_s58)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Verständniss Problem wie genau der prescaler anhand der 3 
BITs funktioniert

http://www.atmel.com/dyn/resources/prod_documents/...
Seite 246 , bzw. "23.4 Prescaling and Conversion Timing"

Durch setzen von ADPS[0-2] in ADCSRA kann ich den prescaler einstellen.
Laut Bild im PDF kann ich 7 verschiedene prescaler einstellen

Mit folgendem C-Code setze ich den prescaler auf ck/8
ADCSRA = (1<<ADPS1) | (1<<ADPS0);

Nach meinem Verständniss müsste das allerdings ck/16 sein
ADPS2  ADPS1  ADPS0
0      0      0    ck/2
0      0      1    ck/4
0      1      0    ck/8
0      1      1    ck/16
1      0      0    ck/32
1      0      1    ck/64
1      1      1    ck/128

Könnte mir da wer auf die Sprünge helfen ?

mfg

Alex

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander S. schrieb:
> Mit folgendem C-Code setze ich den prescaler auf ck/8
>
ADCSRA = (1<<ADPS1) | (1<<ADPS0);

Ja.

>
> Nach meinem Verständniss müsste das allerdings ck/16 sein

Nein. Schau dir die Tabelle nochmal an, zumindest in meinem Datenblatt 
schaut die so aus:
ADPS2  ADPS1  ADPS0
0      0      0    ck/2
0      0      1    ck/2
0      1      0    ck/4
0      1      1    ck/8
1      0      0    ck/16
1      0      1    ck/32
1      1      0    ck/64
1      1      1    ck/128

Nachtrag: das verlinkte Datenblatt stimmt mit meinem überein.

Gruß
David

Autor: Alexander S. (alexander_s58)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke David,

da hab ich doch glatt 1 bit vergessen...

Ich geh jetzt in die Ecke mich schämen ;)

mfg

Alex

Autor: Helfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schu auf die Versionsnummer des Datenblatts.

In meiner lokalen Kopie (2545M–AVR–09/07) gilt:

ADPS2 ADPS1 ADPS0 Division Factor
0     1     1     8

also passend zu

ADCSRA = (1<<ADPS1) | (1<<ADPS0);

Autor: Helfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
s/Schu/Schau/

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David Madl schrieb:
> Nein. Schau dir die Tabelle nochmal an, zumindest in meinem Datenblatt
> schaut die so aus:
> ADPS2  ADPS1  ADPS0
> 0      0      0    ck/2
> 0      0      1    ck/2
> 0      1      0    ck/4
> 0      1      1    ck/8
> 1      0      0    ck/16
> 1      0      1    ck/32
> 1      1      0    ck/64
> 1      1      1    ck/128

Bei mir auch. Aber stimmt es tatsachlich, daß 0 und 1 beide den 
Prescaler auf 2 setzten, oder ist das ein Fehler im Datenblatt?

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was dafür spricht, daß es kein Fehler ist:
By default, the successive approximation circuitry requires an input clock
frequency between 50 kHz and 200 kHz to get maximum resolution. 
und
The ADC module contains a prescaler, which generates an acceptable ADC clock
frequency from any CPU frequency above 100 kHz.

Ein Prescaler 1 ist bei der Spezifikation nicht nötig.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.