Alles über Schrittmotor-Treiber

Alles über Schrittmotor-Treiber

Motortreiber sind die Chips, die Schrittmotoren (Stepper) z.B. eines 3D-Druckers bewegen. Sie sind essentiell wichtige Bauteile, die über die Kraft, Geschwindigkeit, Stromverbrauch, Präzision, Temperatur und Betriebslautstärke eines 3D-Druckers bestimmen.

Steppermotoren sind Elektromotoren, die nicht einfach nur drehen, sondern dabei eine exakte und schnelle Positionierung ermöglichen. Zumeist sind es Fixmagneten auf einer drehenden Achse, die von Magnetspulen umhüllt sind, Dieser Ansatz ist zwar bürstenlos und damit deutlich verschleißfreier als die umgekehrte traditionelle Variante mit den Fixmagneten außen und den Magnetspulen auf der Achse, aber er erfordert eine controllergesteuerte passende Ansteuerung der Magnetspulen, damit der Motor sich dreht, während der traditionelle Elektromotor dank der Bürsten die Magnetspulen automatisch auf die richtige Weise und zum richtigen Zeitpunkt polarisiert.

Steppermotoren unterscheiden sich von anderen „brushless“-Motoren, dass sie nicht nur zwei Spulen bzw. ganz wenige um die Motorachse haben, sondern sehr viele kleine Spulen, bei bipolaren Steppern immer abwechselnd Phase 1 und 2. Den Job der korrekten Ansteuerung der Magnetspulen übernehmen die Motortreiber („Drivers“ in Englisch). Während normale Brushless-Motortreiber nur die Dreh-Geschwindigkeit, -Richtung und -Kraft regeln können, erlauben Stepper-Motortreiber dabei zusätzlich auch eine exakte Drehposition anzusteuern.

Motortreiber als Stepstick-Module

Bastler-Boards haben die Motortreiber gerne auf eigenen kleinen Modulen, welche „Stepstick“ genannt werden (oder nach dem Erfinder dieses Formfaktors „Pololu“), so dass man sie nach Belieben austauschen und mischen kann. Z.B. wenn sie defekt sind, man für bestimmte Achsen (meist X/Y) andere Motortreiber will oder einfach irgendwann, z.B. nach einem Upgrade, weniger Betriebslärm, mehr Kraft und/oder Präzision für seine Motoren benötigt.

Wichtig: Sie dürfen Stepstick-Module nicht ein- oder ausbauen, wenn das Board unter Strom steht (oder dann den Motor ein/ausstecken!). Außerdem müssen Sie auf die korrekte Orientierung der Module achten (sie passen auch 180° gedreht in den Sockel!) und darauf, dass sie nicht versetzt eingesteckt werden – All dies zerstört die Motortreiber, und kann sogar das Motherboard kaputt machen! Konsultieren sie die Dokumentation des Board-Herstellers und Beschriftungen auf Board und Stepstick um herauszufinden, welche Orientierung richtig herum ist.

Die Kühlkörper nicht vergessen auf den Treiberchip zu kleben. Wenn der Drucker schwer arbeitet und nach längerem Betrieb anfängt Zicken zu machen, kann sogar evtl. ein zusätzlicher Lüfter nötig sein, der über das Board bläst.

Fest verlötete Motortreiber

Bei integrierten 3D-Druckern bzw. fertigen Kits werden die Motortreiber oftmals direkt auf dem Board verlötet, da dies billiger herzustellen und kompakter ist.

Die Motortreiberchips sind auf dem Board unter den Kühlkörpern zu finden, deren Baugruppen vier- oder fünfmal (bei normalen einfarbigen Druckern) auf dem Board vorhanden sind (X-, Y-, Extruder- und 1-2 Z-Treiber – manche Boards haben für zwei Z-Motoren auch zwei Treiberchips, die meisten steuern aber beide Motoren mit einem)

Motortreiber haben oftmals (in Stepstick-Variante eigentlich immer) ein kleines Potentiometer direkt neben dem Chip selbst, mit dem man die Spannung einstellen kann – je nach Motorgröße, Kopfgewicht und Druckgeschwindigkeit benötigt der Motor mehr oder weniger Spannung. Höhere Spannung bedeutet zwar mehr Kraft, aber auch mehr Stromverbrauch, Hitzeentwicklung und meist auch ein lauteres Betriebsgeräusch.

Anet A8-Board mit 4 fest verlöteten A4988-Treiberchips
Anet A8-Board mit 4 fest verlöteten A4988-Treiberchips und Potentiometer zum Einstellen der Z-Motor-Spannung

Stepper-Motoren richtig verdrahten

Der Ausgang eines Motortreibers sind die vier Leitungen, die üblicherweise zum Steppermotor führen. Diese vier Leitungen sind für die zwei Phasen eines gängigen bipolaren Steppermotors, deren  abwechselnde Polarisierungen den Steppermotor dann rotieren lassen und exakt positionieren können.

Viele Motoren haben sechs Anschlüsse, aber zwei sind ungenutzt, da für jede Spule je zwei unterschiedliche Pins für die Polaritäten zur Verfügung stehen, von denen wir aber nur je einen brauchen. Motoren mit acht Anschlüssen sind vierphasige unipolare Motoren, aber diese kommen im 3D-Druck nur äußerst selten zum Einsatz – und falls doch, müssen für den Anschluss an die zweiphasigen Motortreiber, um die es hier geht, entweder je zwei abwechselnde Phasen in Reihe (Normale Leistung und Stromverbrauch, Achtung: Hier bitte die Polarität beachten!) oder parallel (doppelte Leistung und Stromverbrauch, ebenfalls Polaritäts-abhängig) geschaltet werden, was die Motoren effektiv zu zweiphasigen macht. Für einen nativen vierphasigen Betrieb dieser Motoren sind besondere unipolare Motortreiber notwendig.

NEMA17-Steppermotor
Bipolarer 4-pin 2A-NEMA17-Steppermotor in der gängigen 3D-Drucker Standardgröße

Richtig verdrahten mit maximal drei Versuchen

Es ist unmöglich, einen Steppermotor mit vier Leitungen durch falsche Kabel-Reihenfolge zu zerstören, er läuft bei falscher Reihenfolge nur einfach nicht. Die Polarität der Phasen ist irrelevant, es kommt nur auf die Orientierung der Phasen zueinander an. D.h. statt alle 24 möglichen Kabel-Kombinationen auszuprobieren reicht es, wenn der Motor nicht läuft, maximal zweimal je zwei Kabel in einer bestimmten Reihenfolge zu vertauschen, um garantiert eine funktionierende Reihenfolge zu finden. Gehen Sie dabei wie folgt vor:

Beliebige erste Reihenfolge:

ABCD

Erster Tausch (zweite und vierte Leitung):

ADCB

Zweiter Tausch (die mittleren beiden Leitungen):

ACDB

Weitere Methoden, um die Motorphasen zu finden

Alternativ kann man die zwei Phasen des Motors auch durch Ausmessen des Widerstandes zwischen zwei beliebigen Motorkabeln ermitteln: Zeigt das Ohm-Meter unter 100 Ohm an, hat man eine Phase gefunden, die anderen beiden Leitungen sind dann die zweite Phase. In Ermangelung eines Ohm-Meters kann man auch einfach beim vom Strom getrennten Motor die Kabel temporär kurzschließen und dann den Motor von Hand drehen. Bemerkt man einen deutlichen Widerstand beim Drehen, hat man eine Phase gefunden. Wenn man die Phasen weiss, muss man nur noch die Polarisierung einer einzelnen Phase vertauschen, falls der Motor nicht dreht.

Hinweis: Die Phasen werden in Readmes, Datenblättern, Schaltplänen und Pin-Diagrammen normalerweise mit 1A und 1B (Phase 1) und 2A und 2B (Phase 2) bezeichnet.

Achtung: Was hingegen den Motortreiber sehr wohl zerstören kann, ist, wenn man einen Steppermotor im laufenden Betrieb (d.h. unter Strom) an- oder absteckt, da dies üble Spannungsspitzen verursachen kann, für die der Treiberchip nicht ausgelegt ist. Selbiges gilt fürs Einstecken und entfernen der Stepstick-Module, wenn das Board unter Strom steht!

Was tun bei falscher Drehrichtung?

Rotiert der Motor in die falsche Richtung, kann man entweder eine der beiden Phasen invertieren  (von ABCD zu BACD bzw. ABDC), die beiden Phasen vertauschen (von ABCD zu CDAB) oder einfach wenn dies möglich ist den gesamten Stecker herumdrehen (von ABCD zu DCBA), was letztendlich dreifacher Invertierung entspricht.

Aber auch in der Firmware-Konfiguration kann man einfach per Software die Richtung aller Motoren invertieren, falls man die Verdrahtung nicht mehr ändern will oder kann (in Marlin: INVERT_X_DIR bzw. INVERT_Y_DIR in Configuration.h).

So gehen Sie beim Einstellen der Treiber-Spannung vor

Wichtig: Man sollte die Spannung vor dem Anschluss des Motors einstellen, um Überspannungen und möglicherweise Schäden zu vermeiden!

Die Spannung (Vref) stellt man zumeist am Potentiometer in der Nähe des Motor-Treiberchips ein (manche Treibermodule erlauben das zusätzlich auch per Software in der Firmware). Der Spannungsbereich liegt je nach Motortreiber etwa zwischen 0.2 und 2V, wobei sich die Einstellung –je nach Treiberchip – üblicherweise zwischen 0.5 bis 1.4V bewegt. Das Board muss dabei mit Spannung versorgt sein, der Drucker darf aber nicht arbeiten und muss quasi im Leerlauf sein, die Motoren selbst sollten beim Einstellen abgesteckt sein, um Überspannung zu vermeiden (Nicht vergessen:  Nicht die Motoren unter Strom an- und ausstecken!).

Das Messgerät sollte den roten (+) Messfühler direkt auf dem Motortreiber-Potentiometer haben und den schwarzen (-) irgendwo auf GND (z.B. am großen GND-Strom-Terminal, das zum Netzteil führt, da rutscht man beim Messen nicht so leicht ab wie auf dem Motortreiber selbst). Ein beliebter Trick ist es, einen kleinen Metall-Schraubenzieher (passend zum Potentiometer) zu nehmen und den roten Messfühler mit Krokodilklemme direkt an den Schraubenzieher zu klemmen. So kann man am Potentiometer drehen und gleichzeitig auf dem Messgerät sehen, was die momentan eingestellte Spannung ist. Doch Vorsicht beim Hantieren mit dem Metall-Schraubenzieher auf dem Board unter Strom – man kann bei den winzigen Bauteilen und Leiterbahnen schnell einen Kurzschluss verursachen!

 

Was ist die richtige Spannung?

Die richtige Spannung (entspricht der Motorkraft) zu finden, ist kein leichtes Unterfangen und hängt vom verwendeten Motor und Motortreiber, möglichen Übersetzungen, dem Druckeraufbau, dem zu bewegenden Gewicht und der Geschwindigkeit ab, in der der Motor sich bewegen soll. Um auf der sicheren Seite zu sein und damit nichts kaputt geht, sollte man zuerst mit niedriger Spannung anfangen und die Spannung nur so weit sukzessive erhöhen, dass der Motor im normalen Betrieb keine Schritte mehr „verliert“ (d.h. dass er immer gerade genügend Kraft hat, um den Motor weiterzudrehen). Zu hohe Spannung resultiert in einem sehr heissen Motor (der ab einer gewissen Temperatur dann ebenfalls Schritte „vergessen“ oder sogar ganz durchbrennen kann!) und –je nach Treiber – in extremen Pfeifgeräuschen beim Halten einer Position.

Das maximale Ampere-Rating des Motors ist ein guter Anhaltspunkt, welche Spannung man maximal einstellen sollte. Je nach dem verwendeten Motor-Treiber ist die Formel zur Berechnung des möglichen Spannungsbereichs unterschiedlich (siehe unten in der Motortreiber-Sektion)

Besser nicht zuviel einstellen – lieber zu wenig!

Grundsätzlich sollte man die Motoren und Motortreiber nicht am maximal möglichen Limit betreiben, da die Hitzeentwicklung dann wirklich enorm ist und in der Regel weder Board noch Motoren aktiv gekühlt sind – und viel Hitze bedeutet auch massiv reduzierte Lebensdauer. Bei 50% des berechneten Vref (max) anzufangen und bis maximal 70-80% davon zu gehen, ist grundsätzlich ein guter Richtwert.

Wenn Motortreiber überhitzen, entweder weil sie mehr Strom liefern sollen als sie können, oder weil sie keinen Kühlkörper/Lüfter haben, schalten Sie in der Regel einfach ab, um die Elektronik und/oder den Motor nicht zu zerstören („Thermal shutdown“).

Microstepping

Alle gängigen Motortreiber beherrschen das sogenannte Microstepping. Das bedeutet, dass der Motor nicht nur einen vollen Schritt (durch Invertierung der beiden Phasen) drehen bzw. die Position auf den vollen Schritten halten kann, sondern dass er auch mehrere Positionen zwischen zwei  Schritten einnehmen und halten kann, indem er die Spannung und damit die Magnetisierung der beiden Phasen anteilig anpasst. Wieviele Microsteps möglich sind, kommt auf den jeweiligen Motortreiber an.

Üblich sind für Standard-NEMA17-Steppermotoren 200 ganze Schritte pro Umdrehung, was umgerechnet 1,8° pro Step entspricht. Per Microstepping lässt sich dies entsprechend vervielfachen, so kann z.B. ein Treiber mit 1/16 Microstepping 3200 Positionen (d.h. 0,1125° Präzision) pro Umdrehung annehmen und halten. Das hört sich nach viel an, ist aber für höchste Präzision fast zu wenig. Denn bei gängigen GT2-Zahnriemen mit 2 mm Zahnabstand und einem Motor-Zahnrad mit 16 Zähnen entspricht dies in einem kartesischen Drucker einer x/y-Auflösung von nur 0.1mm.

Die gängigsten Motortreiber und ihre Eigenschaften

A4988

Oft auch einfach „Allegro“ nach dem Hersteller genannt, als Stepstick meist auf rotem oder grünem Board. Ein extrem gängiger und sehr günstiger Treiberchip, der solide funktioniert, nie Probleme macht, allerdings aber auch nur vergleichsweise wenig Präzision und durchschnittlich viel Kraft hat und nicht besonders leise ist. Er unterstützt eine Betriebsspannung von 8-35V und von 1/2 bis zu 1/16 Microstepping. Bis zu 1A pro Phase ohne Kühlung sind möglich, bis zu 2A mit Kühlung. A4988 sind bewährte und bekannte Chips, d.h. sie funktionieren auch als China-Klone einwandfrei.

Die Vref-Berechnung beim A4988 ist wie folgt:

Vref (max) = max. Motor-Stromstärke * 8 * Messwiderstand (idR 0.05 Ohm beim Pololu-Original-A4988 Stepstick, aber gerne auch mal 0.1 bzw. 0.2 Ohm bei den China-Klonen)

D.h. für einen 1A-Motor und 0.1 Ohm Messwiderstand ergibt sich: Vref = 1A * 8 * 0.1Ohm = 1A * 0.8V/A = 0.8v (bei 0.05 Ohm Messwiderstand halb soviel, d.h. 0.4v)

Bitte nicht vergessen, nur 70-80% davon effektiv einzustellen, damit das System nicht überhitzt und auf Dauer kaputt geht!

 

A4988 (Allegro) Pololu-Stepsticks
A4988 (Allegro) Pololu-Stepsticks

DRV8825

Der DRV8825 des US-Herstellers Texas Instruments kann ohne Kühlung bis zu 1.5A pro Phase liefern, mit Kühlung bis zu 2.5A (rechnerisch, in der Praxis max. 2.2A). Er arbeitet bei 8,2 bis 45V Betriebsspannung und bietet bis zu 1/32 Microstepping. Doch dieses muss auch richtig implementiert sein: Wenn der Chip nicht im „Fast Decay“-Modus arbeitet, ist die Linearität der Microsteps nicht gewährleistet und es gibt einen größeren Sprung in der Kurve, der sich beim Druck als sogenannter „Lachshaut-Effekt“ (Salmon Skin Effect) zeigt – insbesondere bei großformatigen Druckern (z.B. Tevo Tornado) und Deltas (z.B. Tevo Little Monster). Eine Hardwarelösung gegen dieses Problem sind die einfach zwischen Motor und Treiber geschalteten sogenannten TL-Smoother mit vier (gut) oder acht (besser) TL-Freilauf-Dioden, welche das Motorsignal glätten. Erfahrene Lötkolbenjockeys können auch den Fast-Decay-Modus aktivieren, indem sie Pin 19 des Chips auf + legen, z.B. dadurch, dass Sie ihn mit dem Fault-Pin (FLT) der Steckerleiste verbinden.

Der als Stepstick meistens lilafarbene DRV8825 hat mehr Präzision und Kraft als der A4988, ist allerdings auch nicht besonders leise, besonders bei zu hoher Spannung sind DRV8825 dafür bekannt, ein starkes Pfeifen bei den Motoren zu verursachen.

DRV8825 werden aufgrund ihrer doppelt so hohen Präzision und mehr Kraft gerne bei großen Druckern (bevorzugt Delta-Drucker) eingesetzt und sind ca. 50% teurer als A4988. Die China-Klone davon funktionieren meist auch gut und machen keine Probleme, doch Vorsicht: Bei manchen China-Klonen ist die Dreh-Richtung des Potentiometers für die Vref-Stromstärke anders herum als beim Original. Auch die GND-Messpunkte auf dem Modul sind manchmal unterschiedlich, weswegen man am besten immer den roten Plus-Messfühler auf dem Potentiometer und den für GND irgendwo auf dem Motherboard ansetzt.

Beim DRV8825 berechnet man die einzustellende Vref-Spannung wie folgt:

Vref (max) = max. Motor-Stromstärke / 2

D.h. wenn der Motor für maximal 1A pro Phase ausgelegt ist, darf man maximal 0.5 Volt Vref einstellen, bei möglichen 2A pro Phase kann man auch auf 1 Volt hoch gehen. Bitte immer daran denken, dass man das System nicht am Limit betreiben sollte, d.h.maximal 70-80% dieses Maximalwerts effektiv einstellen!

Triangle Labs TL-Smoother
8-Dioden TL-Smoother von Triangle Labs zum Glätten des Motorsignals bei DRV8825

MP6500

Der Chip von MPS liefert bis zu 1.5A pro Phase ungekühlt (2.5A mit Kühlung), arbeitet zwischen 4.5 und 35V und unterstützt maximal 1/8 Microstepping. Wegen der fehlenden Präzision kommt er in 3D-Druckern nur selten zum Einsatz – mit entsprechender Übersetzung für mehr Präzision kann er jedoch seine hohe Kraft ausspielen. Der MP6500 kostet in etwa dasselbe wie ein A4988, ist allerdings aufgrund seiner spärlichen Verbreitung nicht so gut als China-Nachbau verfügbar.

TB67S249FTG

Der Motortreiber von Toshiba arbeitet zwischen 10 und 47V Betriebsspannung und liefert bis zu 1.7A pro Phase ungekühlt und satte 4.5A mit entsprechender Kühlung. Er unterstützt bis zu 1/32 Microstepping und hat interessante Features, wie etwa die automatische Reduktion der Spannung bei wenig Last, um Stromverbrauch, Betriebsgeräusch und Hitzeentwicklung zu reduzieren. Auch das Feature den passenden Decay-Modus im Betrieb automatisch selbst zu wählen entlastet den Anwender. Er kostet ungefähr doppelt soviel wie ein A4988.

TMC2xxx (2100/2130/2208)

Die „SilentStepStick“ Motortreiber der deutschen Firma Trinamic (TMC2100, TMC2130 und TMC2208) gelten in der 3D-Drucker-Szene als der „Gold-Standard“. Sie sind zwar doppelt so teuer wie (originale) A4988, aber extrem präzise (bis zu 1/256 Microstepping), superleise und haben (beim TMC2130) einen Feedback-Modus namens „StallGuard“, mit dem sie die Signale, die vom Motor zurückkommen auswerten können, z.B. um „verlorene“ Motor-Schritte zu registrieren – und entsprechend zu reagieren. Da der Treiber so immer weiss, wo der Motor steht bzw. stehen sollte und wann er am Ende anschlägt, lassen sich damit Drucker wie z.B. der Prusa i3 MK3 bauen, die gar keinen X/Y/Z-Nullpunktschalter mehr haben. Trinamics liefern 1.2A pro Phase (max 2A Peak beim TMC2208) und können mit 5,5 bis 36V (beim TMC2208, bis zu 45V beim TMC2130 und TMC2100) betrieben werden. 

TMCs kennen zwei Betriebsmodi: StealthChop für fast lautlosen Betrieb und SpreadCycle für mehr Geschwindigkeit und Kraft, aber auch höheres Betriebsgeräusch. Der TMC2130 kann – neben Jumpern – optional auch via SPI, der TMC2208 via UART per Software und damit im laufenden Betrieb von Board-Controller und Firmware umkonfiguriert werden, den TMC2100 muss man per Jumper fix einstellen. Der TMC2130 hat zusätzlich eine automatische Stromanpassung je nach Last, um unnötigen Stromverbrauch und Hitzeentwicklung zu vermeiden.

Trinamic-Chips werden zwar auch gelegentlich als China-Klone angeboten, von diesen wird allerdings abgeraten, da sie soweit bekannt nicht so gut funktionieren wie das Original. Es gibt jedoch durchaus auch Stepsticks aus China, die die Original-Trinamic-Chips einsetzen – diese kosten dann allerdings auch etwa das vierfache eines chinesischen A4988-Stepsticks.

Die Vref-Spannung für Trinamic-Treiber berechnet sich folgendermaßen:

Vref (max) = max. Motor-Stromstärke * 1,41

D.h. bei einem für max. 1A spezifizierten Motor sollte man max. 1.4v einstellen – bzw. wie immer besser 70-80% davon, um auf der sicheren Seite zu sein!

Trinamic TMS2130 Stepsticks
Trinamic TMC2130 Stepsticks mit obenliegenden SPI-Pins

Motortreiber konfigurieren

Die Konfiguration von Motortreibern kann – je nach Treiber – ganz schön knifflig sein. Je nach Board, Motortreiber und Firmware geschieht dies entweder softwaretechnisch per Firmware (meist via UART/SPI) oder (bei Stepstick-Boards ohne fest verlötete Treiberchips) hardwaretechnisch per DIP-Schalter-Einstellung – oder beidem, was gängiger ist als man glaubt.

Je nach Board, Motortreiber und Firmware ist das Prozedere unterschiedlich, deshalb kann man hier keine universelle Anleitung geben. Wenn Sie auf ihrem Stepstick-fähigen Board jedoch DIP-Schalter sehen (meistens unter oder in der Nähe der Stepstick-Steckerleisten), dann sollten Sie diese vor dem Einsetzen der Stepstick-Treibermodule richtig einstellen. Konsultieren Sie dazu die Dokumentation des Board-Herstellers.