Forum: Analoge Elektronik und Schaltungstechnik DC Motor Treiber explodiert


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan (drotalion)


Angehängte Dateien:

Lesenswert?

Hallo Allerseits,

ich habe gestern das erste Mal von Steinzeit L298N auf TB6612 
umgestiegen. Ich habe mir die Datenblätter angeschaut. TB6612 hat Max 
1,2A und mein Motor JBG37-520 hat laut Datenblatt 100mA in Normalbetrieb 
und 1A Stall. Also habe ich sogar 20% Toleranz, fein.

Ich habe alles so angeschlossen, wie ich es von L298N kenne. Habe meine 
Stromquelle angemacht, brav auf 0V wie man kennt. Arduino war noch nicht 
am Laptop angeschlossen, also der war aus, um mögliche Problemstellen zu 
eliminieren. Ich habe langsam die Spannung erhöht. Die Stromstärke blieb 
brav bei 0,1A herum, was ja bei MOSFET gesteuerte DC Motortreiber völlig 
in Ordnung war. Die Spannung stieg (wortwörtlich) 6V-7V-8V-9V-1... PATZ. 
Der Kondensator auf der TB6612 hat sich verabschiedet.

Meine Frage: Was habe ich falsch gemacht? Ich will nicht noch ein TB6612 
verbraten, die Dinger sind jetzt mit 8€ / Stück nicht günstig.

FAQ:
- Was willst du machen?
DC Motor samt Hall Sensoren und PID präzise steuern.

- Code?
An der Stelle nicht relevant, da Arduino nicht ein mal eingeschaltet 
war. Sonst ist es standard PID Code. Ich habe ein Serial.read() der die 
eingegebene "Step" anzahl entgegen nimmt und durch PID an dieser 
Position die DC Motor fährt.

Vielen Dank

: Verschoben durch Moderator
von Jens G. (jensig)


Lesenswert?

Stefan schrieb:
> eliminieren. Ich habe langsam die Spannung erhöht. Die Stromstärke blieb

Das macht man überhaupt nicht, bei einem IC mit gewissem Innenleben. Da 
sollte man rel. zügig eine sinnvolle Betriebsspannung erreichen.

> brav bei 0,1A herum, was ja bei MOSFET gesteuerte DC Motortreiber völlig
> in Ordnung war.

Wieso - was hat das mit Mosfet zu tun?

> in Ordnung war. Die Spannung stieg (wortwörtlich) 6V-7V-8V-9V-1... PATZ.
> Der Kondensator auf der TB6612 hat sich verabschiedet.

Hoffentlich waren die 6V-7V-8V-9V-1... an Vmot dran ...
Und hoffentlich hat Dein Netzteil beim Hochdrehen keine Spannungssprünge 
wegen dreckigem Poti oder sowas ...
Ansonsten, wenns nur den C erledigt hat, dann neuen rein, und weiter ...

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Steckbretter und Dupont Kabel eignen sich wegen der Innen- und 
Kontaktwiderstände nicht zur Stromversorgung. Krokodilklemmen sind auch 
oft ungeeignet.

Spannungsabfall an GND Leitungen führt zu (aus Sicht des IC) negativen 
Spannungen an Eingängen, wodurch das IC kaputt geht.

Beim Bremsen wird der Motor zum Generator. Ich sehe bei dir nichts, was 
die Bremsenergie aufnehmen kann. Der kleine Chip kann es jedenfalls 
nicht.

Lösungsvorschlag:

Benutze dickere gelötete Kupferkabel zur Stromversorgung. Beschütze die 
Stromversorgung mit einer dicken Zenerdiode oder einer entsprechenden 
Ersatzschaltung davor, zu hoch anzusteigen. Oder benutze einen Akku 
statt Netzteil.

von Jens G. (jensig)


Lesenswert?

Steve van de Grens schrieb:
> Beim Bremsen wird der Motor zum Generator. Ich sehe bei dir nichts, was
> die Bremsenergie aufnehmen kann. Der kleine Chip kann es jedenfalls
> nicht.

Wenn der TO es richtig ausgeführt hat, dann war der Motor noch gar nicht 
in Bewegung, Also erstmal eher irrelevant ...

von Wastl (hartundweichware)


Lesenswert?

Steve van de Grens schrieb:
> Lösungsvorschlag:

Ein dicker Elko zum Abblocken würde sicher auch gut tun.
Ein Netzteil wird wohl die Spannung nur nach unten
stabilisieren, eine Batterie würde auch Überspannungen
abfangen.

Die Adafruit-Anleitung(en) suggeriert dass alles ganz
einfach geht.

Jens G. schrieb:
> Wenn der TO es richtig ausgeführt hat, dann war der Motor noch gar nicht
> in Bewegung

Aber der (angeschlossene aber inaktive) Arduino liefert an den
Eingängen zum Treiber undefinierte Pegel. Was da wohl passiert?

von Jens G. (jensig)


Lesenswert?

Wastl schrieb:
> Jens G. schrieb:
>> Wenn der TO es richtig ausgeführt hat, dann war der Motor noch gar nicht
>> in Bewegung
>
> Aber der (angeschlossene aber inaktive) Arduino liefert an den
> Eingängen zum Treiber undefinierte Pegel. Was da wohl passiert?

