Forum: Mikrocontroller und Digitale Elektronik Quarzfrequenz wählen


von John T. (johntwenty)


Lesenswert?

Auszug aus dem Datenblatt:

Table 8. Crystal Oscillator Operating Modes
CKOPT CKSEL3..1 Frequency Range(MHz) Recommended Range for Capacitors
1    101(1)          0.4 - 0.9 –
1    110             0.9 - 3.0       12 pF - 22 pF
1    111             3.0 - 8.0       12 pF - 22 pF
0    101, 110, 111   1.0 -           12 pF - 22 pF

Die Fusebits setze ich folgendermassen: CKOPT=1 und CKSEL=111
Hier wird ja nur eine Frequency Range bis max. 8MHz angeben! Ich habe 
aber ein Quarz, der mit 14irgendetwas MHz schwingt! Wird der Quarz dann 
ausgebremst, oder was verstehe ich hier nicht?
Ok angenommen der Quarz wird ausgebremst, dann wird aber immer noch ein 
frequenzberecih von 3-8MHz angegeben! Wie weiss ich jetzt ob der Quarz 
mit 3,5 oder doch 8MHz schwingt? Ist es so wenn ich einen Quarz über 8 
MHz habe dann schwingt der mit 8Mhz und wenn ich einen Quarz zwischen 3 
und 8Mhz habe dann schwingt der mit dieser Frequenz?

von 2918 (Gast)


Lesenswert?

Wenn der Prozessor 16MHz kann sollte das auch so stehen. Schein ein 
Datenblatt eines L Typen zu sein, die gehen meist nur bis 8MHz. Ja, der 
Bereich 111 wird dann bis 16MHz gehen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Setze Deine Fuses so, wie der Quarz es erfordert bzw. je nachdem, in 
welchem Frequenzbereich Dein Controller arbeiten soll. Ansonsten kann es 
sein, daß der Controller gar nicht anläuft oder einen instabilen Takt 
hat, was zu Abstürzen führen kann. Wenn Du über 8Mhz gehen willst, muß 
zusätzlich die CKOPT-Fuse gesetzt sein, bzw. der FullSwing-Oscillator 
eingeschaltet werden. Siehe Datenblatt des jeweiligen Controllers.

von John T. (johntwenty)


Lesenswert?

die fuses habe ich wie oben schon gesetzt! was mir nicht klar ist, ist 
mit welcher Frequenz so mein Quarz dann schwingt?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Sofern die richtigen Lastkondensatoren dran sind, mit der Frequenz, für 
die er ausgelegt ist. Bei falsch gestzten Fuses tut er dies auch oder er 
schwingt gar nicht oder er schwingt mit Pausen. Letzteren Fall hatten 
wir schon auf Arbeit. War ein fieser Fehler. Um herauszubekommen, mit 
welcher Frequenz Dein Controller läuft, programmiere einen Timer mit 
Vorteiler in bekanntem Verhältnis und lasse damit einen Portpin mit 
angeschlossener LED wackeln. Wenn er langsam genug wackelt, kannst Du 
die Impulse pro Zeiteinheit zählen und hochrechnen.

von John T. (johntwenty)


Lesenswert?

hey so schwer kann doch mein Anliegen nicht zu verstehen sein! also noch 
einmal...!
Habe Quarzoszillator 14irgendetwas MHz! Die Fuses habe ich gesetzt 
CKOPT=1 und CKSEL=111 ! Demnach ergibt das aus Datenblatt(siehe oben) 
ein Frequenzbereich von 3-8MHz! Mein Problem ist einzig allein, dass ich 
jetzt nicht weiss welche Frequenz sich jetzt einstellt, da mein Quarz 
eigentlich mit 14irgendetwas MHz schwingt! Die Frequenz die der 
Mikrocontroller jetzt aber "sieht" liegt nur zwischen 3 und 8Mhz! Wie 
weiss ich jetzt welche Frequenz der uC "sieht"? Ich denke das sind 
einfach 8Mhz, da mein Quarz über 8Mhz schwingt? Vielleicht ist mein 
Problem zu einfach, um das zu verstehen, aber versuchts einfach 
nochmals!

von John T. (johntwenty)


Lesenswert?

Oder ist das für einen solchen Quarz gar nicht erlaubt die Fuses so zu 
setzen?
Muss es so sein: CKSEL=111 CKOPT=0 SUT=11 ????

von Stefan H. (shaun)


Lesenswert?

Ach nee... von wegen "so schwer nicht zu verstehen" ;)
Dir wurde ja nun schon mehrfach gesagt, wie es sein muss - und dass 
CKOPT "gebrannt", also 0, sein muss. Dann schwingt der Oszillator auch 
auf der Grundfrequenz des Quarzes, also 14,318MHz oder was Du da hast.
Die Angaben im DB sind von der anderen Seite her zu interpretiern: wie 
muss ich die Fuses setzen, damit mein vorliegender Quarz arbeitet und 
nicht: wie schwingt mein Quarz, wenn ich die Fuses falsch setze?

von Jan (Gast)


Lesenswert?

Dein µC "sieht genau die Frequenz die auch auf dem Quarzoszillator 
draufsteht 14,XXXMHz z.B. nur arbeiten wird der Controller nicht, wenn 
die Fusebits nicht stimmen.
Wenn du dem µC vorgibst das du gleich einen Takt in den Grenzen 
3.....8MHz anlegst und dann aber 14MHz draufballerst, geht natürlich 
nix!
Du kannst n Formel 1 Auto auch "sehen", aber lange noch nicht so schnell 
rennen.....
gruß

von Durchblicker (Gast)


Lesenswert?

Genau. Wenn die Fuses falsch programmiert sind, schwingt der Quarz nicht 
auf einer anderen Frequenz, sondern GAR NICHT, bzw. nicht sicher.

von Karl-j. B. (_matrixman_)


Lesenswert?

Was passiert da eigentlich intern wenn man diese Fuses umstellt??

Weil ich mein so theoretisch kann er ja garnicht wissen (abgesehen wenn 
ers mim internen RC vergleicht) wie schnell das Quarz ist. Wenns zu 
schnell ist gibts halt fehler (zuerst wahrscheinlich beim schreiben in 
Speicher)

Wozu also die Fuses? und wieso verweigert der ein Anlaufen wenn se net 
richtig eingestellt sin

(ich weiß die Frage ist blöd aber ich frag mich wieso das überhaupt 
notwendig ist)

von Jan (Gast)


Lesenswert?

@ John Twenty
der grundsätzliche Unterschied zwischen Quarz und Quarzoszillator ist 
dir klar? Der Quarz möchte zum schwingen "angeregt" werden wobei der 
Quarzoszillator schon den fertigen Takt liefert...

Quarz ----> Bauteil
Quarzoszillator ----> Baugruppe

Im Datenblatt:
Quarz ----> External Crystal
Quarzoszillator ----> External Clock

Am Beispiel des Mega16:
External Crystal  (cksel 1111 - 1010)
External Clock  (cksel 0000)

Du stellst jetzt cksel auf 111, schließt aber, wie du schreibst, einen 
Quarzoszillator an....klingt erst mal unlogisch...

oder täusch ich mich hier???
gruß

von Karl H. (kbuchegg)


Lesenswert?

Karl-j. B. wrote:
> Was passiert da eigentlich intern wenn man diese Fuses umstellt??

Der Oszillator wird auf die Quarzeingänge geschaltet.

> Weil ich mein so theoretisch kann er ja garnicht wissen (abgesehen wenn
> ers mim internen RC vergleicht) wie schnell das Quarz ist.

Der Quarz.

Nein, das kann er nicht wissen.
Aber der Quarz schwingt von ganz vno alleine auf der Frequenz
die ihm im Werk mitgegeben wurde, wenn er denn schwingt. Aber ...

> Wozu also die Fuses? und wieso verweigert der ein Anlaufen wenn se net
> richtig eingestellt sin

... der Quarz schwingt nicht von alleine an
Dazu ist noch ein Schwingkreis notwendig. Durch setzen der
Fusebits wird dieser Schwingkreis zugeschaltet. Dieser Kreis
ist so ausgelegt, dass er in einem weiten Frequenzbereich einen
Quarz zum schwingen bringen kann.

Und genau da liegt auch der Unterschied zu einem Quarzoszillator.
Der schwingt nämlich ganz von alleine, weil er den Schwingkreis
schon im Bauelement eingebaut hat. Daher ist der Schwingkreis
im µC nicht notwendig und wird per Fuse abgeschaltet.
Daher erklärt sich auch, warum ein angeschlossener Quarz nicht
ins Schwingen kommt, wenn die Fuses auf Quarzoszillator stehen:
Es ist einfach kein Schwingkreis aktiv, der den Quarz ins
Schwingen bringen würde.

von Karl-j. B. (_matrixman_)


Lesenswert?

Ah okay jetzt hab ichs verstanden :) Danke!

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.