Forum: Mikrocontroller und Digitale Elektronik TMC Steppertreiber IHOLD-Position


von Krabat R. (Gast)


Lesenswert?

Hab ein TMC2130-Schrittmotortreibermodul und möchte an einer Endlage 
(der Stepper wird "von außen" verfahren und nicht elektrisch bewegt) vom 
Treiber ein Haltemoment generieren.
Dazu wird abhängig vom Lagesensor-Input mittels SPI das IHOLD-Setting 
von 0 auf einen Wert x erhöht.

Das Problem dabei ist aber nun, dass der Motor dann oft einen kleinen 
"Sprung" macht, vmtl. hängt er im nächstgelegenen Vollschritt und 
erzeugt dort das Haltemoment.

Meine Frage: Kennt ihr einen Weg, das ganze so zu lösen, dass der Motor 
in einem Mikrostep-Winkel stehen bleibt und Haltemoment generiert?

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Krabat R. schrieb:
> Kennt ihr einen Weg, das ganze so zu lösen, dass der Motor
> in einem Mikrostep-Winkel stehen bleibt und Haltemoment generiert?

Das hört sich so an als wäre deine Halte-Strom-Absenkung zu hoch 
eingestellt.
Mit dem vollen Halte-Strom dürfte das nicht passieren, oder? Erst mit 
aktiviert der Absenkung (I-Hold)?
Wenn es auch mit dem Normalstrom passiert scheint generell dein Storm zu 
niedrig eingestellt zu sein bzw. der Stepper generell unterdimensioniert 
zu sein für das Haltemoment das du erwartest.

Kap. 1.6
- 
https://www.trinamic.com/fileadmin/assets/Products/ICs_Documents/TMC220x_TMC2224_datasheet_Rev1.09.pdf

von Krabat R. (Gast)


Lesenswert?

Bei meiner Anwendung ist aber der "umgekehrte" Fall. IRUN ist stets (!) 
auf 0, da der Motor von einer externen Welle mechanisch bewegt wird und 
der Treiber ausschließlich im Stillstand Momente erzeugen soll.
An definierten via Inkrementalgeber ausgelesenen Positionen wird dann 
ein Wert >0 für IHOLD gesetzt. Im Diagramm S. 7 im von Dir verlinkten 
Datenblatt betrifft IHOLDDELAY nur einen fallenden Stromverlauf wenn 
IRUN > IHOLD ist.

Eine Idee wäre vielleicht, abhängig vom via Sensor ausgelesenen Winkel 
entsprechend viele Mikrosteps zu fahren. Um dem Treiber vorzugaukeln, er 
würde gerade in einem bestimmten Mikrostep angehalten worden sein. Aber 
momentan wird nur der nächste Vollschritt angefahren, wenn IHOLD >0 
gesetzt wird...

von uwe (Gast)


Lesenswert?

>>Eine Idee wäre vielleicht, abhängig vom via Sensor ausgelesenen Winkel
>>entsprechend viele Mikrosteps zu fahren. Um dem Treiber vorzugaukeln, er
>>würde gerade in einem bestimmten Mikrostep angehalten worden sein.
Korrekt

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.