Bis jetzt soll doch nur ein C hochgegangen sein ...
Und der Arduino liefert gar keine Pegel - war schließlich noch gar nicht 
unter Strom, und der TB6612 soll ja auch bereits interne 200k-PullDowns 
haben, insofern auch nicht undefiniert.
Was aber unklar ist lt. Schaltplan - die Massen sind nicht verbunden, 
und das kann dann in der Tat alles mögliche einkoppeln.
Und dann sieht es auch noch so aus, als ob + und - vertauscht sind (was 
dann aber nur einen Elko (nicht MLCC)  (und auch den IC) dahin raffen 
würde.

: Bearbeitet durch User
von Nils S. (wall-e)


Lesenswert?

Wie sieht denn das defekte Modul von vorne aus ? War der Tantal korrekt 
gepolt aufgelötet?
Wie sieht das neue Modul von vorne aus ?
Die Pinbelegung des Moduls im Schaltplan passt aber nicht zur 
Pinbelegung des echten Moduls !?

von Stefan (drotalion)


Angehängte Dateien:

Lesenswert?

Danke an Alle für eure Antworten!

Jens G. schrieb:
> sollte man rel. zügig eine sinnvolle Betriebsspannung erreichen.

Heißt für mich, ich stelle erstmal die 12V in meiner Spannungsquelle ein 
und dann hänge ich die Krokodilklemme dran?

Jens G. schrieb:
> Hoffentlich waren die 6V-7V-8V-9V-1... an Vmot dran ...

Definitiv

Jens G. schrieb:
> Und hoffentlich hat Dein Netzteil beim Hochdrehen keine Spannungssprünge
> wegen dreckigem Poti oder sowas ...

Sehr guter Punkt! Das ding war jetzt nicht sonderlich teuer und ist made 
in Tschaina. Daher, möglich... Die Anzeige hat zwar keine Sprünge, aber 
man weiß es nicht. Guter Punkt. Das nächste mal heißt es für mich:

1) Einstellen
2) Mit einem Multimeter messen
3) Dann anschließen

Jens G. schrieb:
> Ansonsten, wenns nur den C erledigt hat, dann neuen rein, und weiter ...

