Wie mit FUSE-Bit atmega16 auf 16Mhz laufen lassen?

Gast #305517
Lesenswert?

Hallo zusammen,

ich hab hier ein kleines Problem. Habe ein Atmega16. An XTAL einen 8
MHz Quarz, und 2 27pF Kondensatoren.
Kann mir jm. sagen, wo ich jetzt was in mein Programm schreiben muss,
damit der Controller auf 16Mhz und nicht auf dem Auslieferzustand
(1Mhz) läuft?
Hab in der Initialisierungsphase von meinem Programm einfach mal cksel
= 0x07; geschrieben, aber da war ich wohl zu naiv ;). Funzt leider
nicht. Wie mach ich das?

Danke für eure Hilfe!
Gast #305521
Lesenswert?

Oh jeh ;).

Ich muss sagen, ich bin ein echter Anfänger. Hab bis jetzt noch nicht
so viel mit Atmega, bzw. prinzipiell mit Controllern gearbeitet. Wollte
mich da jetzt aber mal einarbeiten. Ich hab mal ein paar Taster
eingelesen (Interrupts) und ein LC-Display angesteuert.
Jetzt hab ich für eine Bastellei ein Timer gebraucht und jetzt fängt
das Problem an. Hab eben gemerkt, das da was mit dem Controller-Takt
nicht stimmen kann, da mein Timer hinten und vorne nicht richtig läuft.
Also läuft schon richtig, aber zu langsam.
Hab dann mal im Datenblatt gelesen, dass der im Auslieferungszustand
auf 1Mhz steht => die Erklärung für mein Problem.

Ich habe mir zum Programmieren des Controllers eine kleine Schaltung
zusammen gebaut die ich im Internet gefunden habe. Und zwar hier:
http://www.rowalt.de/mc/avr/progd.htm
(den oberen) und hab dann die Files immer mit dem Tool, dass es auch
auf der Seite gibt, in den Controller programmiert.
Hab jetzt gesehen, dass es da auch ein Config - Menü gibt. Da kann man
auch so was wie FUSE-Bits setzen, das bringt mich schon mal ein ganzen
Schritt weiter.
Ich habe von dem Config-Menü mal ein Screenshot gemacht, kann mir jm.
sagen, was ich bei meiner Hardware (Atmega 16Mhz, 8Mhz Quarz, 22pF) da
an Harken machen muss, damit der Controller auf 16Mhz rennt?

Wäre super nett von euch!!!
Angehängte Dateien:
#305524
Lesenswert?

Lass die Finger von den Fusebits, bis du die Beschreibung der Fusebits
im Datenblatt verstanden hast.

Schreib dir die Fusebits und die Werkseinstellung aus dem Datenblatt
raus, vergleiche das mit den aktuellem Zustand der Fuses im AVR und
ziehe dann daraus deine Schlüsse. So hast du die geringste Gefahr,
durch ein Missverständnis etwas falsch zu machen. Denn dann ist das
Geschrei wieder groß, wie durchschnittlich zwei mal die Woche hier im
Forum.

...
Gast #305526
Lesenswert?

Hallo noch mal.

Also ich bin jetzt schon ein bisschen weiter gekommen. Ich habe es
geschafft, dass mein Atmega16 auf 16Mhz läuft, aber leider nur mit
einem externen Oszilator, nicht aber mit einem Quarz. Ich verstehe die
Tabelle im Datenblatt nicht, da steht bei Crystal Oszillator Operating
Modes (S.24) das ich da nur Quarze bis max 8Mhz einstellen kann
(CKSEL3..1 = 111). Ich habe jetzt aber ein 16Mhz Quarz und möchte den
aktivieren?!

Wie mache ich das?

Danke für eure Hilfe!
#305527
Lesenswert?

Das scheint etwas missverständlich formuliert zu sein.

Ich hatte einen Mega16 mit 3,6864MHz (schneller brauche ich sehr
selten, eigentlich gar nicht) betrieben, die (eigentlich logische)
Einstellung für Crystal Oscillator ging nicht. Erst die Einstellung
Ceramik Resonator funktionierte. Das war übrigend das einzige mal, dass
ich den HV-Modus des STK500 benutzt habe.

...
Gast #305528
Lesenswert?

Habe da anscheinend was im Text überlesen. Da steht, das die max.
Frequenz für Resonatore 8Mhz ist, wenn CKOPT nicht programmiert ist und
16Mhz, wenn CKOPT programmiert ist.

Was ist denn CKOPT? Finde das gar nicht in meinen Config-Einstellungen?
Kann mir jm. sagen, was ich einstellen muss?

Datenblatt auf S. 24

DANKE!
Gast #305530
Lesenswert?

Ah, interessant, DANKE!

Also wenn ich das jetzt richtig verstanden habe, muss ich, damit mein
Controller mit externem 16Mhz quarz auf 16Mhz läuft,
CKOPT = 1;
CKSEL1 = 1;
CKSEL2 = 1;
CKSEL3 = 1;
==> müssten doch dann 16Mhz sein, oder?

Und
CKSEL0 = 1;
SUT1 = 1;
SUT0 = 0;
==> müsste doch dann eine Start-Up-Time von 16K CK sein, oder?
Meint ihr, das funktioniert so, oder zerschieß ich da irgendwas?

Wäre nett, wenn jm, der sich damit auskennt, mal einwände oder ein OK
posten könnte.

Dann bin ich auch zufrieden!!! :)
#1144411
Lesenswert?

Klaus,
die Lastkapazität hängt nicht nur vom Datenblatt ab, sondern auch vom 
Quarz! Und 27pF ist nicht nur meiner Erfahrung nach ein recht guter 
Wert; natürlich gehen 22pF bis 33pF auch, da ändert sich halt die 
Frequenz ein bisschen. Wenn du's genau haben willst, machst du einen C 
zum Trimmer und gleichst dann bei konstanter Temperatur und 
Betriebsspannung ab.

Servus,
Helmut.

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