Forum: Mikrocontroller und Digitale Elektronik PIC18Fxxx 10Mhz Quarz geht, 20Mhz nicht


von Jens P. (Gast)


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

von Rolle (Gast)


Lesenswert?

Mach mal die Bürdekondensatoren kleiner oder lasse diese mal zu 
testzwecken weg.

von Peddha (Gast)


Lesenswert?

sind die C's denn richtig dafür? ==> Datenblatt

Ich glaube du musst es dem Pic auch sagen, in welchem Bereich die 
Frequenz ist.

von Carsten S. (dg3ycs)


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

von Jens P. (Gast)


Lesenswert?

Also die Cs sollen laut Datenblatt 15-33pf haben.

Als Oszillator-Modus wurde HS gewählt (wird empfohlen für alles ab 
4Mhz).

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Jens Plappert schrieb:
> Mich würde nur trotzdem interessieren was denn da die Ursache sein
> könnte.

- Oberwellenquarz
- Billigware
- Quarz kaputt
- falsche konfig
- schlechter Aufbau
- PLL falsch eingestellt
- kalte Lötstelle


usw usf.

von Rolle (Gast)


Lesenswert?

Bild und schaltplan vom Aufbau? Sonst ist alles Raterei!

von Stefan P. (poge-st)


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

von Florian V. (Gast)


Lesenswert?

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

Das ist für die PIC24 nicht korrekt, die haben Grundfrequenz/2.

Siehe z.B.: http://ww1.microchip.com/downloads/en/DeviceDoc/39764a.pdf

von Jens P. (Gast)


Angehängte Dateien:

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

von Stefan P. (poge-st)


Lesenswert?

Florian V. schrieb:
>> Bedenke anber, dass dein Instruction Cycle immer Grundfrequenz/4 ist
>> (bei PIC12/16/18/24), aber ich denke das ist sowieso bekannt ;)
>
> Das ist für die PIC24 nicht korrekt, die haben Grundfrequenz/2.
>
> Siehe z.B.: http://ww1.microchip.com/downloads/en/DeviceDoc/39764a.pdf

Sry bei den PIC24 habe ich mich vertan.
Danke für die Korrektur.

von tt2t (Gast)


Lesenswert?

Deine Last-Kondensatoren müssen ganz nah an den PIC, max 6mm, die sind 
VIEL zu weit weg. Auf der Homepage von Microchip gibt es ein Paper über 
µC-Oscillatoren, da sind auch Layout-Vorschläge drin.

von Jens P. (Gast)


Lesenswert?

würde das auch heissen, dass ich von der Anordnung her die Last-Cs 
zwischen Controller und Quarz setzen könnte und den Quarz dort lassen wo 
er ist?

von tt2t (Gast)


Lesenswert?

Das ist auf alle Fälle besser. Oder Quarz noch etwas näher ran an den 
PIC und die beiden C auf die Unterseite gegen die Massefläche.

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.