Forum: Mikrocontroller und Digitale Elektronik Atmega1284P Quarz in AVR-Studio einstellen


von IH453 (Gast)


Lesenswert?

Hallo,

ich möchte gerne im AVR-Studio den Atmega1284P auf einen 16 Mhz Quarz 
einstellen.
Leider finde ich hier nicht die Möglichkeiten, wie sie beim Atmega32 vom 
AVR-Studio angezeigt werden.

Folgende Möglichkeiten werden bei dem 1284P angezeigt:
EXTCLK
INTRCOSC
EXTLOFXTAL
FSOSC
EXTXOSC

Das einzige was hier Sinn macht ist der EXTLOFXTAL.
Wenn ich nach LowFrequenz im Datenblatt suchen, erhalte ich "optimized 
for use with a 32.768 kHz".

Was muss ich auswählen, damit ich meinen 16 Mhz Quarz mit den zwei 22pF 
Kondensatoren betreiben kann?


Gruß IH453

von sly (Gast)


Lesenswert?

low_fuses=0xd7
high_fuses=0xd6
extended_fuses=0xfd

kein Gewähr

von Georg G. (df2au)


Lesenswert?

IH453 schrieb:
> EXTCLK
Externer Takt per Quarz oder Keramik Resonator. Nur noch passend Bauart, 
Frequenz, Anschwingzeit und Totzeit nach Reset wählen. Wenn das Gerät 
nicht extrem schnell nach dem Einschalten aktiv sein muss, lieber 10ms 
mehr zugeben. Die Einstellung, die du nehmen solltest.

> INTRCOSC
interner RC Oszillator, willst du nicht.

> EXTLOFXTAL
externer Quarz mit niedriger Frequenz. Auch nicht richtig.

> FSOSC
Full Swing Oszillator. Gute Wahl, wenn man keine EMV Probleme hat. 
Schwingt sauber und wenig störanfällig. Normale Quarze sollten diese 
Last aushalten.

> EXTXOSC
Externer Taktgenerator. Hast du nicht.

von IH453 (Gast)


Lesenswert?

Danke für eure schnellen Antworten.
Insbesondere Georg G. für die ausführliche Beschreibung.
Ähnlich habe ich mir die Abkürzungen auch hergeleitet, jedoch bin ich 
bei EXTCLK davon ausgegangen, dass hiermit ein externer Takt gemeint 
ist, welcher von einem anderen IC o.Ä. geliefert wird.

Eine Frage hätte ich noch:
bei EXTCLK finde ich:

EXTCLK_6CK_0MS
EXTCLK_6CK_4MS
EXTCLK_6CK_65MS

Warum sind hier keine Frequenzangaben zu finden? Lieg dies daran, dass 
die Quarze bereits einen festen Wert haben?


Gruß IH453

von Ingo L. (corrtexx)


Lesenswert?

IH453 schrieb:
> Warum sind hier keine Frequenzangaben zu finden? Lieg dies daran, dass
> die Quarze bereits einen festen Wert haben?
Nein, das liegt daran das es sich hier um eine externe Taktquelle 
handelt, deren Frequenz fast beliebig sein kann (im Rahmen der 
Spezifikation). Das ist also kein Quarz.

von Georg G. (df2au)


Lesenswert?

Ingo Less schrieb:
> Nein, das liegt daran das es sich hier um eine externe Taktquelle
> handelt

Atmel ist da leider etwas unpräzise.
EXTCLK ist ein externer Quarz oder Keramik Resonator.
Die externe Taktquelle ist EXTXOSC.


IH453 schrieb:
> EXTCLK_6CK_0MS
Verzögerung nach Reset ist 6 Taktimpulse + 0ms
> EXTCLK_6CK_4MS
Verzögerung nach Reset ist 6 Taktimpulse + 4ms
> EXTCLK_6CK_65MS
Verzögerung nach Reset ist 6 Taktimpulse + 65ms

Im Datenblatt ist das recht gut beschrieben. Du findest dort auch alle 
Vorteile und Nachteile der diversen Einstellungen sowie die nicht 
empfohlenen Kombinationen.

von IH453 (Gast)


Lesenswert?

Prima.
Danke für deine Antwort.

von IH453 (Gast)


Lesenswert?

Ich hatte die Nachricht von Ingo Less eben wohl übersehen. Mittleweile 
weis ich, dass man mehr Informationen angezeigt bekommt, wenn man mit 
der Maus über den jeweiligen Modus fährt.

So steht bei
EXTCLK: Ext Clock....
und bei
EXTXOSC: Ext. Chrystal...

Die Frequenzbereiche, welche bei EXTXOSC angegeben sind entsprechenen 
denen, welche im Manual unter "Low Power Crystal Oscillator" stehen.

