BASTIUniversal
04.08.2007, 17: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)
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)