Forum: Mikrocontroller und Digitale Elektronik Taktfrequenz am Atmega32


von Joy (Gast)


Lesenswert?

Hallo Zusammen,

ich bin Neueinsteiger und lese mich gerade in die Grundlagen für die 
AVR-Programmierung ein.

Meine Frage bezieht sich auf die verschiedenen Möglichkeiten zB. einen 
ATmega32 zu betakten. Sieht man sich das Datenblatt ( 
http://www.atmel.com/Images/doc2503.pdf ) des Atmega32 an, so wird auf 
der ersten Seite unter Speed-Range ein Frequenzbereich von 0-16 MHz 
empfohlen.

Der Atmega32 wird nach Datenblatt mit einem aktiviertem internen 
Oszillator ausgeliefert, der je nach Einstellung Taktfrequenzen zwischen 
1-8 Mhz liefern kann und im default-Zustand mit 1 MHz schwingt.

Desweiteren habe ich die Möglichkeit über einen externen Quarzoszillator 
eine Taktfrequenz vorzugeben. In vielen Teilen der verschiedenen 
Tutorials wurden dort anscheinend Quarze angeschlossen, die mit bis zu 
40 Mhz schwingen (ich vermute dies, da oft in der Variable F_CPU des 
Codes die Taktfrequenz gespeichert wird). Meine Frage ist es nun, 
weshalb oft so hochfrequente Quarze angeschlossen werden, obwohl für 
fast die gesamte Atmegareihe einen Frequenzbereich von 0-16 MHz 
angegeben wird? Warum ist das möglich? Welche Auswirkungen hat dies? Was 
ist die maximal mögliche Taktfrequenz?

Es wäre schön wenn jemand mir bei diesem Verständnisproblem helfen kann 
und eventuell auch kurz erklären kann, welche Punkte im Datenblatt für 
die Taktung entscheidend sind.

Herzlichen Dank für die Hilfe!

von Peter II (Gast)


Lesenswert?

Joy schrieb:
> In vielen Teilen der verschiedenen
> Tutorials wurden dort anscheinend Quarze angeschlossen, die mit bis zu
> 40 Mhz schwingen (ich vermute dies, da oft in der Variable F_CPU des
> Codes die Taktfrequenz gespeichert wird)

bist du sicher das du nicht 4 Mhz gesehen hast? Mit 40 Mhz läuft kein 
Atmega*

von Cyblord -. (cyblord)


Lesenswert?

Joy schrieb:
> In vielen Teilen der verschiedenen
> Tutorials wurden dort anscheinend Quarze angeschlossen, die mit bis zu
> 40 Mhz schwingen

Das halte ich für ein Gerücht.

von Joy (Gast)


Lesenswert?

Oh, gerade nochmal nachgeschaut und nicht richtig gelesen. Hinten wurde 
an die "Zahl" ein UL angehängt und dadurch in meinem Kopf eine lange 
Zahl gebastelt:-) Danke das erpart mir kopfzerbrechen.

Sind meine anderen Annahmen richtig, zwecks Auslieferungszustand und 
maximaler Taktfrequenz von 16 MHz?

von Cyblord -. (cyblord)


Lesenswert?

Joy schrieb:
> Sind meine anderen Annahmen richtig, zwecks Auslieferungszustand und
> maximaler Taktfrequenz von 16 MHz?
Da braucht es keine Annahmen, da guckt man ins Datenblatt. Die max. 
Taktfrequenz hängt nämlich auch von der Eingangsspannung ab. Das steht 
dort aber auch. Mit Diagramm.

1 MHz Auslieferungszustand stimmt bei den meisten AVRs. Oftmals sind die 
auf 8 MHz gestellt mit gesetzter CLKDIV8 Fuse. Also 1 MHz.

gruß cyblord

von Peter R. (pnu)


Lesenswert?

Joy schrieb:
> Meine Frage ist es nun,
> weshalb oft so hochfrequente Quarze angeschlossen werden, obwohl für
> fast die gesamte Atmegareihe einen Frequenzbereich von 0-16 MHz
> angegeben wird? Warum ist das möglich? Welche Auswirkungen hat dies? Was
> ist die maximal mögliche Taktfrequenz?

Bei der Wahl der Quarzfrequenz muss man beachten:
Je langsamer der Takt, desto geringer der Stromverbrauch.
Je schneller der Takt, desto schnellere Reaktion ist auf ein Ereignis 
möglich, desto mehr komplizierte Aktionen lassen sich gleichzeitig in 
der zur Verfügung stehenden Zeit ausführen.
Es gibt einen Frequenzbereich (etwa 4...16MHz) in dem die Quarze am 
preiswertesten herstellbar sind.
Es gibt Vorzugsfrequenzen, die wegen Massenherstellung besonders 
preiswert sind (einige "runde" Frequenzen, Baudrate-Frequenzen)
Bastler wagen auch ein Übertakten, gehen also mit der Frequenz über den 
empfohlenen Bereich hinaus.
Dann muss man aber oft auf einige Funktionen verzichten, weil diese bei 
Übertaktung, Temperaturänderung oder Spannungsänderung schnell 
ausfallen.
Lange Zeit ging man über 16MHz nicht hinaus, weil dann die Quarze in der 
Herstellung zu teuer wurden. und an die im IC vorhandenen 
Oszillatorschaltungen Ansprüche entstehen, denen schwer genügt werden 
kann.
So ist eine häufige Lösung: Quarz etwas unter 20MHz. Interner Oszillator 
hat, per PLL daran gekoppelt, ein ganzzzahliges Vielfaches an 
Schwingfrequenz.
Viele Kontroller von atmel hatten/haben die 16MHz-Fähigkeit auch nur bei 
5V Betriebsspannung, nicht mehr im 3,3V-Bereich.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

cyblord ---- schrieb:
> Da braucht es keine Annahmen, da guckt man ins Datenblatt. Die max.
> Taktfrequenz hängt nämlich auch von der Eingangsspannung ab. Das steht
> dort aber auch. Mit Diagramm.

Seh ich auch so. Aber wenn jeder ins Datenblatt schauen würde, gäbe es 
hier im Forum kaum Beiträge. ;-)

> 1 MHz Auslieferungszustand stimmt bei den meisten AVRs. Oftmals sind die
> auf 8 MHz gestellt mit gesetzter CLKDIV8 Fuse. Also 1 MHz.

Auch korrekt. Allerdings handelt es sich beim ATmega32 um ein echtes 
Museumsstück, er besitzt kein CKDIV8-Fuse-Bit. Der Nachfolger des 
Nachfolgers des ATmega32, nämlich der ATmega324A, hat sowas.

Für den alten ATmega32 gibt es mehrere Fuses, über die man den internen 
Oszillator auf 1, 2, 4 oder 8 MHz einstellen kann.

Der aktuelle ATmega324A hat nur das CKDIV8-Fuse-Bit für die 
Takt-Voreinstellung. Den Takt, den man dann wirklich haben will, wählt 
man am besten per Software über das Register CLKPR. Die 8 MHz lassen 
sich damit durch jede beliebige 2er-Potenz zwischen 1 und 256 teilen, 
man hat also deutlich mehr Auswahl und braucht keine Fuse verbiegen.
Zudem läuft der neuere Typ bei Quarz-Betrieb mit maximal 20 MHz (bzw. 
maximal 4 MHz bei 1,8 Volt).

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.