Forum: Mikrocontroller und Digitale Elektronik Präzise Schrittmotorsteuerung


von Matthias (Gast)


Lesenswert?

Hallo und erstmal frühliche Weihnachten zusammen ;-),

ich möchte ein Federsystem mittels Schrittmotor und einem kleinen 
Flaschenzug entspannen und spannen.

Nun habe ich leider schlechte Erfahrung mit den Standard Treibern L297 
etc. gemacht, da immer mal wieder ein Schritt übersprungen wurde oder 
nicht gedreht wurde.

Nun haben vielleicht manche von euch bereits von den ICs von Trinamic 
gehört.
http://www.trinamic.com/tmc/render.php?sess_pid=292

Diese werben mit der "Sensorless stall detection stallGuard".
So wie ich das beim Drüberfliegen interpretert habe, ist es mittels 
Software nun möglich zu detektieren, ob der Motor den Schritt nun 
wirklich ausgeführt hat oder ob er einen Schrit übersprungen hat.

Noch dazu bietet der Hersteller eine C-Library für AVRs.

Hat jemand bereits Erfahrungen mit dem IC gemacht?
Kann jemand bestätigen, daß dieser stallGuard hält was er verspricht 
oder interpretiere ich seine Aufgabe falsch?

Vielen Dank für eure Unterstützung

von Albert .. (albert-k)


Lesenswert?

Hallo
Ich habe mit 2 Treiber IC's (TMC249 und TMC246) sowie dem dazugehörenden 
Controller(Interpreter TMC428) gearbeitet und damit auch schon Lösungen 
hinbekommen. Angesteuert wurde das ganze von mir über einen Cortex M3 
(LM3S6965 von Luminary Micro). Diese Chips sind wirklich verdammt gut 
und die Nutzung des TMC428 (Anfahrweise, Geschwindigkeitsregelung, 
Interruptüberwachung, etc.) kann ich nur empfehlen. Dieser nimmt einem 
die gesammte Arbeit ab und man muss ihn nur noch über SPI kallibirieren 
und einmal denn Flash (für die Microstep-Table und die Datagramm config) 
laden.

Die Stall Guard Funktion sagt dir ob der Motor steht oder nicht, nicht 
aber ob ein Schritt verloren ging. Man nutzt es um den Motor ohne einen 
Schalter auszurichten.

Aber Achtung: Die erste programmierung ist extrem Aufwendig da man etwa 
25 Parameter laden muss sowie die Look-Table für die Microsteps wenn man 
diese nutzen möchte.
Auch ein Problem ist das die Chips nur für 2-Phasen bipolar Motoren bis 
3A (beim TMC249) ausgelegt sind.

Grüße

von Tauwetter (Gast)


Lesenswert?

>... da immer mal wieder ein Schritt übersprungen wurde oder
>nicht gedreht wurde.

Das liegt nicht am L297. Zunächst solltest Du den Grund hierfür suchen 
und finden. Sonst hilft Dir auch ein anderer Controller/Treiber nicht.

von Billy der Bastler (Gast)


Lesenswert?

Ich kann mich Tauwetter nur anschliessen. Wenn Schritte übersprungen 
werden, hat das rein mechanische Gründe, da ist sicher nicht der Treiber 
dran schuld. Entweder überlastest du den Schrittmotor (das benötigte 
Drehmoment ist höher als der Schrittmotor liefern kann) oder du taktest 
zu schnell oder du taktest den Motor sofort mit der vollen Drehzahl, 
ohne Anfahr/Brems-Rampen zu benutzen.

von Matthias (Gast)


Lesenswert?

Danke für eure Antworten,

ich habe mal ein interessantes Dokument über den VErlust von Schritten 
bei einem Schrittmotor gefunden:

http://www.micromo.com/n390913/n.html

Ihr habt natürlich vollkommen recht, wenn ihr behauptet, daß ein Fehler 
in der Ansteuerschaltung auch der Auslöser gewesen sein kann.

Nur sollten aufgrund von zu schneller Taktung, zu hohem Drehmoment, 
aufgrund EMV technischer Störungen oder irgendeinem anderen Problem 
Schritte "verschuckt" werden, so kann ich ausschließlich anhand der L297 
Treiberschaltung keine Detektion dieses Verlustes durchführen.

Möchte ich also, daß der Schrittmotor ein bestimmtes Programm immer 
durchführt und intern ein Zähler die Schritte addiert, dann kann ich 
einen fehlerhaften Betrieb nur dadurch ausschließen indem ich ein 
Feedback darüber bekomme, ob der Schritt auch wirklich ausgeführt wurde.

>Die Stall Guard Funktion sagt dir ob der Motor steht oder nicht, nicht
>aber ob ein Schritt verloren ging. Man nutzt es um den Motor ohne einen
>Schalter auszurichten.

OK, dann habe ich das "leider" falsch verstanden.


>Aber Achtung: Die erste programmierung ist extrem Aufwendig da man etwa
>25 Parameter laden muss sowie die Look-Table für die Microsteps wenn man
>diese nutzen möchte.
>Auch ein Problem ist das die Chips nur für 2-Phasen bipolar Motoren bis
>3A (beim TMC249) ausgelegt sind.

Ich habe noch einen interessanten Treiberbaustein gefunden:
http://www.st.com/stonline/products/families/motor_control/dspin.htm?wt.mc_id=enews_dec09_dspin

von Nick M. (Gast)


Lesenswert?

> dadurch ausschließen indem ich ein Feedback darüber bekomme,
> ob der Schritt auch wirklich ausgeführt wurde.

Das zuverlässigste dürfte ein Quadratur-Encoder an der Welle des 
Schrittmotors sein. HEDSxxxx, HEDLxxxx


HTH,
Nick

von Billy der Bastler (Gast)


Lesenswert?

Das Feedback über verlorene Schritte wirst du schon in die Mechanik 
einbauen müssen, z.B. eine fest auf die Motorachse montierte 
Encoderscheibe, die unabhängig von der Motoransteuerung ausgewertet wird 
und die Schritte mitzählt, oder ein an die Motorachse angebautes 
Servopoti, oder Endschalter, die als Referenz für eine bestimmte 
Stellung angefahren werden, etc.

von Matthias (Gast)


Lesenswert?

> Das zuverlässigste dürfte ein Quadratur-Encoder an der Welle des
> Schrittmotors sein. HEDSxxxx, HEDLxxxx

Nanotec, klasse Anbieter, danke dir vielmals, die Auswahl ist wirklich 
spitze.

Vielen Dank

von Captain S. (captainsubtext)


Lesenswert?

Matthias schrieb:
> Ich habe noch einen interessanten Treiberbaustein gefunden:
> http://www.st.com/stonline/products/families/motor...

Der ist leider noch in der Preview-Phase, wird also gerde erst 
entwickelt :(

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.