Oszillator läuft nicht zuverlässig an

Ich habe eine Leiterplatte mit einem PIC18F6520 und einem 32-MHz-Quarz entworfen. Mit einem Steckbrett mit einem PIC16F877A funktioniert mein Code hervorragend. Aber wenn ich ein einfaches LED-Blinkprogramm auf meine Platine lade, flackert die LED, wenn ich den Kristall berühre, und tut sonst nichts. Die Kondensatoren haben 22 pF, was eine Lastkapazität von 11 pF ergibt (der Quarz gibt 12 pF an)

Der relevante Abschnitt meiner Platine ist unten angehängt (bitte beachten Sie, dass ich den Bodenguss zur besseren Sichtbarkeit ausgeschaltet habe, aber er ist da):

Leiterplatte

Und hier ist der entsprechende Abschnitt des Schaltplans:

Schema

Kommentare: (1) Haben Sie einen Dämpfungswiderstand über dem Quarz? Das Hinzufügen eines schematischen Ausschnitts zur Frage würde nicht schaden. (2) Versuch. Wenn Sie diesen Quarz durch eine niedrigere Frequenz ersetzen (und die Firmware aktualisieren), verhält sich der PIC korrekt? (3) Wir haben ein paar Threads über das uC-Kristalllayout: das , das , es gibt wahrscheinlich noch mehr.
@ Nick (1) Nein, und das kann ich hinzufügen. (2) Gleiches Verhalten mit einem 20-MHz-Quarz. (3) Danke, die schaue ich mir an
Hast du die PLL deaktiviert? Normalerweise würden Sie einen 8-MHz-Quarz mit PLL verwenden, um 32 MHz zu erhalten.
@sphero Ich denke, es ist deaktiviert, da ich es nirgendwo explizit aktiviere. Wie konnte ich das sagen?

Antworten (1)

Die maximale Quarzfrequenz, die Sie mit dem PIC18F6520 verwenden können, hängt davon ab, ob Sie die PLL aktiviert haben. Wenn es deaktiviert ist, können Sie einen Quarz bis zu 25 MHz verwenden (Seite 320 des Datenblatts). Wenn es aktiviert ist, sind Sie auf den Bereich von 4 bis 10 MHz beschränkt.

Das erklärt sicherlich, warum der 32MHz-Quarz nicht zuverlässig arbeitet. Ich bin mir nicht sicher, warum der 20-MHz-Kristall nicht funktioniert, aber vielleicht haben Sie die PLL aktiviert? Oder Sie betreiben den PIC mit einer viel niedrigeren Vdd als 3,3 V?

Stellen Sie außerdem sicher, dass der richtige Oszillatorblock ausgewählt ist. Eine falsche Auswahl verhindert den Betrieb.
Ich habe ein Video aufgenommen: youtu.be/HcamSDb0YCc mit einem 20-MHz-Quarz und HS + NOOSCSEN-Sicherungen. PIC läuft bei 5V
Das sollte mit 1 Hz blinken (500 ms an, 500 ms aus)