Forum: Mikrocontroller und Digitale Elektronik L6470 Schrittmotortreiber Stall Detection


von Timo N. (tnn85)


Lesenswert?

Wollte den ST L6470 Schrittmotortreiber verwenden und mit dessen Stall 
Detection eine Art sensorless Homeing zu realisieren.

Hab mir dazu folgende Platine geholt:
https://www.sparkfun.com/products/retired/10859
Datenblatt des ICs:
http://cdn.sparkfun.com/datasheets/Robotics/dSPIN.pdf


Allerdings weiß ich nicht, ob diese Funktion dafür überhaupt 
gedacht/geeignet ist.  Aber wofür dann eigentlich überhaupt?

Da man den Wicklungsstrom bei diesem Treiber nur indirekt über einen 
K_VAL einstellen kann, den Stromvergleichswert für die Stall Detection 
aber in mA angeben muss, erweist sich das schon mal unnötig kompliziert.

Ich messe also mit der Peak-Funktion meines MM den Wicklungsstrom im 
Motor bei festem K_VAL (KVAL_HOLD, KVAL_RUN, KVAL_ACC and KVAL_DEC = 40, 
entspricht gemessen  ca. 1230 mA_RMS) und nun müsste ich einen Wert für 
STALL_TH (Stall Threshold) finden, der gerade noch nicht auslöst, wenn 
der Motor normal verfährt, aber auslöst, wenn irgendwas blockiert?
Also 1230 mA_RMS = 1740 mA_peak.

Wenn ich nun aber z.B. den Wert 1875 mA als Stall_Threshold nehme (Werte 
darunter führen zum Gleichen Ergebnis), dann löst er entweder direkt 
beim Fahren ohne Belastung aus (Step Loss A / Step Loss B Bit im Status 
Register wird gelöscht -> Step Loss auf Wicklung A oder B erkannt -> 
Stall Detection erkannt) oder falls die Stall_Threshold über dem 
Maximalwert liegt (z. B. 2250mA) überhaupt nicht (also auch nicht, wenn 
ich mit der Hand den Motorschaft bremse).

Ganz kurios ist es beim Wert 2000mA. Da zeigt er mir beim Verfahren 
immer Step_LossA oder Step_Loss_B an , aber wenn ich dann den 
Motorschaft mit der Hand blockiere, verschwindet die 
Fehlersignalisierung so lange.

Ich kenne aus dem Netz die Funktion des sensorless Homeings von den 
Trinamic Treibern und da wird es unter dem Begriff stallGuard in 
3D-Druckern eingesetzt um ohne Endschalter den Maschinennullpunkt zu 
finden.
Ich dachte der Treiber hat die selbe Funktion, die ich nutzen könnte.

Kennt jemand den Treiber?

von Timo N. (tnn85)


Lesenswert?

Ok scheinbar haben im Netz viele Probleme die richtige Einstellung zu 
finden:
https://community.st.com/s/question/0D50X00009Xkgpd/l6470-stall-detect-issue

https://www.eevblog.com/forum/beginners/l6470-sensorless-stall-detection/

Einzige Möglichkeit scheint nach meinen Versuchen, dass man die den 
KVAL_RUN (also letztendlich den Parameter für die Spannung und damit den 
Wicklungstrom, wenn der Motor läuft) so niedrig ansetzt, dass das 
Drehmoment gerade noch ausreicht um eine Referenzfahrt auszuführen und 
den Stall-Wert dann so ermitteln, dass er bei leichten Blockierungen 
überschritten wird.

von Thomas (Gast)


Lesenswert?

Auf Block Fahren um eine Referenz zu haben
war noch nie eine gute Idee....
viel zu ungenau, da das System (Maschine) mechanisch auf Spannung geht.

Danach passt nichts mehr.....

Gruß Thomas   10 Jahre im CNC Steuerungs und CNC Maschinenbau .....

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.