PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor Treiber (Unipolar) bis 2,7A/Strang



BASTIUniversal
04.08.2007, 16:03
Hi!
Ich habe mal wieder ein kleines Projekt abgeschlossen. Diesmal habe ich mir zum Ziel gesetzt, einen effizienten und kompakten Schrittmotor Treiber für Unipolare (https://www.roboternetz.de/wissen/index.php/Schrittmotoren#Unipolare_Ansteuerung_Vollschritt) Motoren zu kreieren. Herausgekommen ist folgendes:
- Treiber für dauerhafte 2,7A pro Strang (Gesamtstrom über alle 4 FETs: 10,8A)
- Mit 50x50mm äußerst geringe Abmessungen, erreicht durch die Verwendung von SMD-Bauteilen und Doppelseitigem Layout
- Durch FET-Technik nur geringe Verlustleistung. Dadurch ist kein Kühlkörper nötig
- Sehr geringer Ruhestrom im Bereich von ca. einem mA
- Strommessung zur Überwachung des Motors
- Geeignet für Vollschritt und Halbschritt Ansteuerung

Da für die Unipolare Ansteuerung eines Schrittmotors die Spulen des selbigen nur nach GND geschalten werden müssen, entfällt die sonst zwingend notwendige H-Brücken Schaltung. Das vereinfacht die Schaltung ungemein, erkauft wird dieser Vorteil jedoch durch ein etwas geringeres Drehmoment des Motors.

http://home.arcor.de/basti_knoedler/Bilder/Uni-SM/Treiber%20oben.jpghttp://home.arcor.de/basti_knoedler/Bilder/Uni-SM/Treiber%20unten.jpg

Die FETs, die die Spulen nach GND schalten sind im Gegensatz zu Bipolaren Transistoren richtige Sparwunder. Die FETs (IRF 7341) haben einen On-Widerstand von nur max. 65mOhm (bei 4,5V Gatespannung). Dadurch können sie trotz des kleinen SO-8 Gehäuses bis zu 2,7A nach GND schalten.
Die FETs werden über einen 470 Ohm Widerstand von einem µC o.ä. angesteuert. 4,7k Pulldown Widerstände verhindern einen unkontrollierten Zustand der Transistoren (und dadurch eine evtl. Beschädigung). Da ich die Internen Dioden der FETs verwende, werden nur zwei zusätzliche Freilaufdioden benötigt. Diese sind mit der "SB330" überdimensioniert (aber günstig :-b ).
Die Schaltgeschwindigkeit der FETs wird durch die 470 Ohm Schutzwiderstände begrenzt. Wenn die Gates mit 5V angesteuert werden, ergibt sich ein max. Umladungsstrom von ca. 10mA. Die max. vertretbare Schaltfrequenz liegt aber trotzdem weit über 20kHz. Dadurch ist eine einfache Stromregelung mittels PWM möglich.

Die Strommessung erfolgt durch einen einzelnen 0,15 Ohm Shunt. Über diesen Shunt fließen alle Motorströme nach GND ab, es wird also der Gesamtstrom gemessen.
Die am Shunt abfallende Spannung wird mit zwei hintereinander geschalteten Tiefpässen gefiltert und dadurch Spikes durch das umschalten der FETs unterdrückt. Damit ist dann eine einfache Stromregelung möglich. Die Reaktionszeit des Filters beträgt ca. 40ms.
Die kleine Spannung wird durch einen, als Nichtinvertierenden Verstärker aufgebauten, OpAmp um den Faktor 5 verstärkt. Dadurch sind Ströme bis 6,6A messbar (die Verstärkung ist nur durch zwei Widerstände geregelt, kann also einfach angepasst werden).
Als OpAmp wurde ein TLC272D verwendet, wobei der zweite enthaltene OpAmp nicht verwendet wird (beide Eingänge auf GND, Ausgang offen).

Beim Layout der Platine habe ich den Leistungsteil und den Teil der Strommessung bestmöglich getrennt. Die Teile haben jeder eine eigene Groundplane, die nur an einer Stelle durch einen 0-Ohm Widerstand verbunden sind. Die Groundplane ist sowohl auf der Unter- als auch auf der Oberseite der Platine.
Mit Kondensatoren wurde auch nicht gegeizt. Jedes Spulenpaar und der OpAmp hat seinen eigenen 100nF Keramik Kondensator. Auf der Leistungsseite befindet sich ein 220µF auf der OpAmp-Seite ein 22µF Elko.

Die Kabel für den Motor und die Stromversorgung sollten bei größeren Strömen direkt an die Platine gelötet werden, bei kleineren Modellen können auch Buchsen/Steckerleisten verwendet werden. Schraubklemmen habe ich wegen des großen Platzbedarfs nicht vorgesehen.

http://home.arcor.de/basti_knoedler/Bilder/Uni-SM/Treiber%20Versuchsaufbau.jpg

Die Materialkosten sind mit ca. 6€ (ich habe bei Reichelt gekauft) moderat und in meinen Augen akzeptabel. An der einen oder anderen Stelle kann man jedoch bestimmt noch ein paar Cent einsparen.

Ich hoffe, ich habe damit den ein oder anderen etwas inspiriert...auch wenn das nachbauen für ungeübte nicht leicht ist.

MfG
Basti

Edit:
Nach ausführlichen Tests kann ich das Design jetzt als absolut Funktionsfähig erklären. Alle drei geplanten "Modi" funktionieren (wobei ich den dritten erst gestern entdeckt habe :-b ). Folgende gibt es:
- Normaler Vollschrittmodus (es wird immer eine Spule angesteuert)
- High Speed/High Torque Modus (es werden immer zwei nebeneinander liegende Spulen angesteuert)
- Halbschrittmodus

Ein passendes Programm für den Mega48 mit Stromgesteuerter Soft-PWM über den ADC und einstellbarer Geschwindigkeit habe ich auch geschrieben.
Alle Dateien inkl. Eagle Schaltplan und Layout sowie eine Teileliste gibts hier (http://home.arcor.de/basti_knoedler/Unipolarer%20SM-Treiber.zip)

Manf
04.08.2007, 16:48
Das klingt sehr gut und es ist auch sehr übersichtlich aufgebaut.

Wie ist das mit dem einen Shunt?
Im wave mode ist nur immer eine Spule aktiv und man kann man die Ströme über einen Shunt zusammen messen und regeln.
Erhalten die aktiven Fets dann im Halbschrittbetrieb ein gemeinsames PWM Signal und wird auf konstanten Summenstrom der aktiven Spulen geregelt?
Manfred

BASTIUniversal
04.08.2007, 17:46
Hi!
Ich nehme an, du meinst mit dem "wave mode" den Vollschritt Betrieb!? Da ist in der Tat immer nur ein Strang bzw. eine Spule aktiv. Da ist das Regeln über den Strom eigentlich kein Problem.
Über die Regelung im Halbschritt Betrieb habe ich ehrlich gesagt noch nicht viel nachgedacht. Wenn man sich das ganze genau anschaut, kann man die Stromregelung wegen des Tiefpasses vergessen. Ohne den Tiefpass könnte man die Stromänderung erfassen und die Regelung darauf auslegen.
Mehr als einen Shunt will ich wegen der Größe und der Übersichtlichkeit nicht verwenden (sonst bräuchte man ja 4 A/D-Wandler oder nen Multiplexer).
Schaut so aus, als müsste ich die Strommessung noch einmal etwas überarbeiten...gibt es vielleicht noch mehr ungewollte "Features"? :oops:

Praxis Tests habe ich leider auch nur mit der Vorgänger Version (alles THD und 100x80mm Platine)...mein vermeintlich Günstiges Netzteil hat mir leider die Grätsche gemacht nachdem ich die neue Version getestet habe (hat aber nix mit dem Treiber zu tun! Der Funktioniert tadellos!).

MfG
Basti

Manf
04.08.2007, 18:18
Der "wave mode" ist eine Betriebsart im Vollschritt bei ihm ist immer nur eine Spule aktiv. Die andere wird oft "normal mode" genannt. Bei dem sind dann die Spulen überlappend aktiv.

Ich habe die Struktur mit der allgemeinen Lösung mit Brücke verglichen, bei der es auch zwei Shunts gibt, in denen jeweils die Ströme zusammengefasst werden, die nicht gleichzeitig aktiv sind.

Ohne Geschwindigkeitsverlust bei der Umschaltung könnte man bei der unipolaren Schaltung sicher auch jeweils zwei Stromzweige (die entgegengesetzt liegenden) in einem Shunt zusammenfassen.
Manfred

BASTIUniversal
12.08.2007, 10:01
Hi!
Ich habe oben jetzt endlich mal ein Beispielprogramm in Bascom und die Eagle-Dateien (Schaltplan und Layout) eingefügt.

MfG
Basti