TB6560 Treiber für Shapeoko

Da die DRV8825 Treiber mit ihrer Maximalleistung von knapp über 2A bei NEMA23 Motoren am Limit sind und sehr heiß werden, bietet es sich hier an auf TB6560 Treiber zu wechseln.

In diesem Eintrag soll der Anschluss von 4x TB6560 Einzelmodulen an einen Arduino Uno mit GRBL 0.9j beschrieben werden.

Materialliste

Umbau der TB6560 Treiber

Die Steuereingänge der TB6560 Module sind über Optokoppler galvanisch vom Leistungsteil getrennt, was den Vorteil hat dass die Ausgänge des Arduinos geschützt sind. Da es sich bei den Eingängen der Optokoppler um LED's handelt fliesst dort im Gegensatz zu den Eingängen der Pololu Treiber ein nicht unerheblicher Strom der durch Vorwiderstände von 300 Ohm begrenzt wird. Ich habe einen Strom von 12,5 mA gemessen. Die Vorwiderstände sind auf dem Bild markiert: ENABLE in Rot, STEP und DIR in Blau:

TB6560 mit markierten Vorwiderständen

Da 4 Treiber für die 4 Motoren benötigt werden, sind entsprechend vier mal je drei Eingänge anzusteuern (Enable, Dir, Step). Die Eingänge DIR und STEP der beiden Y-Treiber müssen zusammengefasst werden, da sie parallel laufen. Es wäre möglich die Eingänge parallel anzuschliessen da der Arduino maximal 40mA mit einem Port treiben kann.

Allerdings müssen alle 4 ENABLE Eingänge ebenfalls gemeinsam angesteuert werden, da dafür beim GRBL nur ein Portpin für alle Achsen vorgesehen ist. Das wäre dann mit 50mA zu viel für einen Portpin. Abgesehen davon wäre die Gesamtlast von 3x4x12,5=150mA am Limit für den Gesamtstrom von 150 mA aus allen Ausgängen des Arduino.

Es bietet sich somit an, die ENABLE Eingänge sowie STEP und DIR der beiden Y-Treiber in Serie zu verdrahten. Dazu muss dann aber der Vorwiderstand geändert werden. Aus den gemessenen 12,5 mA bei 5V Versorgungsspannung und 300 Ohm Vorwiderstand ergibt sich eine Vorwärtsspannung der LED im Optokoppler von 1,2 V.

Für den STEP und DIR Vorwiderstand der Y-Treiber ergibt sich daraus ein Wert von insgesamt (5V-(2×1,2))/0,0125A = 208 Ohm. Man kann nun an beiden Y-Treibern die Step und Dir Vorwiderstände durch 100 Ohm ersetzten, oder an einem der beiden 220 Ohm und eine 0R Brücke am anderen verwenden.

Für den Vorwiderstand der ENABLE Eingänge ergibt sich ein Wert von insgesamt (5V-(4×1,2))/0,0125A = 16 Ohm. Man kann nun an allen Treibern die ENABLE Vorwiderstände durch 4 Ohm ersetzten, oder eine andere Kombination aus Widerständen verwenden die in der Summe ca etwa 16Ohm ergeben.

WICHTIG! Nach Änderung der Widerstände und der Reihenschaltung der Eingänge ist der Strom bei anliegenden 5V nachzumessen! Sollte der Strom wesentlich unterhalb der benötigten 12,5 mA liegen, müssen die Widerstände ggf. verkleinert werden. An der Enable Leitung können gg. einzelen der 4Ohm Widerstände durch Drahtbrücken ersetzt werden.

Verkabelung der Treiber

Für die übliche Shapeoko Konfiguration mit doppelter Y-Achse ergibt sich folgende Verkabelung:

Links an die Klemmen +V und GND aller 4 Treiber wird das Netzteil für die Motoren angeschlossen. Hier sind maximal 24V erlaubt. Für 4 NEMA23 (2A pro Wicklung) hat sich ein 360W Netzteil mit 24V und 15A bewährt.

Anschluss an den Arduino

Die benötigten Signale STEP_X, STEP_Y, STEP_Z, DIR_X, DIR_Y, DIR_Z, ENABLE und GND sind am Arduino wie folgt verfügbar:

Sie können gut mit einer Stiftleiste kontaktiert werden, so daß die Verbindung auch wieder trennbar ist.

Einstellen der Treiber

Die Einstelloptionen sind auf den Modulen aufgedruckt:

Running Current: Hier wird der Wicklungsstrom eingestellt. Dieser kann aus dem Datenblatt des Motors entnommen werden. Für den NEMA23 aus dem Shapeoko-Max Kit (57BYGH218): 2A.

Stop Current: Der TB6560 kann den Haltestrom auf 20 oder 50% reduzieren. Das bedeutet dass der Motor nur wenn er dreht den vollen Wicklungsstrom bekommt und zum Halten der Position mit einem geringeren Strom gesteuert wird. Empfehlung: 50% oder experimentieren.

Excitation Mode = Microstepping Für die Z-Achse 16, für die anderen Achsen 8.

Decay Setting: Es geht dabei um die Abschaltung des Stromes wogegen sich eine Spule ja bekannter Maßen mit aller Macht wehrt. Man kann hier einen Kompromiss zwischen sanft und leise oder kräftig und exakt wählen.

Da wir bei der Shapeko in der Regel einen Zahnriemenantrieb haben, kann die Empfehlung den Haltestrom auf den kleinstmöglichen Wert zu stellen hier nicht gelten.

Montage auf dem Arduino Trageblech

Mit 35mm Distanzbolzen können die 4 TB6560 über dem Arduino plaziert werden:
Dazu werden 2,5mm Löcher an den benötigten Positionen gebohrt und mit einem M3 Gewinde versehen.


Für eine Ecke ist eine Speziallösung nötig, da diese über dem Arduino Board liegt und dieses nicht überragt.
Hierfür kann man sich mit einem kleinen Alublech behelfen:

(Seite erstellt von crix)