PIC18Fxxx 10Mhz Quarz geht, 20Mhz nicht

Gast #2584588
Lesenswert?

Hallo miteinander,

ich habe hier einen PIC18F452, mit 5V Versorgungsspannung. Laut 
Datenblatt sollte der bis 40 Mhz können, jedoch schwingt er mit dem 
20Mhz Quarz(YIC D1) nicht an (22pf). Der 10Mhz funktioniert ohne 
Probleme.

Mir ist das prinzipiell wurschd. 10Mhz reichen vermutlich auch und der 
Controller hat ne integrierte PLL die ich auch noch benutzen könnte.

Mich würde nur trotzdem interessieren was denn da die Ursache sein 
könnte.

Würd mich über Anregungen freuen.

Gruß,
Jens
#2584598
Lesenswert?

Hi,

Wie ist denn deine Quarzfuse gesetzt?
10Mhz schwingt je nach Controller und laune ja mal/sowohl mit der 
Einstellung XT und HS. (Die SOLL grenze liegt XT/HS bei den 18F meine 
ich bei 4MHz, müsste aber nachsehen)
20MHz  ist mit XT aber gar nicht mehr drin.

Falls die also noch auf XT steht auf HS stellen.

Ansonsten ist 22pf für 20Mhz schon eher der obere Toleranzbereich. Wenn 
dann noch ein sehr ungünstiger(kapazitätsbelasteter Aufbau dazu kommt) 
ICh verwende da eher etwas in der Richtung 15pf.

Gruß
Carsten
#2584639
Lesenswert?

Hallo Jens

Zu deinem Problem, da habe ich ein paar Ideen/Vermutungen und auch eine 
Lösung.

Das Problem bei Quarzen mit einer hohen Frequenz ist, dass sie..
a) ...zum Einschwingen länger brauchen (also startup-time erhöhen)
b) ...mit einer Freqzenz >20MHz sind oft Oberwellen Quarze, die sehr 
leicht auch mit ihrer niedrigeren Grundfrequenz oszillieren.

Wenn der PIC mit den 10MHz Quarz funktioniert und du ihn mit maximaler 
Geschwindigkeit betreiben willst, dann habe ich gute News für dich.

Guck dir das Datenblatt an und suche nach HS/PLL Oszillator betrieb.
http://ww1.microchip.com/downloads/en/DeviceDoc/39564c.pdf

Dieser PIC den du verwendest unterstützt PLL, was do viel heißt, dass 
deine Oszillatorfrequenz intern verfierfacht wird. Natürlich geschieht 
dies nicht von alleine sondern der PLL muss erst aktiviert werden.

Dann kannst du auch mit deinem 10MHz Quarz deinen PIC mit 40MHz 
Grundfrequentz betreiben.

Bedenke anber, dass dein Instruction Cycle immer Grundfrequenz/4 ist 
(bei PIC12/16/18/24), aber ich denke das ist sowieso bekannt ;)

Achja ein Problem könnte ja natürlich auch sein, dass du deinen PIC mit 
20MHz Quarz betreibst und den PLL auch noch dazu verwendest => 4*20 = 
80MHz und das ist zu viel für den Chip.

Schau dir mal deine Oszillatoreinstellungen genauer an und beachte das 
Datenblatt.

Halte uns up-2-date was wirklich das Problem war und auch ob es mit dem 
10MHz Oszillator und PLL mit max Speed funktioniert.

LG. Stefan
Gast #2584686
Lesenswert?

10 Mhz mit PLL funktioniert. Deswegen stört es mich ja auch kaum, ist ja 
im Endeffekt sogar schneller als zuvor.

20Mhz hatte ich gewählt, weil ich die für ähnliche Projekte immer an den 
16F hatte und das gut ging. Auf die PLL bin ich erst gestern beim 
Programmieren gestossen. Da war halt der Quarz schon verbaut.

Da die schaltung später mal vor allem auch nachbausicher sein soll, 
werde ich es auch bei den 10Mhz belassen und nicht weiters mit den 20Mhz 
rumprobieren.

Im anhang mal mein Layout (man verzeihe mir gif, aber das Programm 
spuckt nichts anderes raus und ich habe an dem Rechner kein IrfanView).

Was mir mittlerweile auffällt, ist dass ich lieber die Pfostenleiste 
weiter rausgeführt und den Quarz näher am Bauteil platziert habe.

Ist diese Entfernung vom Controller jetzt eigentlich schon "richtig 
viel" oder ist sowas noch gut?

Gruß,
Jens
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren