Forum: Mikrocontroller und Digitale Elektronik DRV8825 dreht nicht


von Bernhard R. (buffetfraese)


Lesenswert?

Seid gegrüßt.
Ich habe folgendes Problem und verzweifle daran:

Ich habe einen DRV8825 Schrittmotortreiber. Den habe ich mit der 
Minimalkonfiguration (also Motorspannung, STP, DIR, ENABLE und RESET auf 
+5V, den Schrittmotor sowie GND des Arduino Uno) angeschlossen. Als 
Netzteil verwende ich ein 18.5V, 4.9A Netzteil. Nun habe ich damit einen 
NEMA 17 (1,5A pro Phase) betrieben. Das funktionierte auch ganz gut. Ich 
habe die Referenzspannung am Poti nicht mit dem Multimeter eingestellt, 
sondern einfach zur Mitte. Der Treiber wurde heiß, aber der Motor drehte 
sich ohne zu zicken und ich habe es auch nur kurz getestet.

Neulich habe ich das Ganze nochmal getestet. Der Motor hatte dabei viel 
Last zu tragen (macht das bei einem Schrittmotor überhaupt etwas aus?). 
Und dann auf einmal rauchte es etwas. Nochmal getestet - und nix mehr 
drehte sich.
Es war allerdings nichts sichtbar verkokelt. Kabel habe ich überprüft 
und durchgemessen, den Arduino überprüft. Alles in Ordnung. Gut, von dem 
Treiber kann ich mich wohl verabschieden.

Jetzt habe ich allerdings noch 4 weitere DRV8825. Die habe ich dann auch 
überprüft. Aber höchst eigenartigerweise funktioniert keiner von denen. 
Und einer ist sogar brandneu aus der Packung (mit Heatsink). Ich habe es 
bei zwei von denen nur mit einem 12V 2A Netzteil versucht und die 
Referenzspannung mit dem Multimeter eingestellt. Aber nichts passiert. 
Bei einigen ist spürbar Spannung auf den Spulen (Motor lässt sich nur 
sehr schwer drehen, hält also), aber eine Drehbewegung (also Pulse auf 
STP) kommt bei keinem Treiber mehr. Die Motoren und die Motorkabel habe 
ich gewechselt. Nichts passiert. Ich habe als Test einen Easydriver 
angeschlossen und der funktioniert auf Anhieb mit dem Netzteil, dem 
Motor, dem Kabel und dem Arduino. Also der Wurm ist dann wohl irgendwo 
in den Treibern.

Als kleine Ergänzung: Zwei Fehler habe ich natürlich gemacht: Keinen 
Kondensator an der Motorspannung und den Poti nicht mit dem Multimeter 
eingestellt. Daher meine Frage: Was läuft falsch? Hab ich mir alle 
Treiber durch den fehlenden Kondensator und Spannungsspitzen gegrillt? 
Kann ich mir aber irgendwie auch nicht so recht vorstellen, denn zwei 
von denen haben ja ne Zeit lang auch ohne ihn funktioniert. Und hat man 
beim 12V Netzteil Spannungsspitzen über 30V? Btw, die Verkabelung und 
den Code habe ich geprüft, neu verkabelt und programmiert und geändert 
und den Treiber natürlich nicht ohne Motor laufen lassen.

Naja jedenfalls: Ich habe echt keine Ahnung, warum jetzt plötzlich 5 
Treiber nicht mehr funktionieren, obwohl einer sogar jungfräulich war. 
Von jetzt auf gleich funktioniert etwas nicht.

Und falls es ausweglos ist: Habe mir neue Treiber geholt. Wie kann ich 
dem Frittieren vorbeugen? Kondensator dran, Vref vernünftig einstellen? 
Gibt es noch mehr zu beachten?

von Phantomix X. (phantomix)


Lesenswert?

Hallo,

tl;dr: Back-EMF->Clamping-Dioden

Weiß nicht ob du dasselbe Problem hast, aber einen Versuch ist es wert:
habe vor einiger Zeit einen ganz ähnlichen Aufbau gemacht, zur 
Ansteuerung einer Dachluke (3D-gedrucktes Getriebe, das am Ende eine 
Spindel/Schraube auf und zu fährt).
Ergebnis: Erstmal dasselbe, es hat mich ein Paar DRV8825 gekostet um den 
Fehler zu finden.

