Forum: Mikrocontroller und Digitale Elektronik MOSFET Treiber geht kaputt


von Andre R. (ryan87)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich hab schon wieder ein kleines Problem.
Zur Zeit steuere ich mehrere BLDC Motoren (3 phasig) an (Maxon EC45, 
30W). Kontrolle geschieht via Soft-PWM eines STM32. Soweit funktioniert 
auch alles ganz gut.
Wenn ich nun 4 Motoren steuere, ist mir nun zum zweiten Mal die 
komplette MOSFET Treiberstufe in Rauch aufgegangen. Dies geschieht ca. 
30s nach erfolgreicher Kontrolle.
Ich verwende 3x TC4428 als Treiber und 3x FDS8858 Komplementär-Mosfet. 
Eagle Plan ist im Anhang. Ich hatte vorher noch einen anderen Treiber im 
Einsatz, den IR4428 (gleiche Funktion). Ich hab irgendwie die Vermutung, 
dass die Eingänge der Treiber unterschiedlich sind. Ich hab die 
Functional Diagrams der Treiber mal mit angehangen. Zwischen Push-Pull 
Ausgang vom Cortex und Eingang der Treiber sind keine Widerstände, 
könnte das die Ursache sein?

Interessanterweise gehen gleichzeitig ALLE Treiberstufen kaputt, nicht 
nur auf einem Motor, könnte aber auch ne Folgeerscheinung sein.

Bin zur Zeit ein wenig ratlos und würde mich über jeden Tipp freuen.

von David (Gast)


Lesenswert?

Hallo Andre,

den richtigen Tip habe ich jetzt nicht parat.

> Zur Zeit steuere ich mehrere BLDC Motoren (3 phasig) an (Maxon EC45,
> 30W). Kontrolle geschieht via Soft-PWM eines STM32. Soweit funktioniert
> auch alles ganz gut.

Wie hoch ist denn Vcc?

> Ich verwende 3x TC4428 als Treiber und 3x FDS8858 Komplementär-Mosfet.

Die Gatewiderstände kommen mir bei der Gatekapazität des FDS8858 von 
1,7/0,9 nF zu groß vor. Ich würde eher was im unteren Ohm-Bereich 
nehmen.
Oder ganz weglassen, da der TC4428 ja schon 7 Ohm Ausgangswiderstand 
hat.

> Zwischen Push-Pull
> Ausgang vom Cortex und Eingang der Treiber sind keine Widerstände,
> könnte das die Ursache sein?

Das glaube ich nicht.

> Interessanterweise gehen gleichzeitig ALLE Treiberstufen kaputt, nicht
> nur auf einem Motor, könnte aber auch ne Folgeerscheinung sein.

Könnten das Spannungsspitzen auf Vcc sein, die die max. 
Versorgungsspannung (22V) der TC4428 überschreiten?

David

von MaWin (Gast)


Lesenswert?

> Interessanterweise gehen gleichzeitig ALLE Treiberstufen
> kaputt, nicht nur auf einem Motor

Klingt nach GND-Problem. Da deine Treiber kein gleichzeitiges
Einschalten der oberen und unteren MOSFETs mit ausreichender
dead time erzwingen, kann eine massive Störung auf GND der
Treiberschaltung in Bezug zu GND der Ansteuerschaltung zu
solchen Fehlfunktionen führen, daß beide Transistoren gleichzeitig
leiten.

Da du auch keinerlei Kurzschlusschutz eingebaut hast, gehen
dann halt alle Transistoren kaputt.

Die 470 Ohm sind auch Humbug, ein paar Ohm braucht man dort bei
analogansteuerung von MOSFETs, aber was sollen die 470 Ohm
dort ? Das ist keine dead time control.

Wenn du all diese Probleme vermeiden willst, nimmst du einen
LT1158. Der hat nur einen Eingang, kümmert sich um die dead
time, und macht einen Kurzschlussschutz und kommt auch noch
mit NMOSFETs aus. Leider enthält er keinen SOA-Schutz.

von BMK (Gast)


Lesenswert?

Das erinnert mich an meine Versuche mit ebenfalls diesem Treiber
TC4428 und daran P / N Mosfets dann Speicherdrossel (Buck)

Ich hatte allerdings Hardware-Deatimes drin, so dass ein Shoot-Through
ausgeschlossen war (gemessen).

Trotzdem killte es den TC4428, und zwar immer den internen Upper-MOSFET,
bei Spannungen etwa 12....15V

Letztlich blieb als Ursache nur der böse Miller übrig, dass
Spannungspeaks über die Gate-Kapazitäten des MOSFET rückwärts
in den Treiber gelangten und den internen Upper-MOSFET schädigten.

Hatte dann überlegt, mit TVS Dioden abzublocken.
Letztlich fiel die Wahl auf einen anderen Treiber:
http://focus.ti.com/lit/ds/symlink/ucc37325.pdf

Der war dann tatsächlich durch die Kombination CMOS/Bipolar
in der Ausgangsstufe unempfindlich gegen die Spitzen und netterweise
auch noch pinkompatibel.

Wobei der vorgeschlagene LT1158 sicherlich die eleganteste Lösung
darstellt, wobei keine 100% PWM wegen Bootstrapping möglich ist.

von Andre R. (ryan87)


Lesenswert?

Vcc betrug beim Test 15V aus einem Schaltnetzteil (100W max). Im Einsatz 
beträgt Vcc dann maximal 16.8V (LiPo Akku).

Die Gatewiderstände hatte ich gewählt um beim Defekt eines Mosfet den 
Strom zu begrenzen der durch den Treiber geht. Nicht so clever, da ja 
dadurch die Anstiegszeit stark vergrößert wird.

Deadtime wird via Software eingebaut, beträgt bei 100% PWM ca. 1us. PWM 
Frequenz ist 8kHz. Mein Code schaltet während der On-Phase die drei 
Motorphasen entsprechend der Kommutierung und in der Off-Zeit sind alle 
Phasen hochohmig (alle Mosfets sperren). Da ich beim Test nur bei 15% 
PWM war sollte die Deadtime groß genug sein.

Der LT1158 ist natürlich luxus. Leider ist er a) zu teuer und b) zu groß 
für mein Board (jetzt bitte keine Kommentare "Boarddesign richtet sich 
nach den Bauteilen").
Der UCC37325 hat eine maximale Supply Voltage von 16V, fällt daher 
leider auch aus.

Bei mir ist es wie bei BMK, die Upper-MOSFETs im TC4428 sind alle durch. 
Nur wo könnte dann die passende Spannungsspitze herkommen?

Kann ich eine Shoot-Through Condition mit wenigen Bauteilen irgendwie 
elegant verhindern? So dass ich ein wenig mehr Sicherheit drin habe.

von Andre R. (ryan87)


Lesenswert?

<<buzz>>

Zwei weitere Fragen:
1. Hilft es die Treiber durch welche zu ersetzen, die mehr Power haben? 
(Peak Current 4,5A, MCP1405, anstatt wie bisher 1,5A, TC4428) Kann ich 
das weiterleiten der Spitzen dann verhindern indem ich schneller umlade?

2. An welcher Stelle müsste ich die Suppressordioden einbauen? Einmal 
VCC gegen GND neben der gesamten Treiberstufe? Oder pro Ausgang der 
Treiberstufe eine?

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.