Ebenso finde ich hier auch den Abschnitt "External Clock" mit einem 
Wertebereich von 0 - 20 Mhz und genau drei verschiedenen Delay-Zeiten.

Da ich mich auf keinen Fall, aufgrund falscher Fuse-Bits, aussperren 
will, wollte ich noch einmal nachfragen, ob in der obigen Beschreibung 
vielleicht EXTCLK und EXTXOSC vertauscht wurden?


Gruß IH453

von Georg G. (df2au)


Lesenswert?

Offensichtlich verwenden wir verschiedene Versionen des Studio. Das 
Datenblatt hat in jedem Fall Recht. Stell die deine gewünschte Version 
im Studio ein, programmiere sie aber nicht, notiere dir die HEX-Werte 
und vergleiche dann mit dem Datenblatt.

von IH453 (Gast)


Lesenswert?

Ich bin nicht davon ausgegangen, dass es bei den Studioversionen so 
große Unterschiede gibt. Das nächtse Mal gebe ich die Studioversion mit 
an.

Danke für deine Hilfe.
Werde dies dann so umsetzen.

von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Bei mir sieht das so aus (Studio 4.18SP3), da muss man nicht raten, da 
steht Klartext.

von c-hater (Gast)


Lesenswert?

IH453 schrieb:

> Da ich mich auf keinen Fall, aufgrund falscher Fuse-Bits, aussperren
> will, wollte ich noch einmal nachfragen, ob in der obigen Beschreibung
> vielleicht EXTCLK und EXTXOSC vertauscht wurden?

Du meinst die von "Georg G."? Ja da sind die beiden Sachen genau 
vertauscht, d.h.: du hättest dich erstmal ausgesperrt.

Allerdings nicht schlimm, ein auf EXTCLK gefuseter läßt sich immerhin 
relativ leicht wieder zum Leben zu erwecken, selbst wenn er schon auf 
SMD gelötet ist.

Trotzdem eine Sache, die man nicht unbedingt braucht, also war es 
einigermaßen clever, dass du selber aufgepaßt hast.

von IH453 (Gast)


Lesenswert?

Danke euch Beiden für eure Antworten.
Ich habe EXTOSC_8MHZ_XX_16KCK_65MS gewählt und mich nicht ausgesperrt.
Soweit so gut.
Jetzt habe ich jedoch das Problem, dass wohl noch irgendetwas fehlt.

Wähle ich
1
F_CPU 1000000
, so funktioniert der folgende Code ziemlich gut.
1
PORTC=0b00000001;
2
_delay_ms(1000);
3
PORTC=0b00000000;
4
_delay_ms(1000);

Der Takt entspricht ungefähr einer Sekunde.
Setze ich nun
1
F_CPU 16000000
, so brauch der obige Code ein vielfaches der Zeit von zuvor. Obwohl 
diese ja konst. bleiben müsste.

Ich hoffe ihr könnt mir auch diesesmal weiter helfen.
Bei dem Atmega32 waren keine weiteren Einstellungen notwendig.


Gruß IH453

von IH453 (Gast)


Lesenswert?

Ich habe nun das CLKPR-Register noch gesetzt und jetzt sollte es 
funktionieren.

von Joachim B. (jar)


Lesenswert?

IH453 schrieb:
> Ich habe EXTOSC_8MHZ_XX_16KCK_65MS gewählt und mich nicht ausgesperrt.
> Soweit so gut.
> Jetzt habe ich jedoch das Problem, dass wohl noch irgendetwas fehlt.
>
> Wähle ichF_CPU 1000000, so funktioniert der folgende Code ziemlich gut.

F_CPU muss natürlich im Code gesetzt sein passend zum Quarz!

Ich nutze auch Studio 4.18 SR3 dort unter Projekt Settings.
Auch muss der Haken CLOCK div 8 weg.

sonst hast du zu lahme Ausführung.

Dein "Fehler" liest sich aber wie interne 8 MHz und clock div 8

wenn deine 16 MHz aber keine sind sondern 8 / 8 weil intern muss der 16 
MHz CPU CODE langsamer laufen, weil falsche Voraussetzungen.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?


von IH453 (Gast)


Lesenswert?

Hallo Joachim B.,

den Verdacht hatte ich auch erst, aber daran lag es nicht.
Der Fehler lag an dem oben genannten Register.


Gruß IH453

PS: Damit sollte das Thema bzw. der Thread erledigt sein.

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

IH453 schrieb:
> Ich habe nun das CLKPR-Register noch gesetzt

IH453 schrieb:
> den Verdacht hatte ich auch erst, aber daran lag es nicht.
> Der Fehler lag an dem oben genannten Register.

wo soll das sein?

IH453 schrieb:
> Gruß IH453
>
> PS: Damit sollte das Thema bzw. der Thread erledigt sein.

OK freut mich für dich

: Bearbeitet durch User
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.