PIC 18F4420 schaltet FET, mal nicht
Hy,
ich hab eine relativ komplexe platine für den Raspberry PI entwickelt. Ich hab alle aufgetretenen fehler gelöst, bis auf einen:
Ich nutze den PIC unter anderem, um den Raspberry und andere Stromverbraucher zu schalten. Für tests hab ich eine einfaches Programm geschrieben das einfach nur die nötigen PINs schaltet, welches funktionieren sollte (wüsste nicht warum nicht).
Das ganze funktioniert am anfangs schön und gut, wenn ich mich aber an einer bestimmten stelle mit dem Finger der platine nähere, und wieder entferne schaltet der FET nicht mehr, nur wenn ich den finger an einer bestimmten stelle über der Platine habe (muss sie nicht berühren, der effekt ist vermutlich kapazitiver natur).
Ich nutze keinen externen quarz, sondern den internen takt mit 8 MHz. Die Stromversorgung ist ein selbstgebauter Step-Down wandler mit etwa 70KHz, ohne besondere siebeschaltungen, wodurch der PIC mit spikes von etwa 0,5V konfrontiert ist. Abblockkondensatoren sind vorhanden. Der PIC ist sehr nahe am StepDown (an einer seite des PICs ist auf dem anderen layer bereits die Spule (geschirmt). MCLR ist deaktiviert.
Die Frage ist jetzt, was könnte den fehler verursachen?
- Das Problem wird mithilfe einer (kapazitiven, oä.) Änderung ausgelöst, und bleibt auch nachher bestehen
- Um dem Chip am laufen zu halten muss der finger an einer bestimmten stelle der Platine gehalten beleiben. Die FETs laufen dann aber nicht dauernd, sondern werden mit etwa 50Hz geschalten (einstreuen der Netzspannung über den Finger).
Ich vermute mal den Step Down, ich hab aber auch schon komische probleme mit PICs gehabt, die ohne StepDown schon gesponnen/oder gar nicht angelaufen sind. Deshalb frage ich hier nochmal, ob villeicht irgendjemand von euch bereits solche probleme gehabt hat, oder welche arten von probleme es sein könnten. Besonders die Frage, wie viele störungen ein PIC auf der Versorgung verträgt, bzw. direkte/indirekte Magnetische/Kapazitive einwirkungen auf den Chip er verträgt, wäre für die problemlösung vermutlich von interresse.
mfg, pointhi
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 26848Die Schaltung ist erprobt, und das problem liegt bereits beim steuersignal (schaltet nicht mehr auf high, bzw. im 50Hz takt). Bei +5V/1 liegt die versorgungsspannung an. Geschalten wird mit PIND0, bzw. der 2. Fet mit PIND1, laut datenblatt entweder für IO oder paralelle schnittstelle konfigurierbar, also passend.
mfg, pointhi
Liste der Anhänge anzeigen (Anzahl: 1)
wenn ich es richtig einschätze ist der fet im eingeschalteten zustand innstabil (weil er sich beim auftreten des problemes ausschaltet). Der FET an sich ist nur dazu da, die Betriebsspannung zu schalten (Tiefentladeschutz, kaltstart des restlichen Systems). Schaltzeiten sind daher irrellevant.
Ich hab den pic auch mal umprogrammiert dass der Ausgang wechselseitig high/low wird (500ms), es hat so lange funktioniert, bis ich wieder das system mit dem finger außer gefecht gesetzt habe (wobei es sich hin und wieder nach ein paar sec. regeneriert hat, aber nur hin und wieder).
Der FET wird bei meinen Tests entweder mit einer LED, oder mit einem ganzen Raspberry Pi belastet (0,5A leerlauf sind realistisch), bei beiden tritt das problem auf.
Die Modifikationen am board werde ich morgen durchführen, wenn ich bessere möglichkeiten für SMD-Arbeiten habe.
Damit ihr euch etwas darunter vorstellen könnt hab ich mal ein foto vom aktuellen layout dranngehängt:
Anhang 26858
Das wichtigste hab ich noch einmal eingezeichnet, meine version ist leicht abgeändert, weil ich noch ein paar kondensatoren mehr für den StepDown benötigt habe, und die masseschleifen entfern habe (die aber erst auftreten, wenn der Raspberry Pi bzw. das Display eingesteckt werden.)
Meine therorie ist, da das register problem weg ist, dass ich mithilfe des fingers störungen des step downs ( oder vom netz) auf ein kritisches niveau bekomme, und so die schaltung zu spinnen beginnt. Was mich dabei aber wundert ist dass die schaltung danach nicht wieder normal weiterarbeitet.
Ich werde jetzt dann mal die basis des transistors mit einem wiederstand auf masse ziehen, sodass bei einem offenen ausgang ein stabiler pegel vorhanden ist.
mfg, pointhi