Forum: Analoge Elektronik und Schaltungstechnik Quarz schwingt nicht in der richtigen Frequenz (an PIC)


von Thomas H. (beon)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte einen Quarz ( ECS-240-20-5PXDU-TR )als Taktversorung für 
einen PIC32MZ(EF) nutzen. Der Quarz soll auf Grund des 
Temperaturbereichs verwendet werden.
Als Schaltung verwende ich einen Pierce-Oszillator mit 20 und 40pF.
Es handelt sich um einen 24MHz Grundton-Quarz, wenn ich das Datenblatt 
richtig gelesen habe. Leider schwingt er nur mit 2MHz (siehe Bild). 
Gemessen habe ich direkt am Quarz, aber auch ohne Tastkopf am Quarz ist 
die Frequenz zu niedrig. (Gemessen mit Timer-IR und Pin-toggle)
Der PIC funktioniert mit dem internen Oszillator.

Habe ich etwas übersehen?
Wie kann so eine extreme Abweichung zustandekommen?
Sind die Kondensatoren falsch gewählt? (Wobei mir hier die extreme 
Abweichung nicht klar wird)

Danke schon mal für eure Hilfe,
Grüße Thomas

von Joe F. (easylife)


Lesenswert?

Thomas H. schrieb:
> sind die Kondensatoren falsch gewählt?

die sind sicherlich etwas zu groß.

> (Wobei mir hier die extreme Abweichung nicht klar wird)

Ja, kann eigentlich nicht sein.


Wie ist denn dein Oszillator aufgebaut (welcher Inverter, Layout)?

Und warum nutzt du den Quarz nicht direkt am PIC32?

: Bearbeitet durch User
von Nico (nico123)


Lesenswert?

Eine Schaltung wäre sehr hilfreich!

von Thomas H. (beon)


Angehängte Dateien:

Lesenswert?

Joe F. schrieb:
> Wie ist denn dein Oszillator aufgebaut (welcher Inverter, Layout)?
>
> Und warum nutzt du den Quarz nicht direkt am PIC32?

Den Quarz nutze ich direkt am PIC. Im Nachhinein betrachtet ist da wohl 
die Beschreibung mit dem Pierce-Oszillator etwas irreführend.

von Hurra (Gast)


Lesenswert?

Also so einen Fall hatte ich schon, aber das war ein falsch 
etikettiertes Reel (also ein Bestückungsfehler).

Ich kann mir irgendwie nicht vorstellen, dass man einen Grundtonquarz 
nur mit Kapazitäten von 24MHz auf 2 MHz niederzwingen kann.

Man kann sowas allerdings durchaus per Software schaffen, nachdem man 
Oszillatorpins des PIC auch als Ausgänge konfigurieren kann.

Du bist sicher, dass das passt?
Also die Configbitsettings und der Code?

von Thomas H. (beon)


Lesenswert?

1
#pragma config FPLLIDIV = DIV_3, FPLLMULT = MUL_50, FPLLODIV = DIV_2
2
#pragma config FPLLRNG = RANGE_13_26_MHZ, FPLLICLK = PLL_POSC, FNOSC = SPLL
3
#pragma config FSOSCEN = OFF, IESO = ON, POSCMOD = EC
4
#pragma config FDMTEN = OFF, DMTCNT = DMT31, FWDTEN = OFF, ICESEL = ICS_PGx2
5
#pragma config OSCIOFNC = ON
6
#pragma config FCKSM = CSECME

Das ist meine Config für den PIC mit 200MHz, damit läuft auch ein 
EF-Starterkit. Mit OSCIOFNC = ON sollten die Pins als Takteingang 
gesetzt sein.

: Bearbeitet durch User
von Andi B. (andi_b2)


Lesenswert?

Hast du schon ins errata sheet geschaut und deine silicon revision 
verglichen? AFAIR wurden da Serien vom MZ verkauft bei denen der 
Oszillator mit externem Quarz nicht zuverlässig funktionierte.

von Joe F. (easylife)


Lesenswert?

Kann nur raten:

POSCMOD = EC

falsch? (EC = external Clock Source - also CMOS Oszillator und kein 
Quarz?)

FNOSC = SPLL

dann vermutlich auch nicht passend.

Wie kommst du eigentlich auf die 40 & 20pF? Meinem Gefühl nach würde man 
eher so jeweils 15pF nehmen...

: Bearbeitet durch User
von Thomas H. (beon)


Lesenswert?

Andi B. schrieb:
> AFAIR wurden da Serien vom MZ verkauft bei denen der
> Oszillator mit externem Quarz nicht zuverlässig funktionierte.

Das ist DER Hinweis gewesen^^ Errata sheet gelesen und das gefunden:

2.   Module:  Oscillator
A crystal oscillator cannot be used as an input to
the Primary Oscillator (OSC1/OSC2 pins).
Work around
Use   an   external   clock   or   the   Internal   FRC
Oscillator.

Warum macht man sowas? =)
Danke euch für die schnellen Antworten.

PS:
Joe F. schrieb:
> Wie kommst du eigentlich auf die 40 & 20pF? Meinem Gefühl nach würde man
> eher so jeweils 15pF nehmen...

Bis jetzt habe ich immer den MiniPIC32 verwendet, jetzt die erste 
Platine fertigen lassen und bin natürlich in die Lastkapazitäten-Falle 
(CL = C1 = C2 <- Facepalm) getappt. Nach ein wenig Einlesen in das 
Problem habe ich dann C26 verdoppelt. (Habe in der Größenordnung auch 
nur 20p da)

: Bearbeitet durch User
von Joe F. (easylife)


Lesenswert?

Thomas H. schrieb:
> Errata sheet gelesen und das gefunden

Ist denn deine silicon revision wirklich betroffen?

Ein Konfigurationsfehler ist ja trotzdem noch drin...
Wenn dieser Stromlaufplan hier (S. 22)

http://ww1.microchip.com/downloads/en/DeviceDoc/70005147C.pdf

deinem Starterkit entspricht gibt es 2 Konfigurationsmöglichkeiten.
Y4 bestückt: 24 MHz Oszillator, und kein Quarz.
Y1 bestückt: Quarz.

Guck mal nach, welche Hardwarekonfiguration zu der von dir genannten 
"#pragma" Konfiguration passt.

"POSCMOD = EC" kommt mir wirklich verdächtig vor.

: Bearbeitet durch User
von Thomas H. (beon)


Lesenswert?

Joe F. schrieb:
> deinem Starterkit entspricht gibt es 2 Konfigurationsmöglichkeiten.
> Y4 bestückt: 24 MHz Oszillator, und kein Quarz.
> Y1 bestückt: Quarz.
>
> Guck mal nach, welche Hardwarekonfiguration zu der von dir genannten
> "#pragma" Konfiguration passt.
>
> "POSCMOD = EC" kommt mir wirklich verdächtig vor.

Es läuft auch mit der "POSCMOD = HS" - Einstellung auch nur mit 
Back-Up-FRC.

MPLab zeigt beim Debuggen folgendes an:

Target device PIC32MZ2048EFH100 found.
Device ID Revision = A1

Es ist also die Revision, die vom obengenannten Fehler betroffen ist.

Noch einmal Danke an alle für die Antworten.

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.