PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : L297 / L298 Schrittmotor spinnt



Smu
24.02.2008, 01:18
Hallo Leute,

erstmal ein dickes Lob ans Roboternetz - die Artikel und dieses Forum haben mir schon oft weitergeholften. Jetzt stehe ich jedoch schon längere Zeit vor einem Problem, bei dem ich einfach nicht weiterkomme und melde mich jetzt einfach mal hier zu Wort.

Ich möchte zwei Schrittmotoren mit der L297 / L298 Kombination betreiben (bipoar, seriell, Vollschritt, 12/24V). Hab dazu schon ne Platine anfertigen lassen. Das Problem ist jetzt aber, dass die ganze Schaltung scheinbar nur bis zu einer gewissen Schrittfrequenz (ca. 200 Hz) funktioniert. Wird die Frequenz höher, ruckelt der Motor nur noch. Das sind wohl auch keine normalen Resonanzen, denn die treten ja nur bei bestimmten Frequenzbereichen auf.

Die Motoren sind ST2818S1006 von Nanotec: http://de.nanotec.com/schrittmotor_st2818.html Laut Kennlinie dürfte da noch weit mehr drin sein als 200 Hz. Ich habe auch mal die Spannung von 12 auf 24 V erhöht, jedoch ändert sich gar nichts, außer dass der Motor lauter wird.

Ich habe schon ewig rumgetüftelt und getestet, hab aber keine Ahnung woran es liegt. Ich bin mir eigentlich relativ sicher, dass in der Schaltung kein Fehler ist, zumal der Motor in den niedriegen Frequenzbereichen ja ganz normal läuft (ich kann ich die Schaltung auch mal hochladen, wenn uns das weiter bringen könnte). Was ist bei den hohen Frequenzen anders als bei den niedrigen, sodass der Motor nur noch rumspinnt?

Marten83
24.02.2008, 11:34
Hallo Smu!

Erstmal vorweg: Strom ist für deinen Motor richtig eingestellt? Spulen richtig angeschlossen? Und verdoppelt sich die mögliche Schrittfrequenz wenn du ihn im Halbschritt betreibst?
Mir ist es auch schonmal passiert, dass ich den Schrittmotor so blöd angeschlossen habe, dass er erst bei jedem 2. oder 4. Takt einen viel zu grossen Schritt gemacht hat. Solltest du überprüfen.
Dass der Motor lauter wird kann gut mit dem verfügbaren Strom zusammenhängen. Im Wiki ist diesbezüglich auch was beschrieben.

MfG, Marten83

ManuelB
24.02.2008, 12:18
Laut Datenblatt sollte jeweils eine Spule sein:
Schwarz und Grün (Gelb offen lassen)
Rot und Blau (Weiß offen lassen)
Wenn er ab 200 Hz abreist kann das schon eine Resonanz sein, zumal Vollschritt gerne Resonanzen anregt. Schon mal sowas wie ein Schwungrad auf die Welle gesetzt um die Läufermasse zu ändern?

MfG
Manu

Smu
24.02.2008, 16:51
Danke für die schnellen Antworten.

Der Strom müsste richtig eingestellt sein. Ich regle die Referenzspannung für den Strom per Poti, kann so also den Strom optimal einstellen.

Kann man den Strom, der quasi am Motor ankommt mit einem normalen Multimeter irgendwie messen? Hab das Messgerät mal bei einem der Anschlussdrähte des Motor dazwischen gehalten und der gemessene Strom war erstaunlich klein. Hatte eigentlich gedacht, dass man diesen Messwert einfach mal 4 nimmt um den maximalen Strom zu erhalten. Doch der Strom, der aus meiner Stromquelle entnommen wird ist deutlich größer als der, der bei meiner Pseudomessung am Motor ankommt.

Die Spulen sind auch richtig angeschlossen - genau nach Datenblatt.

Im Halbschrittmodus kann ich das ganze leider nicht betreiben, da ärgere ich mich gerade selbst drüber, denn ich habe den Pin, dan dem man auf Halbschritt umstellen kann nicht am Controller (ist ein ATMEGA8) angeschlossen, sondern auf Masse gelegt, also Vollschritt für immer. Mir fällt da jetzt auch kein Trick ein, wie man den Pin bei der fertigen Platine jetzt doch noch umpolen kann.

Der Motor hängt an einem 1:90 Getriebe. Hab auch schon mal den Drehwiderstand vergrößert, indem ich die Welle einfach so fest wie möglich gehalten hab (oder in Drehrichtung mitgedreht hab), da das ja angeblich die Resonanz mindern soll. Da tut sich gar nichts.

