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.
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
> 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.
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.
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.
<<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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.