Forum: Mikrocontroller und Digitale Elektronik USB-Spannungsversorgung lässt PIC24FJ128 abstürzen?


von A. S. (rava)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe ein 3 Jahre altes Projekt ausgegraben.
Dazu entwickle ich eine neue Software für eine Platine mit 
PIC24FJ128GC010. Die Platine hat mehrere Möglichkeiten mit Spannung 
versorgt zu werden. Es wird aber immer nur eine davon verwendet.

Für's Debugging habe ich leider nicht viele Ausgabemöglichkeiten, da die 
Platine später über serielle Datenverbindungen (SPI & USB) kommunizieren 
wird. Aber: als Demoprogramm habe ich einen kleinen LED-Blinker 
geschrieben. Eine einzige LED ist nämlich da.

Mein Setup:
* Code und Konfiguration aus MPLABX & MCC
* Flashen mit pickit3 (power via pickit)
* Die Platine blinkt vom pickit3 mit 3.3V versorgt los und macht keine 
Probleme
* Dann stecke ich das pickit3 ab und stecke ein USB-Kabel an
* Wieder blinkt die Platine los, scheinbar korrekt über USB mit Spannung 
versorgt
* Nach 5-20 Sekunden fängt die LED kurz an zu flimmern und geht dann 
komplett aus. Mit der pickit-Versorgungsspannung sehe ich sowas nie!


In meiner Anwendung ist USB deaktiviert. Ich ziehe nur den Strom aus dem 
USB. Interessanterweise kann ich alles mögliche machen, so lange das 
Ding nicht abgestürzt ist. Beispielsweise kann ich USB anschalten, ein 
UART-Gerät anmelden und mich über PUTTY mit dem PIC unterhalten. Aber 
eben nur für ca. 20sek...


Ich habe nicht viel Erklärungen. Über USB geschieht die 
Spannungsversorgung mit einem MCP1801. das Ganze habe ich wie im 
µC-Manual beschrieben als Dual-Power System ausgelegt (Man kann auch 5V 
anstecken, dann zieht der controller nicht mehr über USB).
Meint ihr, der Regler schwingt? So wie ich meinen Schaltplan von damals 
lese, habe ich einige Kerkos vergessen. Das MCP1801-Datenblatt verlangt 
2x 1µF. Das ist aber schon arg viel. Warum ich gar nichts eingesetzt 
habe, ist mir gar nicht klar. Aber Falls die Theorie stimmt, wieso 
dauert das Ganze 20sek?

Oder kann es sein, dass ich mir mal irgendwann den MCP zerstört habe, 
weil ich USB und VDD aus dem pickit3 gleichzeitig dran hatte? Das passt 
nur nicht zu den 20 Sekunden...

von Klaus (Gast)


Lesenswert?

A. S. schrieb:
> Nach 5-20 Sekunden

Diese Zeit klingt für mich nach Temperatureffekt. Und wenn das 
wiederholbar ist, nach thermal shutdown

MfG Klaus

von georg (Gast)


Lesenswert?

Klaus schrieb:
> Diese Zeit klingt für mich nach Temperatureffekt. Und wenn das
> wiederholbar ist, nach thermal shutdown

Und die hohe Verlustleistung kann durchaus durch Schwingen aufgrund 
fehlender Kondensatoren verursacht werden.

Testmöglichkeit: Kältespray auf den Regler, ob sich so an den 20 Sek was 
ändert.

Georg

von H.Joachim S. (crazyhorse)


Lesenswert?

georg schrieb:
> aufgrund
> fehlender Kondensatoren verursacht werden.

@TO: du stellst selbst den Auszug aus dem Datenblatt hier rein, mit den 
Kondensatoren. Und dann lässt du sie einfach weg :-).
Gerade bei LDOs sollte man sich an die Herstellerempfehlungen halten.

von Kosten Optimierer (Gast)


Lesenswert?

Abblock-Kondensatoren sind doch nur unnötiger Luxus, sowas
brauchts überhaupt nicht, nur lästiges Beiwerk, gedacht
für Warmduscher und Leute die nicht löten können.

von H.Joachim S. (crazyhorse)


Lesenswert?

