Ich verwende PIC18F4680 und habe Probleme, es von einer externen 40-MHz-Taktquelle oder einem 10-MHz-Quarz im HSPLL-Modus auszuführen. Die Verwendung eines 10-MHz-Kristalls im HS-Modus scheint in Ordnung zu sein, und ein 5-MHz-Kristall im HSPLL-Modus funktioniert ebenfalls einwandfrei.
Was passiert ist, dass der PIC startet, einige Sekunden lang arbeitet und dann für eine Weile herunterfährt und erneut startet. Die Gesamtdauer des Zyklus beträgt ungefähr 5 Sekunden, von denen der PIC in der zweiten Sekunde nicht mehr funktioniert.
Mir ist auch aufgefallen, dass der PIC manchmal einwandfrei funktioniert, wenn ich dem Energiebus des Steckbretts einen ausreichend großen entladenen Kondensator hinzufüge. Interessant ist, dass dies nur passiert, wenn ich den Kondensator hinzufüge, während der PIC bereits läuft. Wenn ich das Steckbrett mit dem dortigen Kondensator versorge oder einen Kondensator platziere, der nicht vollständig entladen wurde, bleibt das Problem bestehen.
Ich habe auf einigen Websites gelesen, dass ähnliche Probleme wie ich aufgrund eines erhöhten Stromverbrauchs des PIC bei höheren Frequenzen und einer höheren niedrigsten Betriebsspannung auftreten können. In diesen Fällen erreichen kurze Spannungsabfälle am Netzteil mit größerer Wahrscheinlichkeit die niedrigste Betriebsspannung des PIC auf dieser Frequenz. Daher ist es empfehlenswert, zusätzliche Kondensatoren auf dem Steckbrett zu haben, um dieses Problem zu lösen. Da die gesamte Schaltung unter Volllast bei 40 MHz etwa 64 mA verbraucht, bestand meine erste Idee darin, einige Tantalkondensatoren zu installieren, in der Hoffnung, dass sie groß genug sind und einen ausreichend niedrigen ESR haben, um das Problem zu beheben . Einer hat nicht geholfen und der zweite hat auch nicht geholfen. Also habe ich einen Aluminiumkondensator hinzugefügt und das hat auch nicht geholfen.100 μ F 470 μ F Aluminiumkondensator ohne Wirkung. Am Ende fügte ich einen 1 mF Aluminium-Elektrolytkondensator hinzu und dann funktionierte die Schaltung zum ersten Mal einwandfrei, bis sie aus- und wieder eingeschaltet wurde. Ich sollte auch beachten, dass ich zu Testzwecken Vcc von 5,5 V verwende, was die höchste Nennspannung für diesen Mikrocontroller ist. Dies sollte mir etwas Raum lassen bis zu 4,2 V, was die niedrigste Betriebsspannung bei 40 MHz ist
Als nächstes habe ich gelesen, dass schwebende Ausgänge manchmal Störungen verursachen können. Deshalb habe ich an allen nicht verwendeten Pins Pulldown-Widerstände angebracht, und das hat auch nicht geholfen. Danach habe ich gelesen, dass es manchmal Probleme geben kann, wenn die Oszillatoreingänge schweben, also habe ich versucht, sie mit einigen Widerständen an GND anzuschließen, und das hat nicht geholfen.10 M Ω
Aufgrund der Länge des Kabels, das vom Oszillatorausgang zum Oszillatoreingang am PIC führt, habe ich Probleme damit erwartet, aber ich habe keine Probleme mit dem 10-MHz-Kristall erwartet, der sehr nahe an den Oszillatorstiften am PIC liegt. Auch bei Quarz würde ich auch im HS-Modus Probleme erwarten, wenn die Oszillatorsignalverzerrung aufgrund des Steckbretts das Problem wäre, aber im HS-Modus funktioniert der PIC einwandfrei.
Normalerweise verwende ich Kondensatoren mit 33 pF für die Kristalle, aber ich habe es auch mit 15 pF versucht und konnte keine Änderung feststellen.
Ich sollte auch beachten, dass dieser PIC einen ausfallsicheren Taktmonitor und eine interne / externe Oszillatorumschaltung hat. Ich habe versucht, beide zu aktivieren, in der Hoffnung, dass sie zumindest bestätigen, dass das Problem beim Oszillator liegt, aber sie helfen bei dem Problem nicht. Es gibt keinen Unterschied, ob sie ein- oder ausgeschaltet sind.
Ich habe zu Testzwecken auch den Watchdog-Timer, das Brown-Out-Reset und das Stack-Over / Underflow-Reset deaktiviert. Ich denke, dass ich alle Reset-Quellen für diesen Chip ausgeschaltet habe. Außerdem befindet sich das Programm in einer Endlosschleife, sodass es nicht endet.
Der PCF8583 hat keine Probleme und funktioniert auch dann noch einwandfrei, wenn sich der PIC selbst zurücksetzt. Andererseits hat er eine viel niedrigere Mindestspannung.
Leider habe ich kein Oszilloskop, aber ich habe einige Tests mit einer Soundkarte (96 kHz Abtastrate) durchgeführt und festgestellt, dass bei eingeschalteter RTC ein 25-Hz-Rauschen auf der Stromleitung auftritt. Das Programm, das ich verwende, meldet etwa 300 mV von Spitze zu Spitze, aber ich weiß nicht, wie sehr ich ihm vertrauen soll, und ich weiß nicht, ob dies ausreichen würde, um Probleme für den PIC zu verursachen. Wenn alles ausgeschaltet ist, liegt das Rauschen von Spitze zu Spitze bei etwa 100 mV, das sollte also in Ordnung sein.
Falls es hilft, hier ist das Bild des Steckbretts selbst: (Rechtsklick-> Bild in voller Größe anzeigen)
Hat jemand eine Idee, was hier los ist?
Am Ende könnte ich den PIC nur mit 20 MHz betreiben, aber sollte ich mehr Rechenleistung benötigen, möchte ich ihn mit 40 MHz betreiben können.
AKTUALISIEREN
Ich habe einen weiteren Regler am Steckbrett selbst angebracht und das von der Soundkarte aufgenommene Geräusch ist jetzt viel geringer (etwa 50 mV Spitze zu Spitze), aber es hat das Hauptproblem nicht beeinflusst.