Das Problem trat bei mir auf, nachdem der Schrittmotortreiber eine 
Strecke gefahren war und ich den ENABLE-Pin "losgelassen" hab.
Was in dem Moment passiert ist, dass die Ausgänge des Treibers hochohmig 
werden, allerdings noch eine bestromte Spule dran hängt. Es wird also 
eine hohe Spannung in die Ausgänge induziert, welche den Chip 
zerschießt.

Beholfen habe ich mir, indem ich an jeden Ausgangspin ein Paar BAT54S 
gepackt habe und damit die Spannung zwischen GND und 
Treiber-Spannungsversorgung geclampt.
Evtl. sind fettere Dioden besser geeignet, für mich hatte es damals 
gereicht, und ich hatte grad keine anderen da.

: Bearbeitet durch User
von Tom (Gast)


Lesenswert?

Sinnvoller wäre es vielleicht, erst den Motor auf Null abzubremsen und 
dann das Enable-Signal abzuschalten. Außerdem braucht man große Elkos, 
deutlich größer als das was auf den üblichen Shields verbaut ist.

Gruß
Tom

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


Lesenswert?

Bernhard R. schrieb:
> Der Motor hatte dabei viel Last zu tragen
> (macht das bei einem Schrittmotor überhaupt etwas aus?).
Ja, schließ mal einfahc nur eine LED an die nackten Motoranschlüsse an 
und dreh die Motorwelle. Hoppla, die LED leuchtet. Und genau das 
passiert auch mit Last: wenn du abbremst, dann speist du Energie zurück 
in die Versorgung, die Versorgungsspannung steigt an, weil sonst keiner 
Strom entnimmt oder aufnimmt.

> Der Treiber wurde heiß
Wie heiß? Darf er das?

> denn zwei von denen haben ja ne Zeit lang auch ohne ihn funktioniert.
Und wenn du 100x mit verbundenen Augen über eine befahrene Straße 
gekommen bist und dich nur hin- und wieder über das Quitschen ("wird 
heiß") gewundert hast, dann wirst du halt erst beim 101. Mal überfahren.
Da hilft dann auch nichts, dass es die ersten 100x gut "funktioniert" 
hat.

> warum jetzt plötzlich 5 Treiber nicht mehr funktionieren
Von "plötzlich" kann da eigentlich keine Rede sein, aber an 
Durchhaltevermögen mangelt es ja schon mal nicht...  ;-)

von Bernhard R. (buffetfraese)


Lesenswert?

Vielen Dank für die Antwort. Das Enable-Signal habe ich dauerhaft auf 
+5V, damit dürfte ich dann keine Probleme haben, oder?

von Phantomix X. (phantomix)


Lesenswert?

Tom schrieb:
> Sinnvoller wäre es vielleicht, erst den Motor auf Null abzubremsen und
> dann das Enable-Signal abzuschalten. Außerdem braucht man große Elkos,
> deutlich größer als das was auf den üblichen Shields verbaut ist.

Naja, irgend eine Spule ist immer bestromt, solange ENABLE an ist, auch 
wenn der Motor steht. Das ist ja der Witz.
Und wenn ENABLE an +5V liegt, ist der Abschaltzeitpunkt eben das Problem 
(also wenn das Gerät vom Strom getrennt wird)

Aber Elkos schaden in der Tat aber auch nicht

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


Lesenswert?

Die bestromte Spule bei stehendem Motor ist an sich unkritisch, wenn die 
Schaltung vernünftig designt ist und der Treiber oder die Schaltung 
normal abgeschaltet werden. "Shields" enthalten aber in der Regel nicht 
mehr als die Minimalbeschaltung nach Datenblatt, und das ist eben keine 
vollständige Applikation. Wenn man dann ein solches Shield unter 
Spannung aus dem Sockel zieht oder an einem der Jumpwires einen 
Wackelkontakt hat, darf man sich über Hardwareausfälle nicht wundern.

Was aber viel kritischer ist als eine bestromte Spule im Stillstand, ist 
die kinetische Energie, die in größeren Massenträgheiten steckt. Diese 
Energie wird nämlich im Fehlerfall (Treiber abgeschaltet, Schrittverlust 
am Motor,...) über den Motor (der dann als Generator arbeitet) in 
elektrische Energie umgewandelt und lädt die Elkos am Zwischenkreis auf. 
Wenn man dann nur einige µF auf dem Shield hat um die Ladung zu 
speichern, steigt die Spannung kurzzeitig deutlich über die eigentliche 
Versorgungsspannung an und der Treiber segnet das Zeitliche.

Mit freundlichen Grüßen
Thorsten Ostermann

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.