Forum: Mikrocontroller und Digitale Elektronik Fuses für 16Mhz beim ATMEGA 644


von Udo S. (Firma: allround) (1udo1)


Lesenswert?

Hallo,

benutze AVRISP MK2;  16 MHZ Quarz am ATMEGA644PA

Beim ATMEGA16 wird bei den Fuses ExtCrystal/Resonator HIGHFreq 
angeboten.

AVRISP MK2 bietet für den ATMEGA644PA als höchste Freuenz ExtCrystal OSC 
8.0 MHZ an.

Wie kann ich die Fuses für den ATMEGA644PA so einstellen, dass er mit 
einem 16MHZ Quarz richtig taktet?

Laut Datenblatt erlaubt der ATMEGA644PA 20 MHZ, aber, wie gesagt, im 
AVRISP MK2 gibt es keine Option für höhere Frequenzen als 8 MHZ.

von Bessa Wissa (Gast)


Lesenswert?

Udo S. schrieb:
> AVRISP MK2 bietet für den ATMEGA644PA als höchste Freuenz ExtCrystal OSC
> 8.0 MHZ an.

Nein, der AVRISP MK2 bietet gar nichts an. Es ist die IDE
die dir was anbietet. Aber über die IDE schweigst du dich
aus, das ist ja auch nicht so wichtig, gell?

Ich erinnere mich an einen Dialog in dem die Takt-Optionen
für AVRs gelistet sind, eine davon lautet in etwa

"Externer Quarz, 8Mhz bis..."

Bedeuted: Quarze ab 8 Mhz aufwärts.

von nico_2010 (Gast)


Lesenswert?

Hello,
Use this site: http://www.engbedded.com/fusecalc/ to calculate fusebits 
for whatever microcontroller you want.
Specifically, for your case, use this set of settings:
lfuse:w:0xef
hfuse:w:0x99
efuse:w:0xfd

These fusebits ofers: quartz oscillator >8MHz (16 and 20 MHz included), 
disable CKDIV8 and set BrownOut at 4.3V
Best regards

von Thomas V. (Gast)


Lesenswert?

ich wähle beim MEGA644 mit 16MHz Quarz im Atmel Studio unter SUT_CKSEL 
folgendes aus:

EXTOSC_8MHZ_XX_16KCK_65MS

funktioniert einwandfrei

Wie Nico schon schreibt: CKDIV8 disable um die volle Taktfrequenz zu 
nutzen.

In meinem Fall ergibt sich durch die restlichen Einstellungen:
lfuse:w:0xff
hfuse:w:0xd9
efuse:w:0xff

von Stefan F. (Gast)


Lesenswert?

> lfuse:w:0xff
> hfuse:w:0xd9
> efuse:w:0xff

JTAGEN ist hierbei enabled. Nur so als Hinweis. Nicht daß es gleich 
heisst, daß ein paar I/O Pins nicht funktionieren.

von Thomas V. (Gast)


Angehängte Dateien:

Lesenswert?

nö, ist es nicht.
Bei Nicos Beispiel wäre JTAGEN enabled

Wobei das Beispiel ohnehin für den Fragesteller irrelevant ist da er 
sicherlich eine vollkommen andere Konfiguration hat :-)

von Stefan F. (Gast)


Lesenswert?

Ich hatte irrtümlicherweise den ATmega644P verwendet, um die fuses zu 
kontrollieren.

Du (Thomas V.) hast den ATmega644PA verwendet. Bei dem sind die Fuses 
anders.

von Thomas V. (Gast)


Lesenswert?

nein, ist beim 644P, 644PA und auch beim 644 nicht anders!

hfuse:  0xd9    JTAGEN disabled
hfuse:  0x99    JTAGEN enabled

von Stefan F. (Gast)


Lesenswert?

Hmm, komisch. Jetzt verhalten sich bei mir alle drei im Engbedded fuse 
Calculator gleich. Vielleicht hat mein Javascript im Browser gesponnen.

von Thomas V. (Gast)


Lesenswert?

Stefan, ich hab das direkt im Atmel Studio geprüft, zumal ich eh den 
ganzen Tag mit den Mega644PA hier arbeite  :-)
Das passt schon....

von Rudolph R. (rudolph)


Lesenswert?

Da ich sowieso quasi immer die gleichen Einstellungen brauche, 
compiliere ich die Fuse-Einstellungen mit ein, zum Beispiel für den 
Mega16M1 auf 16MHz mit Bootloader:
1
FUSES =
2
{
3
  .low = 0xdf,
4
  .high = 0xd8,
5
  .extended = 0xfe,
6
};

Dann beim ersten Brennen das .elf als Production-File brennen und dabei 
den Haken bei Fuses mit aktivieren, fertig.
Copy-Paste ins nächste Projekt.

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.