Ich habe keine Potis herumliegen und besitze auch nicht die Geschickt, 
SMT mit meinem riesigen Lötkolben dranzulöten (weshalb ich auch 
weiterhin mit Arduino 5V herummache, statt ESP32s zu verwenden, da HX711 
mit 3.3v nur dann läuft, wenn man den Widerstand ändert.

Steve van de Grens schrieb:
> Beim Bremsen wird der Motor zum Generator. Ich sehe bei dir nichts, was
> die Bremsenergie aufnehmen kann. Der kleine Chip kann es jedenfalls
> nicht.

Der Motor war am Stehen, da war keine Bremsung oder sonst was. Eine 
Zenerdiode an der Stelle ist auch unangemessen, da die Motoren in beide 
Richtungen laufen können müssen.

Steve van de Grens schrieb:
> Spannungsabfall an GND Leitungen führt zu (aus Sicht des IC) negativen
> Spannungen an Eingängen, wodurch das IC kaputt geht.

Diesen Punkt habe ich aufgrund fehlende Kenntnisstand nicht verstanden. 
Ich würde mich sehr freuen, wenn du es erklären könntest (oder Literatur 
zum Lesen empfehlen könntest). Ich dachte, GND ist Spannung 0V. Sonst 
würde es ja von 5V zu 0V nicht fließen. Wie kann in GND Spannung 
abfallen? Weniger als 0 gibt es an der Stelle ja nicht, oder?

Wastl schrieb:
> Ein dicker Elko zum Abblocken würde sicher auch gut tun.

Wo soll ich der Elektrokondensator anbringen? Ich muss offen gestehen, 
dass ich relativ unerfahren bin, wenn es darum geht, die Schaltung samt 
Widerstände und Kondensatoren zu befüllen.

Wastl schrieb:
> Aber der (angeschlossene aber inaktive) Arduino liefert an den
> Eingängen zum Treiber undefinierte Pegel. Was da wohl passiert?

Arduino war nicht angeschlossen. Bisher war lediglich die 12V VMot und 
GND an das Netzteil angeschlossen.

Jens G. schrieb:
> Was aber unklar ist lt. Schaltplan - die Massen sind nicht verbunden,
> und das kann dann in der Tat alles mögliche einkoppeln.

Meinst du, alle GNDs von TB6612 sollten angeschlossen werden? Ich ging 
davon aus, dass die alle in der Chip angeschlossen sein sollten, kann es 
aber das nächste mal gerne Probieren, danke für den Tipp.

Jens G. schrieb:
> Und dann sieht es auch noch so aus, als ob + und - vertauscht sind (was
> dann aber nur einen Elko (nicht MLCC)  (und auch den IC) dahin raffen
> würde.

Nils S. schrieb:
> Die Pinbelegung des Moduls im Schaltplan passt aber nicht zur
> Pinbelegung des echten Moduls !?

Wo genau meint ihr das? Sieht für mich eigentlich in Ordnung aus. Habe 
gerade nochmal abgecheckt. Falls etwas falsch aussieht, kann ich gerne 
Fotos machen.

Nils S. schrieb:
> Wie sieht denn das defekte Modul von vorne aus ? War der Tantal korrekt
> gepolt aufgelötet?

Siehe Anhang.

von Steve van de Grens (roehrmond)


Lesenswert?

Stefan schrieb:
> IMG_20231204_221418.jpg

Das ist der Abblock-Kondensator von der Versorgungsspannung. Der Platzt 
nur, wenn man die Spannung verpolt anlegt.

Stefan schrieb:
> Eine Zenerdiode an der Stelle ist auch unangemessen, da die
> Motoren in beide Richtungen laufen können müssen.

Ich meinte eine Zenerdiode an der Versorgungsspannung, nicht am Motor.

>> Spannungsabfall an GND Leitungen führt zu (aus Sicht des IC) negativen
>> Spannungen an Eingängen, wodurch das IC kaputt geht.
> Diesen Punkt habe ich aufgrund fehlende Kenntnisstand nicht verstanden.
> Ich würde mich sehr freuen, wenn du es erklären könntest (oder Literatur
> zum Lesen empfehlen könntest). Ich dachte, GND ist Spannung 0V

Jede Leitung (ganz besonders deine Steck-Kabel) haben einen gewissen 
Innenwiderstand, deswegen fällt an den Leitungen unter Last Spannung ab. 
Angenommen, deine Leitungen haben jeweils 1 Ohm:
1
          1Ω        11V  ______________
2
12V o----[===]----------|              |
3
                        | Motortreiber |
4
GND       1Ω        1V  |              |
5
0V  o----[===]----------|______________|
6
    |                        |
7
    |        _________       |
8
    |       |         |      | Steuersignal 0V
9
    +-------| Arduino |------+
10
        0V  |_________|

Wenn der Motor 1 Ampere aufnimmt, fallen an den Leitungswiderständen 
jeweils 1 Volt ab. Dein Motortrteiber bekommt dann nur noch 10 Volt. 
Sein unterer Vorsorgungs-Pin liegt dann auf 1 Volt, nicht 0 Volt.

Wenn der Arduino einen LOW Pegel ausgibt, dann ist das Signal 0 Volt. 
Also 1 Volt niedriger als die untere Versorgung des Motortreibers. Aus 
Sicht des Motortreibers also -1 Volt. Und das Verträgt er nicht.

Bei der obigen Skizze ist die Lösung einfach: Den Arduino anders 
anschließen:
1
          1Ω    11V  ______________
2
12V o----[===]------|              |
3
                    | Motortreiber |
4
GND       1Ω    1V  |              |
5
0V  o----[===]------|______________|
6
                  /               \  
7
                 /     _________   \
8
                |     |         |   | Steuersignal 1V
9
                +-----| Arduino |---+
10
                  1V  |_________|

Aber wenn da noch weitere indirekte GND Verbindungen eine Rolle spielen 
(z.B. das USB Kabel am geerdeten PC in Kombination mit einem geerdeten 
Netzteil, ist es nicht mehr ganz so einfach.

Wenn du nach den Begriffen "Masseführung" oder "Sternförmige 
Leitungsführung" googelst, findest du sicher mehr dazu.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stefan schrieb:
> Der Kondensator auf der TB6612 hat sich verabschiedet.
> Meine Frage: Was habe ich falsch gemacht?
Genau so sehen Tantals aus, wenn man sie verpolt. Bist du sicher, dass 
die rote und die schwarze Krokoklemme das halten, was du dir 
versprichst?

> Ich habe alles so angeschlossen, wie ich es von L298N kenne.
Du solltest übrigens die Masse vom Motortreiber und die Masse vom 
Andruiden schon auch miteinander verbinden. Am Besten sieht man solche 
einfachen Schaltungsfehler übrigens in einem Schaltplan.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Warum schließt du nur einen der drei GND-Pins an? Was sagt das 
Datenblatt zur Einschalt-Reihenfolge der Spannungen? Es kann durchaus 
sein, dass VCC vor Vmot anliegen muss...

Mit freundlichen Grüßen
Thorsten Ostermann

von Harald A. (embedded)


Lesenswert?

Das oben gesagte zu den Spannungssprüngen kann ich nur bestätigen: ich 
hatte anfangs auch ein günstiges Netzteil, dass vieles gut konnte, 
solange man nicht die Spannung veränderte. Beim Hochdrehen gab es jedoch 
enorme Spannungsspitzen, was mich dann zum Austausch auf ein 
höherwertiges Produkt veranlasst hat. Was nützt ein "Labornetzteil", das 
an den Umschaltgrenzen mal eben >40V auf die Schaltung gibt...

von Heinz R. (heijz)


Lesenswert?

Wieviel Volt kann denn Dein Netzteil maximal?
Der Kondensator hängt doch nur twischen der Versorgungsspannung für den 
Motor und Masse?

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.