Verständnisproblem: wo wird CPU-Takt eingestellt?

OP #1649937
Lesenswert?

Hallo

Wo stellt man eigentlich den CPU-Takt ein?
(ich benutze ATmegaxxx und als IDE WinAVR)

Im Makefile, so habe ich gelernt, trägt man den Takt zwar ein, aber der 
tatsächliche Takt in der CPU wird dadurch keineswegs beeinflußt.
Im avrdude-Abschnitt vom Makefile kann ich aus den avrdude-flags aber 
auch nicht erkennen, daß die CPU-Frequenz eingestellt wird.

Wenn man dagegen das Programm via AVR-Studio-4 in den µP überträgt, kann 
man wenigstens mit SUT_CKSEL einstellen, ob der interne Takt oder der 
ext crystal osz verwendet werden soll.

Bei den ext crystal osz. darf man doch wohl nur die Frequenz des 
tatsächlich vorhandenen Quarzes anwählen? Was macht dann jemand mit 
einem 16-MHz-Quarz?
Ziemlich unklar ist mir, was die startup time xk und die nachfolgenden 
ms bedeuten.

Gibt es irgendwlche Beschreibungen zu diesm Problem?

mfg
Alexander
OP #1649977
Lesenswert?

was Du schreibst, bestätigt meine Vorurteile.

Mit AVRStudio kann ich also nur wählen, ob interner Takt oder externer 
Quarz benutzt werden soll. Und letzterer taktet so, wie er gebaut ist.

Wenn man es langsamer möchte, sind dann 0,9-3, 3-8 und 8 MHZ von 
SUT_CKSEL die Vorteilermöglichkeiten, die  Du meinst?

Und was ist mit startup times und den ms?.
Vermute ich richtig, daß man vor der Benutzung von avrdude / pn erstmal 
via AVRStudio die CPU-Frequenz passend einstellen sollte?

mfg
Alexander
Persönliche Seite #1649986
Lesenswert?

1
The various choices for each clocking option is given in the following sections. When the CPU
2
wakes up from Power-down or Power-save, the selected clock source is used to time the start-
3
up, ensuring stable Oscillator operation before instruction execution starts. When the CPU starts
4
from reset, there is as an additional delay allowing the power to reach a stable level before com-
5
mencing normal operation.
(ich hoffe du kannst Englisch)

Das beantwortet (hoffentlich) deine Frage nach den startup times.
(umfangreiche Tabellen und viele weitere Informationen zum Setzten der 
Fuses findest du im jeweiligen Datenblatt deines Controllers!)
Gast #1650041
Lesenswert?

Alexander Schmeil schrieb:
> Mit AVRStudio kann ich also nur wählen, ob interner Takt oder externer
> Quarz benutzt werden soll. Und letzterer taktet so, wie er gebaut ist.

Je nach Prozessor (den du immer noch nicht verraten hast), gibt es noch 
weitere Vorteiler. Manche haben nur die CKDIV8-Fuse, mit der der Takt 
durch 8 geteilt werden kann, unabhängig davon, was Taktquelle ist, 
andere haben auch andere Taktteiler. Und dann gibt es noch welche, die 
mehrere RC-Oszillatoren haben, die mit unterschiedlichen Frequenzen 
laufen.
In der Appnote AVR054 gibt es eine Liste der verschiedenen Versionen von 
internen Oszillatoren. Du mußt dann schauen, welche dein Prozessor hat.

Per Default ist es übrigens normalerweise immer so eingestellt, daß ein 
Takt von 1 Mhz oder die diesem nächstelegene Option anliegt.

> Wenn man es langsamer möchte, sind dann 0,9-3, 3-8 und 8 MHZ von
> SUT_CKSEL die Vorteilermöglichkeiten, die  Du meinst?

Die dienen dazu, den Prozessor an die Frequenz des Quarzes anzupassen. 
Du wählst die, je nachdem, in welchem dieser Bereiche dein Quarz liegt.

> Und was ist mit startup times und den ms?.

Das ist die Zeit, die du dem Oszillator zum Einschwingen gibst, bevor 
der Prozessor losläuft.

> Vermute ich richtig, daß man vor der Benutzung von avrdude / pn erstmal
> via AVRStudio die CPU-Frequenz passend einstellen sollte?

Die kannst du auch in avrdude selbst einstellen.
Moderator Persönliche Seite #1650195
Lesenswert?

Rolf Magnus schrieb:
> Manche haben nur die CKDIV8-Fuse, mit der der Takt
> durch 8 geteilt werden kann, unabhängig davon, was Taktquelle ist,
> andere haben auch andere Taktteiler.

Die CPUs, die eine CKDIV8-Fuse haben, haben auch alle einen programmier-
baren Taktteiler (CLKPR).  Die Wirkung der CKDVI8-Fuse besteht dabei
ausschließlich darin, die Reset-Vorbelegung des CLKPR von 1:1 auf 1:8
umzustellen, aber man kann das dann in jedem Falle zur Laufzeit noch
ändern.

Ältere AVRs haben sowas aber nicht, bei denen gab es dann auch mehrere
verschiedene RC-Oszillatoren (statt nur eines einzigen, der mit 8 MHz
läuft).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren