Woher weisst du es ? Ich kann leider ohne kompletten und verständlichen Schaltplan nix konkretes sagen. ;)
Druckbare Version
Ich hab jetzt mal einen widertstand von der steuerleitung zur masse (12K), und eine led zur masse mit widerstand geschlossen.
Ergebnis: LED leuchtet, bis der fehler auftritt, oft (aber nicht immer) regeneriert sich das system aber nach ein paar sekunden.
Hier sind die Eagle-Dateien des projekts, villeicht wird man hier fündig:
Anhang 26862
Es sind ein paar modifikationen auf der platine, die sich aber nicht auswirken sollten. (Ein paar kondensatoren mehr,...)
Ein lehrer hat mir den tipp gegeben, dass der pic mit den Störungen auf der Spannungsversorgung nicht zurechtkommen könnte, eine spule hat nichts gebracht, also werde ich den pic testweise mal mit einer eigenständigen Versorgung ausstatten (Linearregler, 5V).
Beim Thema softwareproblem fällt mir nichts ein was nicht funktionieren könnte. Den Code hab ich ja schon ein paar threads vorher gepostet, und die Steuerpins schalten auf high, sonst würde die LED nicht genügend strom bekommen.
mfg, pointhi
glaube ich auch, ich werde deshalb einen linearregler versuchsweise mal benutzen (natürlich von versorgungsspannung auf 5V, der strom ist ja nicht sehr hoch).
Hallo pointhi,
ändere mal deinen Code in " __delay_ms(500); ". Dann geh mal mit dem Multimeter drann.
Oder sogar in 1000 ms.
Taktet der PIC-Pin zwischen 5V und 0V?
Wenn nicht, dann suchen wir weiter.
Oder hast du zwischenzeitlich den Fehler gefunden?
Gruß
Eine IDee hätte ich noch:
Den MCLR Pin hast Du ja ausgeschaltet in der Konfiguartion. Ich weis aber aus Erfahrung, daß dieser PIN trotzdem extrem empfindlich auf Störungen reagiert.
300mV über Vcc löst einen Reset aus, obwohl der PIN eigentlich abgeschaltet wurde. Vielleicht streut hier etwas rein.
Ich habe eine Shottky Diode zwischen VCC und MCLR Pin eingebaut um hier Spannungsspitzen, woher auch immer, auszuschalten. Das hat sich sehr bewährt. Problem ist nur beim Programmieren muss die Diode erstmal wieder raus
wegen der gewollten höheren Programmierspannung.
Das Anlaufen der PIC's ohne Brown Out Enabled ist immer wieder problemeatisch nach meinen Erfahrungen her. Zumal DIESER PIC generell ein Problem mit der Brown Out Schaltung hat, laut Errata Sheet.
Es klingt eindeutig nach einem Hochohmigen Problem. Also niemals den MCLR in der Luft lassen, auch wenn dieser Softwaremässig abgeschaltet wurde.
Ich denke mal wie ossy schrieb: lange Warteschleife und den Pin sich anschauen. Wenn er plötzlich nichts mehr tut nachdem Du mit dem Finger das Problem ausgelöst hast,
würd ich auf den Reset Pin tippen.
ich hab mal einen linearregler rangehängt, der step down hat aber wild in die versorgung hineingestrahlt (ca. 50mV Brummspannung auf 5V vom Linearregler, mit den typischen schwingungen des step Down). Den Test ob die Versorgungsspannung das problem ist konnte ich also nicht wirklich durchführen. Das Problem ist noch immer bestanden.
Das mit dem MCLR Pin könnte wirklich das problem sein. Villeicht geht der PIC in den Programmiermodus, und verlässt ihn mit ein wenig glück wieder. Ein Widerstand (5k6) nach masse, und ein 100nF kondensator sollte meiner meinung ausreichend sein um das zu probieren, und sollte so auch ohne diode den Pin auf einem sauberen pegel halten. Und das Programmiergerät schafft sowieso genügend strom um den pin wenn nötig nach oben zu ziehen.
Durch die for-schleife sind es (sichtbare) 500ms, leider aktzeptiert mir der compiler keine hohen delay werte, deshalb musste ich ein wenig tricksen :). Das Blinken hat funktioniert, bis der fehler auftrat. Er hat auch auf der Steuerleitung den LED mit genügend strom versorgt (hab ich glaub ich schon geschrieben).Zitat:
ändere mal deinen Code in " __delay_ms(500); ". Dann geh mal mit dem Multimeter drann.
Oder sogar in 1000 ms.
Brown Out Enabled werde ich auch mal aktivieren, wobei ich mir nicht vorstellen kann das das das problem ist (weil der pic ja schon sauber läuft wenn das problem auftritt)
thx für die bisherigen ideen.
mfg, pointhi
- - - Aktualisiert - - -
ich hab jetzt den mclr pin so beschalten, dass ein spannungsteiler auf 2,5V gemacht wird. Also 100nF Kondensator und 5k6 Ohm Widerstand von MCLR auf masse, und seriell ein 5K6 Ohm Widerstand und eine Schottky Diode (Seriell) von +5V auf MCLR. Vorher hatte ich teilweise spitzen von +- 100-200mV auf MCLR, welche sich ein wenig minimiert haben, aber noch immer existent sind (jetzt aber auf einem sichern Pegel).
Das Problem existiert noch, aber ist gefühlt abgeschwächt worden. Auch hab ich herausgefunden das der problem z.b. beim programmierstecker meistens nur auftritt, wenn ich den MCLR Pin berühre. Es wird also vermutlich das problem sein. Meiner meinung könnten die hochfrequnte störungen an sich bereits probleme bei der programmierschaltung hervorrufen, da diese ja auf wenige nm an anderen wichtigen teilen davon im IC heranreichen.
Ich glaub ich werde die Platine soweit neu designen, dass der Step Down mehr abstand zum PIC hat, einen Filter erhält und das die MCLR leitung incl. dem Programmierinterface auf störungsärmere bereiche verschoben wird. Dann wird man sehen ob das reicht, oder das problem noch immer vorhanden ist.
Hallo,
Du solltest besonderes Augenmerk auf die Masseführung richten. Ganz besonders bei den Leitungen des Wandlers.
Aber bei deinem Bild des Layouts kann man nichts erkennen. Dazu baucht man das Schema um die kritischen Pfade zu erkennen.
Stell dir einfach immer vor, dass jede Leiterbahn auch ein Widerstand ist! Bei einem Schaltregler muss man die Spannung unbedingt direkt am Elko angreifen.
Greifst du z.B. die Masse direkt am Spannungseingang der Schaltung ab, hast du die ganzen Spannungsabfälle, welche beim laden des Elkos anfallen, mit auf deiner Betriebsspannung :-(
MfG Peter(TOO)
MCLR mit 10k auf +5V dann gehts!
Gruß
Ich hab die eagle-Datei schon hier veröffentlicht. Massepfade des schaltreglers sind sehr bewusst gelegt (möglichst kleine schleifen, masseknoten) (http://www.lothar-miller.de/s9y/cate...t-Schaltregler), in der aktuellen platine sind die eingangs/ausgangskondensatoren mindestens verdoppelt worden, und jeweils noch ein 100nF paralell. Davor hat der regler nicht sauber gearbeitet.
Die Masseführung darüber hinaus ist aber noch nicht optimal gelöst, muss ich also auch noch ändern. (Auf dem Prototypen hab ich zur widerstandsverminderung alle wichtigen leiterbahnen verzinnt, sollte also nicht das ursächliche problem sein)
MCLR ist deaktiviert, und derzeit auf 2,5V gelegt. Wenn ich auf 5V lege und die störungen zu stark sind hab ich wesentlich schneller VCC+0,3V erreicht. Glaube nicht das das hilft.Zitat:
MCLR mit 10k auf +5V dann gehts!
mfg, pointhi