Hallo, Ich habe mir für mein CNC-Projekt eine Schrittmotor-Karte gebastelt: http://www.sir-kaiser.de/upload/IMG_8524.JPG Zur Ausstattung: - Zwei N-Kanal H-Brücken aus jeweils 4 N-Kanal FETs - IR2104 Halbbrückentreiber für die FETs - ChargePump zur High-Side-Speisung bei Dauer-ON - L6506 zu Stromregelung - Zwei MAX522 (Dual Ch. 8BIT DAC) - OP07 Differenzverstärker, um die Sensspannung zu verstärken. Dadurch kann ein kleinerer Widerstand verwendet werden. - LM311 zur Überstrom-/Kurzschlussüberwachung (löst Interrupt aus) - -5V, +5V, +15V werden Onboard erzeugt - bis 60V Eingangsspannung - ATMega32 - MAX232 Es funktioniert bisher alles, nur die Stromregelung will nicht: Es sind zwei H-Brücken vorhanden. Der Shunt sitzt wie folgt: http://www.sir-kaiser.de/upload/PowerStep-01.JPG Genauer: http://www.sir-kaiser.de/upload/IMG_8530.JPG Die Leitungen S-A-H und S-A-L gehen zum Differenzverstärker: http://www.sir-kaiser.de/upload/PowerStep-02.JPG Der Ausgang des Differenzverstärkers geht nach einem kleinen RC-Glied direkt zum L6506 Sense Eingang. Rechts hängt noch ein Komperator, der einen Interrupt beim Atmel auslöst, sollten 2V Überschritten werden. Hier kann ich dann die Stufe abschalten... Aber das ist zunächst mal unwichtig! Der L6506 ist dann wie folgt beschaltet: http://www.sir-kaiser.de/upload/PowerStep-03.JPG SYNC kommt vom Atmel PWM-Ausgang. Die Frequenz und die Phase kann beliebig von mir konfiguriert werden. H-IN-X gehen zu den jeweiligen Brücken. IN-X kommen vom Atmel. Die Referenzspannugnen werden wie folgt erzeugt: http://www.sir-kaiser.de/upload/PowerStep-04.JPG IC1 gibt den Maximalstrom vor. IC12 soll dann das Microstepping realisieren. Somit kann man IC12 immer gleich anstprechen, nur IC1 ist für den Maximalstrom zuständig. Nun, alles recht und schön, nur funktioniert es nicht richtig... Ich habe mal REF-A unf SENSA direkt am L6506 mit meinem Oszi gemessen: Beide Kanäle 0,5V/cm, 0,5ms/cm: http://www.sir-kaiser.de/upload/PowerStep-05.JPG http://www.sir-kaiser.de/upload/PowerStep-06.JPG Die Gerade ist natürlich REF-A. Das andere SENSA. Man sieht hier zwei verschiedene vorgegebene Spannungen. Doch SENSA zeigt keine Änderung. Selbst wenn REFA = 0V ist!!! Hat jemand ne Idee was da Faul ist? Ich hab schon überprüft, ob die Ausgänge für Kanal 1 des L6506 auch zur richtigen H-Brücke gehen, das passt alles...
Ich finde nichts bei Deinen Anhängen, wie SYNC angesteuert wird. Um halbwegs brauchbare Mikroschritte hinzubekommen, muß das Tastverhältnis möglichst "ungleich" sein, so 1:50 oder 1:100. Andernfalls kann kein kleiner Strom eingestellt werden, insbesondere wenn die Versorgungsspannung hoch ist.
Hallo, Vielen Dank für Deine Antwort, SYNC wird direkt vom ATMEL angesteuert. Dazu benutze ich den Timer 1, 16Bit Fast PWM. Was genau meinst du mit Tastverhältnis? Wie kann ihc das verstehen?
Ich schreibe mal, wie ich es noch in Erinnerung habe. Das Signal an SYNC schaltet im aktiven Zustand die Treiber in jedem Fall ein, unabhängig davon, ob der Sollstrom schon erreicht ist. Nehmen wir hierfür 1µs an, was in etwa ein Minimum für sauberen Betrieb ist. Mit Tastverhältnis 1:100 meine ich, daß anschließend SYNC für 99µs inaktiv ist. Die SYNC-Ansteuerung wäre somit ein 10kHz Rechteck mit Tastverhältnis 1:100 (vom AVR). Um hohe Drehzahlen zu erreichen verwendest Du 50V Betriebsspannung und vermutlich einen Motor mit Wicklungen 4V / 3A (mein geschäzter Wert) und entsprechend kleiner Induktivität. Da reicht schon eine (Zwangs-)Einschaltzeit von 1µs, um einen nennenswerten Strom fließen zu lassen, wenn die Wiederholfrequenz (hier 10kHz) nicht zu niedrig ist. Und diesen Strom kannst Du nicht kleiner bekommen - auch nicht mit Vref 0V. Sofern Deine Schaltung ansonsten funktioniert könntest Du probieren, die Versorgungsspannung deutlich zu senken (10V), um den Ruhestrom abzusenken. Alternativ kannst Du mit noch kleinerer Taktfrequenz ansteuern (1kHz mit 1:1000), was Du aber ohne Ohrenschützer wohl nicht lange ertragen wirst. Probiere und berichte!
Hi, du hattest Recht!!! Das PWM-Verhältnis war schuld!!! Ich hab irgendwie das Datenblatt so interpretiert, dass der L6506 immer ausschaltet,sobald der Strom erreicht wurde... Das war falsch interpretiert! Vielen Dank für diesen wertvollen Tipp!!! Hier ein Kurzes Video: http://www.sir-kaiser.de/upload/MVI_8531.AVI Super GIEL, dann war da nur die PWM-Einstellung falsch!!! Wenn du jetzt in meiner nähe wärst, würd ich dich küssen :-) ( Und wenn du eine Frau wärst :-) )
Hallo, mal ne Frage, wie hastn du das hingekriegt, dass die eine Wicklung nicht die andere beeinflusst? Bei mir habe ich das Problem, dass wenn die eine Wicklung schon abschaltet, dann kommt auf der zweiten Wicklung ein Peak, und der führt manchmal zu Fehlabschaltungen. Somit schwingt die ganze Sache, wenn die PWM Verhältnisse ca gleich sind. Kannst du mir vielleicht mal dein Layout schicken? Mit einem Tiefpass kriege ich das nur teilweise in den Griff.
>Wenn du jetzt in meiner nähe wärst, würd ich dich küssen :-)
Das muß nicht sein, aber schick mir doch einfach Deine Visakartennummer
:-)
Hallo Leute! ich arbeite momentan an den Feinheiten. Ein weiteres Problem habe ich bei niedrigen Strömen. Ich habe die karte im 1/16 Schritt mal im Sekundentakt betrieben. Also jede Sekunde 1/16 Schritt. Dabei beobachte ich, dass bei den unteren drei bzw. 4 teilschritten kein strom fließt, obwohl spannung anliegt. Ich habe im Versuch nur eine Phase betrachtet. Die andere habe ich abgeschlossen. Sie verhält sich genau so. Hier könnt ihr im Video die Messung am Oszi betrachten: http://www.sir-kaiser.de/upload/MVI_8554.AVI Meine REF-Spannungen sind ziemlich unsauber. Als 5V Schaltregler habe ich den LM2574 ADJ. Trotz 1000µF Kondensator scheint die Spannung minimal zu rauschen. Dies überträgt sich scheinbar über die DACs. Aber das Rauschen müsste ja im verhältnis dann auch so klein sein, wie bei den 5V. Evtl sollte ich mal andere DACs versuchen. Die MAX522 sind eh so teuer... Ich glaube ich versuche in der nächsten Version die MAX549. Aber das Problem muss doch lpösbar sein, oder? Evtl hat jemand von euch ne Idee, warum das nicht richtig will. Ansonsten würde der motor schön ruhig laufen. Nur in diesem Bereich mach er eben eine Vibration. Besten Dank schon mal vorab. Gruß, Franz
Lag an der Chopper-Frequenz. Der On-Impuls darf auch nicht zu kurz sein... Jetzt muss ich nur noch Störugnen minimieren. Noch eine Sache, Ist der von mir gewählte Chopper-Betrieb auch der Richtige? Oder soll ich die Karte lieber umgestalten auf Inhibit-Chopping? Inhibit-Chopping würde verhindern, dass die Gespeicherte magnetische Energie der Spule in form von Strom durch den Shunt fließt... Die Energie würde dann nämlich über die Freilaufdioden abklingen...
Hallo Franz, so wie ich das inhibit-chopping verstanden habe fließt der low-side-Strom im ausgeschalteten Zustand immer über die Diode. Der Unterschied liegt nur auf der anderen Seite: um einen schnelleren Stromabbau zu gewährleisten wird die Wicklung durch den eigentlich "falschen" high-side Mosfet an die Versorgungsspannung gelegt. Das Ganze nennt sich dann fast decay mode im Gegensatz zum Diodenfreilauf, dem slow decay mode. Ich sehe gerade dass du die low side Freilaufdioden auf low side source legst. Die Anode könntest du auch auf GND legen, dann fließt dein Freilaufstrom nicht über den Shunt. Läuft sonst schon alles? Ich plane derzeit eine sehr ähnliche Motorendstufe. Gruß Alois
Hallo Alois, ich habe mittlerweile 4 oder 5 Prototypen gebaut. Letzterer hat einigermaßen gut funktioniert... aber so ganz zufrieden war ich damit nicht. Und der L6506 war mir auch zu altmodisch. Also habe ich mich dazu entschlossen, die ganze sache etwas moderner zu gestalten. Es läuft im moment ein sehr sehr gut funktionierenden Versuche mit einem Texas DSP. Der DSP erledigt unter anderem die Stromreelung. Kein L6506, Kein D/A-Wandler, Einfach nur 8FETs, 2Brückentreiber und der DSP! Das ist um welten besser als der L6506!
ah ok... ich hab mich jetzt schon einige Zeit mit der Simulation gespielt, da die Stromregelung anfangs nicht ordentlich funktioniert hat. Mein Fehler war einfach eine RC-Entkopplung bei der Sense-Leitung einzubauen um die Spizenspannungen rauszufiltern. Eine Frage zum Choppern habe ich noch: Falls bei höheren Drehzahlen der Spulenstrom wieder abgesenkt werden soll wehrt sich diese etwas dagegen. Bei integrierten Controllern wird hier mit fast oder mixed decay dagegengearbeitet. Analog hab ich das noch nicht hinbekommen... Bringt das überhaupt was oder reicht der einfache slow decay mode? Gruß Alois
Ich betreibe meine Stepper auch mit einem DSP. Anfangs ohne Stromregelung, ging mit einem Motor sehr gut, bei einem anderen Typen gab es extreme Resonanzen (mit der selben Ansteuerung). Grund ist die Abhängigkeit der Induktivität von der Rotorposition. Jetzt mache ich es auch mit Stromregelung. Du musst auf jeden Fall in der fallenden Sinuswelle mit fast decay arbeiten, sonst bekommst Du die gespeicherte Energie nicht aus der Spule. Bei höheren Schritt-Frequenzen (ab 2 - 3 kHz) schalte ich auf Fullstep, da der Strom sowieso ewig braucht, bis er fließt. Dann ist schon wieder Zeit zum Umpolen. In der nächsten Version werde ich nicht mehr den Fet-Strom messen, sondern direkt den Spulenstrom. Wenn der vom Betrag her stimmt, wir überhaupt nicht geschaltet. Mit einem DSP hat man wirklich freie Hand, was die Ansteuerung betrifft. Wie macht Ihr die Strommessung?
Die Strommessung funktioniert immer noch klassisch über den Shunt, was in meinen Augen den gravierenden Nachteil hat, dass während der off-Zeit einfach nicht gemessen werden kann. Eine direkte Strommessung im Spulenzweig habe ich damals auch als Lösung gesehen, nur (warum auch immer) nicht weiterverfolgt. Das mit der fallenden Sinuswelle habe ich auch schnell gemerkt, nur hatte ich bei meiner analogen Stromregelung das Problem dass beim fast decay switching eine negative Referenzspannung entsteht. Also hierzu eine Grundsatzfrage: kann man mit einem einfachen Spannungskomparator überhaupt den Strom im fast decay modus regeln? Falls die Spule den eingestellten Strom erreicht hat wird sie beim fast decay mode ja praktisch verpolt an die Versorgungsspannung gehängt. Hier kann man mit dem Shunt die Spannung nicht messen, da die Ist-Spannung zu dieser Zeit ja bereits negativ ist, also wenn man nichts unternimmt fließt dieser Gegenstrom bis zum nächsten Stromregelzyklus bis die Spule verpolt die Schaltschwelle erreicht. hab ich da jetzt einen Denkfehler drin? Mit einer direkten Strommessung würde das nicht passieren... Gruß Alois
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.