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!
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*
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.
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?
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.