www.mikrocontroller.net

Forum: Compiler & IDEs Verständnisproblem: wo wird CPU-Takt eingestellt?


Autor: Alexander Schmeil (knut740)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Silvan König (silvan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der CPU-Takt hängt vom verwendeten Quarz ab. Das, was du im Makefile 
einträgst ist die Geschwindigkeit, die beim Compilieren als Wert benutzt 
wird (falls benötig, z.B. für delays). Des Weiteren wird die 
Geschwindigkeit durch den Vorteiler bestimmt. Den kannst du in den so 
genannten Fusebits einstellen (hast du scheinbar schon entdeckt)

Autor: Alexander Schmeil (knut740)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Silvan König (silvan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst du eigentlich für einen Controller Programmieren? Es gibt für 
jeden unterschiedliche Einstellungsmöglichkeiten.
SUT_CKSEL klingt eher nach ext. Taktquelle (sorry, bin selbst noch 
Anfänger. Ich guck das sofort nach)

Autor: Gastofatz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Und was ist mit startup times und den ms?.

Was es damit auf sich hat findest Du auch im Datenblatt erklärt. Der 
Abschnitt heißt "Clock Startup Sequence". Schon gelesen? :-)

Autor: Alexander Schmeil (knut740)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gastofatz schrieb:
>>Und was ist mit startup times und den ms?.
>
> Was es damit auf sich hat findest Du auch im Datenblatt erklärt. Der
> Abschnitt heißt "Clock Startup Sequence". Schon gelesen? :-)

Nein, weil ich nicht wußte, wo ich was suchen sollte. Ich hjole es nach.
mfg

Autor: Silvan König (silvan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
The various choices for each clocking option is given in the following sections. When the CPU
wakes up from Power-down or Power-save, the selected clock source is used to time the start-
up, ensuring stable Oscillator operation before instruction execution starts. When the CPU starts
from reset, there is as an additional delay allowing the power to reach a stable level before com-
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!)

Autor: Silvan König (silvan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mist, zu langsam

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann nutz doch einfach AVR studio als oberfläche
so schlecht isses nun auch wieder nicht
wer sich mal nach brauchbaren tools für ARM umsieht weiß was ich meine

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Alexander Schmeil (knut740)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf Magnus schrieb:
> Je nach Prozessor (den du immer noch nicht verraten hast),

Es handelt sich um einen ATmega 644

Gruß
Alexander

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.