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-Quarzes im HS-Modus scheint in Ordnung zu sein, und ein 5-MHz-Quarz im HSPLL-Modus funktioniert ebenfalls einwandfrei.
Was passiert ist, dass der PIC startet, für ein paar Sekunden arbeitet und dann für eine Weile herunterfährt und wieder startet. Die Gesamtdauer des Zyklus beträgt etwa 5 Sekunden, von denen die PIC-Arbeit früh in der zweiten Sekunde aufhört zu arbeiten.
Ich habe auch bemerkt, dass der PIC manchmal gut funktioniert, wenn ich dem Strombus 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 Kondensator dort versorge oder einen Kondensator platziere, der nicht vollständig entladen wurde, bleibt das Problem bestehen.
Ich habe auf einigen Seiten gelesen, dass ähnliche Probleme wie bei mir aufgrund eines erhöhten Stromverbrauchs des PIC bei höherer Frequenz und niedrigerer Betriebsspannung auftreten können. Wenn in diesen Fällen einige kurze Spannungsabfälle an der Stromversorgung auftreten, erreichen sie mit größerer Wahrscheinlichkeit die niedrigste Betriebsspannung des PIC auf dieser Frequenz. Daher ist es eine gute Idee, zusätzliche Kondensatoren auf dem Steckbrett zu haben, um dieses Problem zu lösen. Da unter Volllast bei 40 MHz die ganze Schaltung ca. 64 mA verbraucht, war meine erste Idee, welche zu setzen Tantalkondensatoren 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 fügte ich eine hinzu Aluminiumkondensator und das half auch nicht. Dann fügte ich eine hinzu Aluminiumkondensator ohne Wirkung. Am Ende fügte ich einen 1 mF Aluminium-Elektrolytkondensator hinzu und dann funktionierte die Schaltung zum ersten Mal gut, bis sie aus- und 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 Spielraum bis zu 4,2 V lassen, was die niedrigste Betriebsspannung bei 40 MHz ist
Als nächstes habe ich gelesen, dass schwebende Ausgänge manchmal Störungen verursachen können, also habe ich einige eingefügt Pulldown-Widerstände an allen unbenutzten Pins und das half auch nicht. Danach habe ich gelesen, dass es manchmal Probleme geben kann, wenn die Oszillatoreingänge schweben, also habe ich versucht, sie mit einigen mit GND zu verbinden Widerstände und das hat nicht geholfen.
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-Quarz erwartet, der sich sehr nahe an den Oszillatorstiften des PIC befindet. Auch mit Kristall würde ich auch im HS-Modus Probleme erwarten, wenn die Verzerrung des Oszillatorsignals aufgrund des Steckbretts das Problem wäre, aber im HS-Modus funktioniert der PIC einwandfrei.
Normalerweise verwende ich 33-pF-Kondensatoren 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 über eine ausfallsichere Taktüberwachung und eine Umschaltung zwischen internem und externem Oszillator verfügt. Ich habe versucht, beide zu aktivieren, in der Hoffnung, dass sie zumindest bestätigen würden, dass das Problem beim Oszillator liegt, aber sie helfen nicht bei dem Problem. Es gibt keinen Unterschied, ob sie ein- oder ausgeschaltet sind.
Ich habe auch zu Testzwecken Watchdog-Timer, Brown-Out-Reset und Stack Over/Underflow-Reset deaktiviert. Ich glaube, ich habe alle Reset-Quellen für diesen Chip ausgeschaltet. Außerdem befindet sich das Programm in einer Endlosschleife, endet also nicht.
Der PCF8583 hat keine Probleme und funktioniert auch dann noch korrekt, wenn sich der PIC selbst zurücksetzt, aber 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 viel ich ihm vertrauen kann, und ich weiß nicht, ob das ausreichen würde, um Probleme für den PIC zu verursachen. Wenn alles ausgeschaltet ist, liegt das Rauschen bei etwa 100 mV von Spitze zu Spitze, das sollte also in Ordnung sein.
Falls es hilft, hier ist das Bild des Steckbretts selbst: (Rechtsklick -> Bild in voller Größe anzeigen)
Also hat jemand eine Ahnung, was hier los ist?
Am Ende könnte ich den PIC einfach mit 20 MHz betreiben, aber sollte ich mehr Rechenleistung benötigen, würde ich ihn gerne mit 40 MHz betreiben können.
AKTUALISIEREN
Ich habe einen anderen Regler am Steckbrett selbst platziert und das von der Soundkarte aufgenommene Rauschen ist jetzt viel geringer (etwa 50 mV Spitze zu Spitze), aber es hat das Hauptproblem nicht beeinflusst.
Dies ist ein ziemlich alter Rat, und ich weiß nicht, ob er für Ihr Mikro relevant sein wird, aber vor ungefähr 4 Jahren habe ich ein Projekt mit einem PIC18F durchgeführt, bei dem seltsame falsche Resets aufgetreten sind. Nachdem ich den Bericht gelesen und mein Gedächtnis neu aufgestöbert habe, scheint es hier gelöst worden zu sein:
Hast du das Low Voltage Programming Enable
Konfigurationsbit aktiviert? Ist dein PGM
Pin dran PORTB
? Low Voltage Programming Enable
Wenn dies der Fall ist, sollten Sie in Betracht ziehen, sowohl als Port B A/D Enable
auch die digitalen Eingänge beim Zurücksetzen zu deaktivieren . Laut meinem alten Bericht ließen wir PORTB
schwebend, während es sich um analoge Eingänge handelte, und lösten den PGM
Pin aus. Rückblickend weiß ich nicht, ob diese Diagnose richtig war, aber am Ende haben wir dieses Projekt erfolgreich abgeschlossen, also könnte es einen Versuch wert sein.
Bei einem solchen Setup ist es für uns fast unmöglich, genau zu sagen, was schief läuft. Was wir jedoch sagen können, ist, was falsch ist. Vieles ist falsch, oder zumindest nicht so richtig, wie es kalt ist. Jedes dieser Dinge könnte die eigentliche Ursache Ihres Problems sein, aber es könnte auch eine Kombination von Problemen erfordern, die zusammengenommen dem Problem entsprechen, das Sie sehen.
Die einzige wirkliche Möglichkeit, dies zu debuggen, besteht darin, alles zu beheben, von dem Sie wissen, dass es falsch ist, unabhängig davon, ob es sich um die rauchende Waffe handelt oder nicht. Irgendwann wird das Problem auf die eine oder andere Weise behoben.
Wenn eine MCU wie diese nicht richtig läuft, müssen Sie sich fast immer auf die Grundlagen konzentrieren: Power, Clock und Reset. Bei einem Steckbrett sind alle drei verdächtig!
Der Verdächtige Nr. 1 ist für mich der 40-MHz-Takt. 40 MHz sind ziemlich schnell, um über ein in der Luft schwebendes Kabel zu laufen. Es ist auch schnell, in ein Steckbrett zu stopfen, wo das "Signalverteilungssystem" nicht wirklich für hohe Geschwindigkeiten ausgelegt ist. Wenn dies eine Leiterplatte wäre, würde ich Ihnen sagen, dass Sie sicherstellen müssen, dass Ihre Leiterbahnimpedanz konsistent ist und Ihre Signale ordnungsgemäß terminieren. Leider kann man das auf einem Steckbrett nicht wirklich machen. Das Beste, was ich Ihnen sagen kann, ist, Ihre Drähte so kurz wie möglich zu halten - und sie dann noch kürzer zu machen! Verwenden Sie ein O-Scope auf dem Taktsignal, das direkt am PIC-Pin abgetastet wird, wobei die GND-Leitung der Sonde auch direkt am nächsten GND-Pin am PIC liegt. Das wird Ihnen viel über Ihre Uhr sagen.
(Versuchen Sie, sich ein O-Scope auszuleihen, wenn Sie können. Es wird schwierig sein, Dinge ohne eines zu debuggen.)
Der Verdächtige Nr. 2 ist Macht. Die Stromversorgung ist auch bei Steckbrettern ein großes Problem, da die Induktivität und der Widerstand des Drahtes relativ hoch sind. Auch hier halten Sie die Drähte kurz. Ich stelle auch fest, dass Sie beim 40-MHz-Oszillator keine Entkopplungskappen haben. Für den OSC würde ich mit 0,1 uF und etwas Größerem (4,7 uF bis 100 uF) parallel gehen. Ihr PIC könnte parallel zu den 0,1-uF-Kappen auch etwas Größeres verwenden. Normalerweise wären die größeren Kappen nicht erforderlich, aber bei einem Steckbrett ist nichts normal.
Verdächtiger #3 wird zurückgesetzt. Sie haben uns keine Informationen über das Reset-Signal gegeben, und ich würde sagen, dass es das niedrigste von dem ist, was ich vermute, aber Sie sollten es trotzdem überprüfen. Setze ein O-Scope darauf und schaue, was passiert. Möglicherweise können Sie einfach ein Voltmeter verwenden. Wenn die Spannung am Reset-Pin nahe am Schwellenwert liegt, müssen Sie sie beheben.
Lassen Sie uns nun die Dinge durchgehen, die Sie versucht haben:
Sie haben viele Experimente mit der Platzierung von Kappen auf den Stromleitungen durchgeführt, mit wenigen oder verwirrenden Ergebnissen. Dies ist eine dieser Zeiten, in denen Sie nur ein paar Obergrenzen setzen müssen und sich keine Sorgen darüber machen müssen, ob sie etwas Positives bewirken oder nicht. Es könnte sein, dass Ihr Strom laut ist, aber dies ist nur eine von mehreren Ursachen des Problems. Fügen Sie größere Kappen parallel zu den 0,1 uF-Kappen am PIC hinzu. Fügen Sie dem 40-MHz-Oszillator Kappen hinzu. Achten Sie darauf, dass die Leitungen so kurz wie möglich sind. Fahren Sie dann mit der nächsten Sache fort.
Zusätzliche Leistungsbegrenzungen sind eines der Dinge, die wahrscheinlich keine Probleme verursachen. Deshalb können Sie einfach welche anziehen und sich nicht zu viele Gedanken darüber machen. Besonders mit 10-100 uF-Kappen.
Später, sobald alles funktioniert, können Sie diese Kappen einzeln entfernen und sehen, ob das Problem erneut auftritt. Wenn es nicht zurückkehrt, waren die Kappen nicht das Problem. Aber jetzt müssen Sie dies als potenzielles Problem entfernen, aber Kappen hinzufügen.
Floating Pins können zwar ein Problem darstellen, sind aber selten groß genug, um eine MCU zum Absturz zu bringen. Es lohnt sich, es zu reparieren, da es andere Probleme verursacht, aber es ist sehr unwahrscheinlich, dass es hier das Problem ist. Hinweis: Eine einfache Möglichkeit, das Schweben unbenutzter Pins zu verhindern, besteht darin, sie als Ausgänge festzulegen! Ob hoch oder niedrig, spielt keine Rolle. Aber wenn der PIC diese Stifte antreibt, können sie nicht schweben.
Sie haben den PGM-Pin (manchmal auch LVP genannt) nicht erwähnt. Dies muss in den Konfigurationsbytes niedrig gebunden oder LVP deaktiviert werden.
Sind Sie sicher, dass dieser PIC 40 MHz direkt aufnehmen kann? Manche erreichen über die interne PLL nur 40 MHz. Ich habe das Datenblatt nicht überprüft, aber Sie sollten. Selbst wenn ja, würde ich nicht erwarten, dass sich 40 MHz auf einem Steckbrett gut verhalten. Ich denke, Sie sollten in der Lage sein, den PIC mit einem 10-MHz-Quarz und der internen 4x PLL zum Laufen zu bringen, wenn Sie mit dem Steckbrett vorsichtig sind und Bypass-Kappen an den richtigen Stellen platzieren.
Solche Fragen kommen regelmäßig. Anstatt alle typischen Probleme zu wiederholen, siehe https://electronics.stackexchange.com/a/29620/4512 .
Ich muss David zustimmen. Es gibt so viele lange Drähte, und 40 MHz auf einem Steckbrett sind ziemlich optimistisch. Ich kann nicht glauben, dass Ihre Zeit wirklich so wenig wert ist, dass Sie es sich nicht leisten können, eine kleine Prototyp-Leiterplatte herzustellen . Diese Dinge kosten bei PCB Train nur etwa 30 £ . Ich bin sicher, es gibt jemanden in Ihrer Nähe, der ähnliches liefern kann.
Warum tun Sie dies nicht? Entwerfen Sie eine Leiterplatte, die den PIC, den Oszillator und den Regler als SMD-Komponenten enthält, und dann eine ganze Menge Perfboard-Streifen. Auf diese Weise können Sie immer noch Ihr Prototyping durchführen, aber sicher sein, dass der PIC zufrieden ist.
Wenn Sie einen externen Variablen-F-Generator haben, sollten Sie diesen verwenden, um das Layout / den Chip auf Probleme zu testen. und finden Sie externes F, das Fehler verursacht. Denken Sie daran, dass verlängerte Erdungskabel als Antenne für Rauschübersprechen fungieren.
Sonde sieht so aus, als ob Sie eine Logiksonde, ein DVM oder ein Oszilloskop benötigen ... http://search.digikey.com/us/en/products/DP%2052/BKDP52-ND/227492
Legen Sie eine Kappe über den Taktchip V + / Masse und ziehen Sie ein verdrilltes Paar für 40 MHz in Betracht, wenn es weit entfernt ist. Pic xtal hat Ein- und Ausgang. Überprüfen Sie den invertierten Ausgang DC-Pegel = v / 2? .. wird Pic warm? Ha..
Ich empfehle den 10-MHz-Xtal-PLL-Modus bei 40 MHz, um Layoutprobleme zu vermeiden.
Der HSPLL-Modus nutzt den HS-Modus-Oszillator für Frequenzen bis zu 10 MHz. Eine PLL multipliziert dann die Oszillator-Ausgangsfrequenz mit 4, um eine interne Taktfrequenz von bis zu 40 MHz zu erzeugen. Die PLL steht dem Kristalloszillator nur zur Verfügung, wenn die FOSC3:FOSC0 Konfigurationsbits sind für den HSPLL-Modus programmiert (= 0110)."
Raketenmagnet
Standard-Sandun
AndrejaKo
AndrejaKo
Leon Heller
AndrejaKo
abdullah kahraman
abdullah kahraman
AndrejaKo
abdullah kahraman
WütendEE
AndrejaKo
AndrejaKo
abdullah kahraman
AndrejaKo
AndrejaKo
abdullah kahraman
Chris Laplante
Leon Heller
Benutzer121934
AndrejaKo