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
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.
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
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.
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.
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
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.
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.
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.
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_CPU1000000
, 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_CPU16000000
, 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
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.
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.
IH453 schrieb:> Ich habe nun das CLKPR-Register noch gesetztIH453 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