mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie mit FUSE-Bit atmega16 auf 16Mhz laufen lassen?


Autor: Andreas Horneff (Gast)
Datum:

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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas

in Deinem Fall musst du die Fuse-Bits des ATmega setzen.
Aber Vorsicht, damit hat mancher seinen AVR unbrauchbar gemacht.

Gruß, Thomas

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andreas

die Fuse-Bits deines ATmega kannst Du nicht mittels eines Programms
setzen. Dein Programmer stellt Dir im Normalfall diese Funktion zur
Verfügung.

Gruß, Thomas

Autor: Schubiduaaaaaahhrg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andreas

welchen Programmer benutzt Du, um die Programme auf den ATmega zu
flashen ?

Autor: Andreas Horneff (Gast)
Datum:
Angehängte Dateien:

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

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu bräuchtest du erst mal ein 16Mhz Quartz.

Mfg sascha

Autor: Andreas Horneff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist schon so gut wie reingelötet :).

Und dann einfach im Programmer bei cksel0 - 3 ein Harken machen?
Oder muss ich sonst noch was aktivieren / deaktivieren.

Vielen Dank!

Autor: Hannes Lux (hannes)
Datum:

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

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, hier könntest du auch etwas über die Fusebits lernen:

http://www.mikrocontroller.net/forum/read-1-305204.html

...

Autor: Andreas Horneff (Gast)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:

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

...

Autor: Andreas Horneff (Gast)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CKOPT ist eine Fuse, mit der man einstellt, ob der interne Oszillator
für den externen Resonator mit hoher oder geringer Verstärkung
(Amplitude) arbeitet. Geringe Amplitude spart Strom, hohe Amplitude ist
störsicherer.

...

Autor: Andreas Horneff (Gast)
Datum:

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

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK (bei einer startup zeit von 4.1ms) ;-)

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Felix (Gast) schrieb am: 11.02.2009 14:20

> OK (bei einer startup zeit von 4.1ms) ;-)

Meinst Du, das interessiert ihn nach drei Jahren noch???

...

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
passt zwar nicht 100%ig ins Thema aber aber :

>2 27pF Kondensatoren

warum hält sich der Wert so stur im Forum?

im Datanblatt S.26 Tab. 8-3 steht 12..22 pF

Autor: Helmut -dc3yc (dc3yc)
Datum:

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

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.