Schrittmotor – Mikroschritte mit dem A3979

Der Allegro A3979 ist ein hervorragender kleiner Baustein für den Mikroschrittbetrieb von Schrittmotoren. Die Leistungsdaten sehen zumindest sehr vielversprechend aus. 2,5A Dauerstrom, bei 35V Motorspannung reichen für viele Anwendungen und Schrittmotoren aus. Außerdem ist die Ansteuerung extrem simpel. Alles was benötigt wird sind vier Steuersignale:

Enable, Reset, Richtung, Schrittsignal

Wie bereits beim überarbeiteten GREETBoard – Stepper L6208, können also auch hier zwei Schrittmotortreiber-Platinen über ein komplettes Port angesteuert werden. Vielleicht stellt sich nun der ein oder andere die Frage, warum nicht der L6208 für den Mikroschrittbetrieb verwendet wird. Leider musste ich nach langer Zeit der vergeblichen Recherche feststellen, dass der L6208 recht große Schwierigkeiten hat, den Mikroschrittbetrieb konstant und ruhig aufrecht zu erhalten. Die dadurch entstandene Lücke in meiner heilen Schrittmotoren-Treiber-Welt kann aber doch noch durch den Allegro A3979 geschlossen werden. Daher habe ich einen Schaltplan entworfen und werde diesen nun im Detail vorstellen.

Die Schaltung

Die Schaltung hat recht viele Übereinstimmungen mit dem L6208, wie z.B. der Beschaltung des Vref-Eingangs und der Sensing-Widerstände. Insgesamt ist die externe Beschaltung jedoch sehr überschaubar.

Stepper A3979 - Schaltung

Stepper A3979 – Schaltung

Nun erkläre ich ein paar Details des Schaltplans. Die meisten Informationen, z.B. zu Bauteilwerten habe ich aus dem Datenblatt entnommen.

MS1/2

Die Auswahl der Mikroschritt-Auflösung ist beim A3979 ganz einfach gelöst worden. Je nach Signalkombination an den Eingängen MS1 und MS2 wird eine der vier Auflösungen aktiviert.

MS1  MS2  µSchritt-Auflösung
 0    0   Vollschritt (1/1)
 0    1   Halbschritt (1/2)
 1    0   Viertelschritt (1/4)
 1    1   16tel-Schritt (1/16)

Bereits beim Viertelschritt liegt die Auflösung bei 800 Schritten (4×200); im 16tel-Schritt sogar 3200 Schitte.

Rsense

Auch der A3979 benötigt Sensing-Widerstände um den Motorstrom zu ermitteln. Und wieder werden zwei dieser Widerstände verwendet, da jede Wicklung der bipolaren Schrittmotoren separat gemessen wird. Durch die Sensing-Widerstände fließt der komplette Motorstrom, also maximal 2,5A und dadurch fällt dort eine Spannung ab. Diese Spannung wird vom A3979 erfasst und gemessen und der tatsächliche Motorstrom errechnet (hier spielt Vref eine wichtige Rolle aber dazu später mehr). Liegt der ermittelte Motorstrom über dem erlaubten, bzw. eingestellten Wert, dann wird der Strom so reguliert, dass der er wieder unter dieser Grenze liegt..

Damit nicht zu viel Spannung abfällt (in Wärme umgewandelt und verschwendet wird) ist dieser Widerstand sehr niederohmig. Wie niederohmig er sein soll ist im Datenblatt beschrieben und kann mit der folgenden Formel berechnet werden.

Stepper A3979 - Rsense Formel

Eine wichtige Größe muss bei der Auswahl des richtigen Widerstands berücksichtigt werden, die maximale Leistung. Normale Widerstände liegen bei ca. 1/4W und werden hier leider nicht ausreichen. Außerdem gibt es diese (1/4W) nicht in Werten unter 1Ohm. Grundsätzlich würden auch fünf parallel geschaltete 1Ohm Widerstände einen 0,2Ohm Widerstand mit 5 x 0,25W = 1,25W ergeben. Aber wie hoch ist denn die Verlustleistung tatsächlich? Hier die Berechnung:

Stepper A3979 - Pverlust Formel

Bei meinen Recherchen habe ich festgestellt, dass es Drahtwiderstände gibt, die doch unter 1 Ohm liegen und bis zu 2W Verlustleistung vertragen. Diese Bauteile werde ich als Sensing-Widerstände verwenden, es sein denn sie weisen eine zu hohe Induktivität auf. Hier noch die Widerstände in der Schaltung.

Stepper A3979 - Rsense

Stepper A3979 – Rsense

Vref

Der Sensing-Widerstand und Vref sorgen gemeinsam dafür, dass die Motorspannung nicht den gewünschten Wert überschreitet. Die am Rsense abfallende Spannung wird vom A3979 erkannt und mit der an Spannung Vref verglichen. Dabei gilt: Vref = 8*Itrip*Rsense ‹= 4V. Der hier verwendete Stromwert entspricht dem maximalen Motorstrom. Somit kann die folgende Gleichung aus dem Datenblatt des Schrittmotor-Treibers gelöst werden.

Stepper A3979 - Vref Formel

Da der Motorstrom je nach Motor eingestellt werden muss, habe ich eine kleine Tabelle für Motorströme in 0,5V Schritten aufgestellt

Motorstrom   Vref
   2,5A      4,0V
   2,0A      3,2V
   1,5A      2,4V
   1,0A      1,6V
   0,5A      0,8V

Die Schaltung zeigt den Spannungsteiler mit dem Potentiometer zum Einstellen des Vref. Wichtig sind die beiden Kontakte, die auf der Leiterplatte als Test-Pads ausgeführt werden. Hier kann Vref mit einem Spannungsmesser, während der Einstellung, gemessen werden.

Stepper A3979 - Spannungsteiler für Vref

Stepper A3979 – Spannungsteiler für Vref

 

Pfd-Eingang

Dieser Eingang ist für die Auswahl des sogenannten Decay-Modus zuständig. Für die meisten Motoren ist der „Mixed decay“ Modus ideal. Um diesen zu aktivieren soll, laut Datenblatt, am Eingang Pfd eine Spannung anliegen, die zwischen 3V (0,6 x Vcc) und 1,05V (0,21 x Vcc) liegt. Idealerweise wird eine Spannung von 0,4 x Vcc = 2V verwendet. Mit dem Spannungsteiler von 3,3k und 2,2k Ohm wird die notwendige Spannung von 2V erreicht.

Stepper A3979 - Spannungsteiler für Pfd

Stepper A3979 – Spannungsteiler für Pfd

RC1 & RC2

Diese Eingänge regeln den internen PWM Schaltkreis. Es können hier die niedrigsten Werte verwendet werden, die im Datenblatt angegeben werden.

Stepper A3979 - Beschaltung der RC-Eingänge

Stepper A3979 – Beschaltung der RC-Eingänge

Bauteiltyp

Nun komme ich zum sehr großen Nachteil dieses Bauteils – seine Größe. Den Allegro A3979 gibt es leider nur als TSSOP Bauteil und das ist schon recht klein. Die Pins sind klein und die Abstände zwischen den Pins ebenfalls. Erschwerend kommt auch noch dazu, dass es auch noch ein herausgeführtes „Thermal pad“ gibt. Und dieses liegt UNTER dem IC. Das bedeutet, dass es eigentlich nur im Reflow-Ofen gelötet werden könnte und einen solchen besitze ich nicht. Aber es gibt eine Lösung hierfür. Das Thermo-Pad der Leiterplatte wird mit einer durchkontaktierten Bohrung versehen. Dann kann auf das Pad Lötpaste auftragen und mit dem Lötkolben von unten verflüssigen werden. Vielleicht stecke ich noch einen Draht durch die Bohrung um die Hitze des Lötkolbens besser an das Pad zu bekommen.

Also alles in allem kein IC für Lötanfänger. Dennoch werde ich mich an diesem kleinen Kerl versuchen und ausprobieren, wie schwierig das Löten tatsächlich ist. Die Ergebnisse werde ich dann hier im Blog posten 😉

Fazit

Abgesehen von der echt kleinen Bauteilgröße ist diese Schaltung wirklich ideal. Es wird tatsächlich nur ein Taktsignal und die Richtung benötigt. Dazu noch Enable und Reset, das war’s! Ich kann es mir kaum einfacher vorstellen einen Motor im Mikroschritt-Betrieb anzusteuern. Also ideal für das GREETBoard-Projekt, bei dem es schließlich immer erst um die praktische Umsetzung geht. In die Theorie kann man immer noch danach einsteigen. Und mit einer funktionierenden Schaltung in der Hinterhand fällt mir persönlich das deutlich leichter.

Als Nächstes steht nun die Konstruktion einer Leiterplatte an. Dabei scheint das Thema Wärmeableitung recht wichtig zu werden. Na mal sehen wie es werden wird. Ich werde an dieser Stelle, diesem Blog, über die weitere Entwicklung schreiben. Also: Stay tuned!

8 Gedanken zu „Schrittmotor – Mikroschritte mit dem A3979

    1. Vielen Dank dafür! Noch ist es theoretisches Wissen, aber in naher Zukunft soll der A3979 in Betrieb gehen. Zumindest die Bauteile liegen schon im Bastelkeller 😉

    1. Der A3979 hat zwei sehr große Nachteile. Zum einen ist die Bauform sehr schwierig zu löten, da das GND/Kühl-Pad unter dem Gehäuse liegt (steht ja schon so im Artikel). Zum anderen ist die Wärmeableitung echt ein Problem bei höheren Strömen. Das hatte ich mal durchkalkuliert und festgestellt, dass wohl nur so max. 2A möglich sind ohne aktive Kühlung. Und ob die Leiterplatte wirklich ausreicht um den kleinen Kerl ausreichend zu kühlen, weiß ich auch nicht genau. Daher beschäftige ich mich zur Zeit (und wenn ich mal Zeit im Bastelkeller verbringen kann) mit dem TB6560, da er, als ZIP25-Version, super zu löten und mit der riesigen Metallfläche auch tolle Wärmeleiteigenschaften hat. Aber noch habe ich keine Testplatine zur Hand.

  1. Hallo Timo
    habe den IC im Netz angesehen. Sieht gut aus und gute Werte. Habe noch keinen passenden Kühlkörper dazu gefunden. Hast du eine Idee dazu?
    achim

    1. Vielleicht kannst du ein IC-Kühlkörper zusätzlich draufpacken. Aber wie in der letzten Antwort beschrieben, sitzt die Fläche zur Wärmeableitung UNTER dem IC. Daher ist es so schwierig es vernünftig zu verlöten, wenn kein Reflow-Ofen zur Hand ist.

  2. Sorry Timo
    falsch ausgedrückt. Spreche von dem TB6560 in ZIP Gehäuse. Hat nach Daten eine Breite von 36,5 mm.
    Danke, dein Paket ist gerade gekommen. Mal sehen wie es sich bauen lässt. Der Kühlkörper gefällt mir am besten. Mal sehen was man damit noch so anstellen kann …
    achim

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.