Dass wirklich ab 200 Hz aufwärts NUR noch Resonanz auftritt und es darüber keine einzige Frequenz mehr gibt, bei der der Motor normal läuft, kann doch eigentlich gar nichts sein. Das muss doch irgendwie an meiner Schaltung liegen.

Kommt es eigentlich bei dem Platinenlayout auch auf den Verlauf (bzw. die Länge) der Leiterbahnen an? Vielleicht kommt es da irgendwie zu Störungen? Ich habe das Layout nämlich größtenteils dem Autorouter überlassen, da der Platz auf der Platine sehr beschränkt war...

Hab jetzt doch mal meine Schaltung hochgeladen, vielleicht kann sich die jemand mal ansehen. Sorry, dass die nicht ganz so professionell aussieht - vor allem, dass die Massesignale alle miteinander verbunden sind...

womb@t
24.02.2008, 18:25
Sollten die Dioden nicht schnellere Typen sein?

ManuelB
24.02.2008, 20:33
Ja sollte es ;)
Sollte Vref nacher über PWM angesteuert werden?
Layout ist wichtig bei Schrittmotorensteuerungen, da höhere Ströme mit recht hoher Frequenz geschaltet werden. Massebahnen sollten gerade bei den Sensewiderständen ausreichend dimensioniert sein und die Leitungen relativ kurz nach Masse. Eigendlich sollte auch noch ein 100nF Kondensator an die Betriebsspannung und so dicht wie möglich an das IC.

MfG
Manu

Smu
24.02.2008, 22:14
Als Freilaufdioden sind Schottky-Dioden im Einsatz (Artikelnummer 155460 bei Conrad).

Achja, die vier Sense-Widerstände haben übrigens 1 Ohm statt 0,5 wie im Schaltplan (bzw. Datenblatt), aber das tut ja im Prinzip nichts zur Sache, außer dass man Vref anpassen muss, oder?

Vref steuere ich über PWM an, ja.

Massebahnen in dem Sinne gibt es auf meiner Platine gar nicht, da es einen Masselayer gibt.

Wo genau meinst du, fehlt noch ein 100nF Kondensator? Dicht an den L298s brauch ich doch keine, oder? Sonst hab ich eigentlich überall an den ICs und am Spannungsregler welche...

ManuelB
24.02.2008, 23:36
Doch an den L298 sollten noch welche hin für die Motorenspannung. Die Kondensatoren sind ja dafür da die Spannung konstant zu halten auch bei kurzen Impulsbelastungen. Dafür sollten aber die Leiterbahnen zwischen IC und Kondensator so kurz wie möglich ausfallen. Prinzipiell einer pro IC.

Ber der PWM Ansteuerung bin ich mir nicht ganz sicher. Geht das ohne Tiefpass? Der Komparator im L297 "fragt" ja die Referenzspannung mit Oszillatorfrequenz (ca. 19kH) ab um den Strom zu regeln.
Hast Du das mit dem Poti direkt an Vref betrieben oder über den Atmel und PWM?

Smu
25.02.2008, 21:26
Jou, das wars! Danke Manu!

Hab Vref statt über den Atmel mal mittels Poti gespeist und siehe da - das Ganze funzt auch bei den hohen Frequenzen.

Da meine Schaltung ja kein Poti integriert hat, jetzt noch die Frage: Gibt's ne Lösung, Vref doch noch über einen Mega8 Pin zu bedienen? Was hat es mit dem Tiefpass in diesem Zusammenhang auf sich?

ManuelB
25.02.2008, 21:52
Filtert die PWM Frequenz aus und macht daraus eine Gleichspannung. So ähnlich wie Siebkapazitäten.
So in der Application Note AN 1495 "Microstepping Stepper Motor Drive Using Peak Detecting Current Control" von ST wird angesprochen, dass die Referenzspannung auch über PWM eingestellt werden kann. Auf Seite 4 ist eine Abbildung mit einem Spannungsteiler und einem Kondensator als Tiefpass. Mal schnell das wichtigste nachgemalt:

http://666kb.com/i/awfdb7zgrgzghwg9s.jpg

Das ist jetzt der Vorschlag aus der AN
Bei einer max. Spannung von 5V an PWM OUT also keine Off-Zeit ergibt sich dann eine Referenzspannung von ca 1V mit dem vorgeschlagenen Teilerverhältnis.

MfG
Manu