Ah, jetzt habe ich es erst zu Ende gelesen..., manchmal ist das 
sinnvoll.
Vergiss obigen post.

von Jim M. (turboj)


Lesenswert?

A. S. schrieb:
> Oder kann es sein, dass ich mir mal irgendwann den MCP zerstört habe,
> weil ich USB und VDD aus dem pickit3 gleichzeitig dran hatte? Das passt
> nur nicht zu den 20 Sekunden...

Was sagt denn der Oszi zu der 3,3V Versorgungsspanung?

Das pickit3 könnte ein paar Kondensatoren auf der VDD Leitung haben, die 
hier relevant werden.

von A. S. (rava)


Angehängte Dateien:

Lesenswert?

vielleicht zur Erklärung:
ich habe jede Menge Abblockkondensatoren auf der Platine (10µF Tantal an 
VCAP laut µC Datenblatt und 5x 100nF an VDD). Nur offensichtlich war ich 
damals vor einigen Jahren der Meinung, dass ich am LDO-Spannungsregler 
keine mehr brauche. Warum kann ich nicht sagen. Kostensparen war 
sicherlich nicht der Grund. Stückzahl ist nämlich 1. Eher noch Blödheit.

Ich hatte ursprünglich noch einen 10µF Tantal an der VDD-Leitung 
geplant, aber der fehlt. Vermutlich hatte ich keinen mehr. Meine 
Vermutung: bei so kleinen Strömen dürfte der wenigstens bis ich wieder 
Teile bestelle, verzichtbar sein, oder?




Gestern war's spät. Hier die neusten Ergebnisse:
* Am Ausgang vom U2, der die 5V von USB wandeln soll liegen 3V, auch 
nach dem Absturz. 3.3V werden nie erreicht.
* R5-R7 sind um einen Faktor 10 kleiner als im Schaltplan (sollte nichts 
ändern, oder?)
* Aus dem offenen Eingang von U1 kommen 1.2V heraus. Der Ausgang von U2 
liegt auf demselben Niveau. Ist es plausibel, dass das so aus der 
Tansistorbasis kommt? (3V-0.6V)/2 = 1.2V
* Die Transistorbasis liegt konstant auf 2.4V
* Wenn ich T1 mit dem Lötkolben im Betrieb kurz antippe, startet der µC 
neu und stürzt schnell nach 1-2 Sekunden wieder ab (@Klaus). Die anderen 
Bauteile erlauben das nicht.

Das Oszi zeigt mir nach dem Absturz:
* kurze Spannungseinbrüche am Ausgang von U2 (auf 2.5V @ 10kHz).
* deutlich extremere Einbrüche und Ausregelungen an VDD (auf 1.2V @ 
10kHz)


Es fällt auf, dass das Schwingen an VDD deutlich extremer ist als am 
MCP. Kann der Transistor was abbekommen haben?

Auch scheint der µC irgendeinen internen Spannungsregelmechanismus zu 
haben, siehe 10µF Tantal am VCAP pin. Ich frage mich, ob da irgendwas 
gegeneinander arbeitet. Vermutlich aber nicht....

: Bearbeitet durch User
von Gerhard (Gast)


Lesenswert?

Was soll eigentlich der R8 mit 100OHM?
Ich vermute er verursacht Deine Probleme.
Gerhard

von A. S. (rava)


Lesenswert?

kleines update:
ich habe jetzt 2x 100nF vor und nach U2 nachgelötet. Damit verschwindet 
der Ripple an in U2_OUT.jpg.
Dann habe ich einen 10µF als zusätzlicher Puffer an VDD eingelötet (habe 
noch einen gefunden). Auch hier werden die 10kHz-Schwankungen deutlich 
weniger (jetzt nur noch +/- 0.15V).

Trotzdem sehe ich noch dasselbe Verhalten: wenn ich bei angeschlossenem 
USB einen Transistorpin aufheize, kriege ich für einige Sekunden 
Spannung an den µC, sodass die LED leuchtet.


Wenn ich 5V und USB zusammen verwende (also theorietisch Kommunikation 
über USB und Versorgung über externes Netzteil), läuft alles sehr 
stabil.

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

