Forum: Mikrocontroller und Digitale Elektronik ATMEGA32U4-AU Clockspeed Einstellungen


von Marco G. (arccra)


Lesenswert?

Hallo zusammen,

ich bin da auf einen für mich etwas seltsamen Fall gestoßen. Ich habe 
ein Board mit einem ATMEGA32U4-AU und einem 16 MHz Quarz gekauft. Ich 
habe mir mal den schon installierten Bootloader angeschaut und bin auf 
folgende Zeile gestoßen:

SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS

Jetzt frage ich mich ob das überhaupt möglich ist einen µC an dem ein 
16MHz Quarz angeschlossen ist (habe das kontrolliert, da ist ein 16MHz 
Quarz auf dem Board), mit 8MHz zu betreiben?

Des Weiteren wollte ich mir mal ansehen wie die Einstellungen sein 
müssten wenn dieser auf 16MHz laufen sollte. Hierzu bin ich auf folgende 
Seite gestoßen:
http://www.engbedded.com/fusecalc

Wenn ich hier nun den ATMEGA32U4 einstelle, bekomme ich nur einen 
Taktfrequenz bis zu 8MHz angezeigt. Lt. Datenblatt sollte dieser aber 
mit bis zu 16MHz laufen.

Kann mich jemand aufklären?

Grüße, Marco

von Oliver J. (skriptkiddy)


Lesenswert?

Marco G. schrieb:
> SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS
Das ist wahrscheinlich die Einstellung:
Ext. Crystal Osc.; Frequency 8.0-    MHz; Start-up time: 16K CK + 65 ms

Und das bedeutet, dass der Quarz im Bereich von 8MHz bis 16MHz liegen 
muss.


PS. Zeig mal den Link zum Quellcode.

Gruß Oliver

von Marco G. (arccra)


Lesenswert?

Hallo Oliver J.,

Hier der Link dazu:
https://github.com/ArcBotics/Servotor32/blob/master/Bootloader/Fuse%20Settings.txt

Ich hoffe das hilft dir weiter. Danke schon mal.

Grüße, Marco

von spess53 (Gast)


Lesenswert?

Hi

>Jetzt frage ich mich ob das überhaupt möglich ist einen µC an dem ein
>16MHz Quarz angeschlossen ist (habe das kontrolliert, da ist ein 16MHz
>Quarz auf dem Board), mit 8MHz zu betreiben?

Der ATMEGA32U4 hat doch ein 'Clock Prescaler Register'. Damit lässt sich 
aus einer Taktquelle von 16 MHz ein Systemtakt von 8 MHz einstellen.

MfG Spess

von Marco G. (arccra)


Lesenswert?

Ah,

verstehe ich das dann richtig: Der ATMEGA32U4 läuft wahrscheinlich mit 
16MHz und wird Softwaremäßig im Bootloader durch die Zeile SUT_CKSEL = 
EXTXOSC_8MHZ_XX_16KCK_65MS auf 8MHz herunter getaktet?

Das würde es erklären. Aber warum man so etwas machen sollte verstehe 
ich nicht ganz. Man muss aber nicht alles verstehen :)

Ich hoffe heute abend kommt mein Amtel Programmer und dann werde ich die 
Fuses mal auslesen. Danke für den Tipp.

Grüße, Marco

von Karl H. (kbuchegg)


Lesenswert?

Marco G. schrieb:

> Kann mich jemand aufklären?

Wie schon gesagt:
Die Einstellung bedeutet 'ab 8 Mhz'

Hintergrund: der µC-interne 'Schwingkreis' muss elektrisch etwas anders 
abgestimmt werden, je nach Quarzfrequenz. Bei kleinen Frequenzen wird 
eine etwas andere Abstimmung genutzt, als bei großen. Daher muss man per 
Fuse nur angeben, welchen Typus man hat, welche Abstimmung man also 
benutzen will.

Da es wohl ein paar Tausend verschiedene Quarzfrequenzen zwischen 1Mhz 
und 16Mhz geben dürfte, wäre das ein bischen witzlos, wenn man jede 
einzelne per Fuse einstellbar machen müsste. Das wären dann sehr viele 
Fuses :-)
Nein. Du musst ihm nur sagen: Mehr oder weniger als 8Mhz. Dadurch ist 
dann der Schwingkreis soweit abgeglichen, dass es mit dieser 
Quarzfrequenz keine Probleme geben wird und der Quarz auch wirklich 
anschwingt.

von Marco G. (arccra)


Lesenswert?

Ah,

jetzt habe ich es kapiert. Man sagt ihm nur dass da ein Quarz ist, der 
mehr als 8MHz hat, und er übernimmt dann die ihm gegebene Quarzfrequenz 
einfach vom Quarz (hier dann eben 16MHz).

Ich war nur etwas irritiert da ich bei meinem ATMega8 genau die 16MHz 
Quarzfrequenz einstellen konnte.

Danke für die Aufklärung!

Grüße, Marco

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.