Ich finde die ganze Schaltung merkwürdig und aufwändig.
Warum überhaupt 2 Regler und der Transistorkram?? Führe die zwei 
5V-Spannungen vor dem Regler zusammen, fertig.
Für Speisung aus den 3,3V-Pickit: eine Schottkydiode über dem Regler 
sollte diesen ausreichend vor Rückspannung schützen.
Und wenn da steht 1µF am Eingang, 1µF am Ausgang - dann mach das bitte 
auch so.
Der 100R in der USB-Leitung ist auch Quark. Wenn du willst kannst du da 
eine Polyfuse setzen.

von A. S. (rava)


Lesenswert?

also, ich hab die Spannungswandler auseinandergenommen, mit dem 100R 
gespielt, T1 überbrückt, und nochmal alles nachgelötet, und das korrekte 
Hühnerfutter eingestezt.

Aktueller Stand:
* Es ist doch so, dass der Controller bei allen Spannungsquellen 
irgendwann abstürzt.
* Es ist definitiv ein thermisches Problem
** ich habe deutliche Hitzeentwicklung in der Nähe vom bzw. im µC
** Besonders der 10 µF Tantal, der am internen Spannungsregler sitzt 
(siehe vcap_pin.png oben), wird sehr heiß. Folge: die anliegende 
Corespannung sinkt mit steigender Temparatur ab...
** Der Controller überhitzt auch dann, wenn alle pins als GPIO-Inputs 
konfiguriert wurden und das USB-Modul abgeschaltet ist.
** alle VDD, VSS, AVDD, AVSS, SVDD, SVSS Pins sind angeschlossen. 
VUSB3.3 ebenfalls. VCAP liegt über 10µF Tantal an GND (wie gesagt); VBAT 
ist floating. CH0+, CH0- und SVREF+ sind offen; Aus irgendeinem Grund 
ist SVREF- auf GND geklemmt.
** Ich habe mal versuchsweise die CPU-Geschwindigkeit von 32MHz auf 8MHz 
reduziert. Hat auch nichts geholfen.
** es gibt meiner Meinung nach keine Lötbrücken mehr am TQFP100
** ohne Strom sind 10kOhm zwischen VDD und GND


viele Ideen habe ich nicht mehr. Ich könnte den Tantal nochmal gegen 
Keramik tauschen, aber dafür muss ich sicher erstmal einkaufen gehen...

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

A. S. schrieb:
> ** Besonders der 10 µF Tantal, der am internen Spannungsregler sitzt
> (siehe vcap_pin.png oben), wird sehr heiß.

Dann ist der kaputt.
Oder verpolt, dass will ich aber mal ausschliessen. Du weisst aber, dass 
bei Tantals der Pluspol gekennzeichnet ist, bei Al-Elkos der Minuspol?

von Kosten Optimierer (Gast)


Lesenswert?

A. S. schrieb:
> ** Besonders der 10 µF Tantal, der am internen Spannungsregler sitzt
> (siehe vcap_pin.png oben), wird sehr heiß.

Wenn ein Elko heiss wird dann ist er garantiert falsch herum
gepolt.

Da fliesst dann mächtig Strom durch.

von A. S. (rava)


Lesenswert?

erledigt. Schade dass ich erst die komplette Spannungsversorgung 
auseinandergelötet habe.
Ich vermute mal, das pickit 3 liefert weniger als die 500mA, die aus dem 
USB kommen und daher hat es länger gedauert, bis der verpolte Tantal so 
heiß war, dass die Spannung am µC eingebrochen ist.

Vielleicht gibt es mal eine revision 2 der Platine, dann werde ich mich 
wieder an euch wenden, wie man am besten eine solche Spannungsversorgung 
baut, die zwischen mehreren Quellen umschaltet...

von Klaus (Gast)


Lesenswert?

A. S. schrieb:
> Ich vermute mal, das pickit 3 liefert weniger als die 500mA, die aus dem
> USB kommen und daher hat es länger gedauert, bis der verpolte Tantal so
> heiß war, dass die Spannung am µC eingebrochen ist.

IMHO sind das etwa 100mA. Auf dem PICKit ist ein einstellbarer Regler, 
da kann man Spannungen von 2,xxV bis 5V einstellen. Das ist aber kein 
Labornetzteil.

MfG Klaus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.