PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotorsteuerung mit l297/l298! Frage zu Spulenströme



CWT
21.10.2010, 11:03
Hallo zusammen,
ich bin der Neue (wir sind eigentlich ein kleines Team im Anfangsstadium des Roboterbaus. Doch im Moment bin nur ich in diesem Forum unterwegs)!
Ich bin nun schon öfters mal über diese ausgesprochen interessante Website gestolpert und habe mir auch schon viele nützliche Erkenntnisse aneignen können. Nun ist es aber soweit, dass ich nur mit lesen, nicht mehr so richtig weiter komme.

Mit dem l298 habe ich schon einige Erfahrungen gemacht; Regelung von 2 DC-Getriebe-Motoren. Da dabei aber einige Probleme auftauchten, haben wir uns entschieden auf Schrittmotoren umzusteigen. Dabei war der Plan die Motoren mit der "allerwelts-Ansteuerung" l297/l298 zum laufen zu bringen. Das hat auch prinzipiell funktioniert, nur tauchen nun doch die ein oder anderen Fragen auf.

Ich fange von vorn an:
Wir verwenden zwei Schrittmotoren von Nanotec.
R = 1,2 Ohm
U = 1,7 V
I = 1,4 A
M = 20Ncm
Der Roboter wird gegen Ende wohl maximal 5 kg wiegen, dafür sollten die Motoren ausreichen.
Angesteuert werden die Motoren über die integrierte H-Brücke l298 und den Treiberbaustein l297! Die Schaltung ist laut Datenblatt aufgebaut. Die beiden Treiberbausteine werden über einen Microcontroller gesteuert. (zum testen wird bis jetzt nur EIN Motor verwendet). Die Ansteuerung funktioniert prinzipiel, ich bekomme verschiedene Geschwindigkeiten hin und auch der Drehrichtungswechsel ist kein Ding.

Wie ich auch hier gelesen habe, werden die Motoren an einer weitaus größeren Spannung betrieben. Ich habe Versuche mit ca 8V und ca 15V durchgeführt. Das Problem sind die Teilweise extrem hohen Ströme. Ich habe die Referenzspannung Vref nach der Formel berechnet
Vref = Imotor * Rs
I = 1,4
Rs = 0,5 Ohm (5W)
macht:
Vref = 0,7 V
Ich kann momentan nur den Strom der gesamten Platine (ohne µC), mit einem Multimeter messen.

An 8V fließen bei hoher Drehzahl ca 0,8 A, bei niedriger Drehzahl ca 2 A.

Da 0,8A zu wenig sind (währen dann pro Spule ca 0,4A !?) habe ich die Spannung erhöht.

An 15V fließen bei hoher Drehzahl ca 1,3 A, bei niedriger Drehzahl aber ca. 5,8A (pro Spule über 2A!?) !!!

Dieser Strom scheint mir etwas zu hoch zu sein. Der l298 kann ja nur 2 x 2A. Meine 5W Widerstände machen das vermutlich auch eine Weile mit, aber wohl nicht ewig. Und auch die Motorspulen sind nicht dafür geeignet!? Ich bin mir zwar bewusst, dass es gepulste Ströme sind, dennoch kommt es mir sehr hoch vor.

Testweise habe ich dann mal Vref "nach Gefühl gewählt" (wie der Motor sich anhört und sich anfühlt). Mach ich Vref höher, ändert sich nichts. Mach ich Vref kleiner begrenze ich zwar den Strom, aber der Motor brummt und kann das Drehmoment auch nicht halten.

Eigentlich habe ich erwartet, dass bei richtiger Vref, der Strom am Ende, egal bei welcher Drehzahl und welcher Spannung (wenn Sie hoch genug ist), ca 1,4 A pro Spule beträgt. Also gemessen an der Ganzen Paltine etwa 3 A. Vertu ich mich da irgendwie? Habe ich etwas vergessen? Habe ich Hardwaremäßig vielleicht etwas übersehen?

Ich habe viele Threads durchgelesen, aber bei weitem nicht alle. Sollte das Problem schonmal besprochen worden sein, dann nehmt es mir bitte nicht übel. Ich würde mich dann über die passenden links freuen, oder über Tips und hilfreiche Hinweise.

Eine andere allgemeine frage wäre, mit was für einer Frequenz kann ich meinen L297 ansteuern? Ich habe High Signale von etwa 5µs und der Abstand zwischen den Signalen ist bei hoher Drehzahl ca 1ms! Macht grob 1kHz! Was ist da das Maximum? Wenn ich die Frequenz erhöhe pfeift der Motor nur noch. Da frage ich mich aber, ist das nunmal die Grenze? Oder kann ich bei richtiger Handhabung die Frequenz und somit die Drehzahl erhöhen?

Sollte das Projekt dann langsam Gestallt annehmen, dann könnte ich natürlich auch, bei vorhandener Interesse, einige Bilder und Beschreibungen posten, was sich den von der Theorie zur Praxis so getan hat.

Vielen Dank fürs lesen und helfen,
Viele Grüße
Flo - CWT

markusj
21.10.2010, 21:20
Das Drehmoment eines Schrittmotors sinkt mit steigender Drehzahl, sieh dir Mal das Datenblatt deines Schrittmotors an, dort ist normalerweise der Drehmomentverlauf dokumentiert.

Die höhere Spannung bewirkt, dass die Leistungsverluste bei höheren Schrittfrequenzen etwas später kommen (mehr Spannung -> Selbstinduktion wird schneller überwunden), aber auch hier gibt es eben Grenzen.

Zur Frequenz: Das Datenblatt des L297 spricht von 0,5µs (Seite sieben, "Electrical Characteristics", im Datenblatt des L298 stehen aber Delay-Werte von bis zu 2,2µs (Typ.) ohne Berücksichtigung induktiver Effekte. Möglicherweise fangt ihr euch auch über euer Layout Störungen ein, das lässt sich aber auf Distanz schlecht diagnostizieren ...

Beschleunigt ihr euren Motor ordentlich oder versucht ihr gleich mit 1kHz "Vollgas" zu geben? (Das geht schief ... Rotormasse und so)

mfG
Markus

Besserwessi
21.10.2010, 22:37
Die beschreibung spricht dafür, dass die Schaltung noch nicht richtig funktioniert. Solange die Drehzahl / Schittfrequenz nicht zu hoch ist. sollte die Schaltung es schaffen annähernd den eingestellten Strom duch die Spulen zu schicken. Die Grenze bis zu welcher Schrittfrequenz das klappt hängt u.A. von der Spannung ab, aber so 500 Hz - 2 kHz für Schrittfrequenz sollten das werden. Darüber nimmt das Drehmoment des Motors dann deutlich ab. Der mittlere Strom aus der Vresorgung sollte im Stillstand auch schon unter 2,8 A bleiben, denn der volle Strom flißet nur gepulst aus der verssorgung und den Rest der Zeit über die Freilaufdioden.

Was jetzt an der Schaltung falsch läuft ist aus der Ferne schwer zu sagen. Einige beliebte Fehler sind eine zu hohe PWM Frequenz, langsame Freilaufdioden (z.B. 1 N540x), Störungen duch fehlende Kondensatoren an der versorgung oder eine schlechtes Layout.

CWT
22.10.2010, 11:12
Okay, vielen Dank, das hilft mir schonmal n Stück weiter. Da kann ich ansetzen.

Das Layout befindet sich während der Testphase noch auf einer Lochstreifenplatine. Die Dioden sind schnell genug. Die PWM Frequenz des l297 kann ich direkt ja nicht beeinflussen!? Die Schaltung und Werte der Bauteile sind direkt vom Datenblatt übernommen.

Zur Entstörung der Versorgungsspannung haben wir noch nichts unternommen, da werde ich mal ansetzen.

An dem Programm für die Beschleunigung arbeite ich im Moment. Bis jetz gab es nur 0 oder 1! Das war aber auch nicht direkt mein Problem, sondern die hohen Ströme bei langsamer Drehzahl und im Stillstand.

Ich werde versuchen und berichten!

Grüße
Flo - CWT

markusj
22.10.2010, 12:06
Hallo Flo,

das erklärt einiges, ohne den Rotor zu beschleunigen wird der Motor den Sprung auf die 1kHz Schrittgeschwindigkeit vermutlich nicht schaffen und dann sinnlos vor sich hin brummen (eigentlich springt er zwischen einigen Raststellungen hin und her - oder versucht es zumindest).

Die hohen Ströme limitierst du ja über VRef, bei höheren Drehzahlen wenn die Begrenzung nicht mehr nötig ist, macht der L297 von alleine "auf".

Die Regelfrequenz des L297 wird über das RC-Glied vorgegeben, sollte aber mit den Werten im Datenblatt passen.

mfG
Markus

PS: Die Versorgungsspannung unbedingt Puffern! Logikteil je IC 100nF, Leistungsteil noch mit einem größeren Elko.

CWT
22.10.2010, 18:11
"Mach ich Vref kleiner begrenze ich zwar den Strom, aber der Motor brummt und kann das Drehmoment auch nicht halten."

Ich glaub ich hab das n bissl falsch formuliert. Wenn ich Vref herunter drehe, dann dreht er sich noch ganz normal, hat auch noch genügend Moment, aber er piepst (schwer zu beschreiben, ähnlich einem Modem!?), und das hat sich für mich ungesund angehört! Nur, wenn ich zu Testzwecken Vref noch weiter runter mach, dann geht auch das Drehmoment weg. Aber das is eigentlich klar; kein Strom = keine Kraft. Ein Arbeitskollege der im Grunde nichts mit Elektronik am Hut hat, hat gemeint dass sich seine Drehmaschine (mit Schrittmotor) bei niedriger Drehzahl ähnlich anhört. Das ist bei mir eben auch nur bei niedriger Drehzahl. Bei hoher Drehzahl, wenn der Strom nicht begrenzt wird, ist das Piepsen weg!
Ist es vielleicht möglich, dass das einfach so gehört? Das man das gar nicht weg bekommt? Ich hab nun Vref so eingestellt, dass der Strom auch im Stillstand maximal 3A beträgt. Und so wäre Drehzahl und Moment voll in Ordnung. Es geht mir eben nur um das Piepsen bei niedrigen Drehzahlen. Ansonsten kann ich keinen Fehler in der Schaltung finden. Entstört hab ich noch nichts, da bin ich heute noch nicht dazu gekommen, wird aber noch gemacht.

Ich Danke für die Hilfe und werde weiter berichten.
Flo - CWT

Besserwessi
22.10.2010, 19:15
Das Piepen bei niedriger Drahzahl ist in gewissen Grenzen normal. Das ist die PWM Frequenz mit der der L297 den Strom reduziert. Wenn man es Piepen hört spricht es eigentlich auch dafür, dass die PWM Frequenz eher niedrig ist.

Man kann das Piepen reduzieren, wenn die PWM Frequenz höher wird - so in den Bereich 10-30 kHz. Das sollte aber erstmal nicht das Problem sein - noch kann man das Piepen als Funktionskontrolle nutzen. Zu niedrig sollte die PWM Frequenz aber auch nicht sein.

Der Strom den man extern mit dem DMM mißt sollte aber eigentlich deutlich kleiner werden. Im Stillstand oder bei niedriger Drehzahl würde ich da nicht mehr als etwa 1,5 A erwarten (bei 8 V Versorgung).

Die Kondensatoren am Treiber sind nicht nur zur Entstörung ! Ohne die Kondensatoren kann das Treiber IC auch beschädigt werden, vor allem beim Ausschalten der Spannung. Die Kondensatoren sind absolut notwendig.

CWT
26.10.2010, 14:27
Dann behaupte ich mal, die Schaltung funktioniert, ich war nur etwas paranoid was das piepsen angeht. Ich hab Vref nun nicht berechnet sondern durch messen eingestellt. Das Problem, welches unterm Strich kein Problem war, habe ich nun gelöst. Ausserdem habe ich die Schaltung nach Plan auf Seite 8 des l298 angefertigt, mit genau den Bauteilen und Werten.
Aber ich habe trotzdem noch einige Fragen. Diese Platine wurde nur zum groben Testen entworfen. Jetzt plane ich eine Motorsteuerplatine für beide Motoren, auf einer 100 x 160 Lochstreifenplatine. Das Layout ist ziemlich fertig. Doch wie sieht es nun mit den Kondensatoren aus!?
Ich habe 2x l297 2x l298 und einen 7805 mit den entsprechenden Bauteilen verbaut. Bei den beiden l297/l298 wie auch beim 7805 sind zwischen 5V und GND und 8V und GND ein 100nF Kondensator verschalten. Reicht denn nun einer für alle? Oder muss ich die einfach addieren?
Ich habe zusätzlich zwischen 5V und GND ein 220µF und zwischen 8V und GND einen 2200µF Kondensator zur Glättung/Entstörung verschalten. Ist das ausreichend? Wie kann ich GND des Lastteils und GND des Steuerteils trennen, dass die Spannungsspitzen der Motoren nicht übertragen werden? Die Motoren versauen mir sonst das ganze Netz und die daranhängenden Controller etc...

Grüße
Rappi - CWT

Besserwessi
26.10.2010, 17:45
Die Abblock-kondensatoren (100 nF) an den 5 V sollten schon dich an dem jeweiligen IC sein. Das sollte also schon für jedes IC einer einer sein. Am ehesten kann man wohl den von 7805 weglassen. 220 µF an den 5 V sind schon relativ reichlich, schaden aber auch nicht (solange am 7805 die Reversdiode dran ist).
Der Elko bei der Motorspannung ist OK, es sollten aber auch da nochmal 100 nF je IC vorgesehen werden. Bei einer schwachen Stromquelle könnten auch größere Elkos (oder ein 2 ter der Größe) nicht schaden.

Wirklich Trennen muß man die Versorgung nicht. Bei der GND Leitung sollte man darauf achen, wo der Strom wirklich langfließt und dann damit rechenen das jede Vrebindung / Leiterbahn einen Widerstand (bzw. Induktivität) hat. Bei den Leitungen wo viel Strom fließt sollte man denn halt keine empfindliche Schaltung anschließen. Im eine passende Wahl dafür ist die Sternförmige Masseführung an einen Punkt.

Bei der Versorgungsspannung ist es hilfreich, wenn die Spannung vor dem Regler noch einmal von der Motorspannung durch eine Spule, Diode oder einen Widerstand getrennt ist. So kann da eine Elko als Puffer nur für den 5 V Regler dienen.

CWT
26.10.2010, 18:49
Gut, das mit den Blockkondensatoren werde ich berücksichtigen! Meine 7805 Schaltung habe ich bis jetzt immer mit einem 220µF Kondensator aufgebaut. ohne Reversdiode.
Könntest du die Reversdiode bitte kurz erläutern?

Ich habe die ganze Platine so geplant dass Last und Steuerkreis möglichst getrennt ist. Auch das Leiterbahnen räumlich voneinander getrennt sind. Ich kann da vllt mal ein Bild einstellen.

Eine Diode kann ich vor den 7805 noch einbauen, das ist kein Problem. wenn mich nicht alles täuscht, müsste da ja eine normale 1N4148 ausreichen!?

Grüße
Rappi - CWT

Besserwessi
26.10.2010, 18:58
Wenn ein nennenswerte Elko hinter dem 7805 ist, und an anderer Verbraucher an der Spannung vor dem 7805 hängt, sollte eine Diode (z.B. 1N4001) vom Ausgang der 7805 zum Eingang. Die 78xx, zu mindestens einiger Hersteller mögen es ganz und gar nicht, wenn die Spannung am Ausgang deutlich höher wird als am Eingang. Dafür kann der Elko hinter dem Regler reichen, wenn auf der Eingangsseite ein entsprechend starker Verbraucher hängt.

Eine Diode in Reihe kann auch reichen, und dient auch als zusätzlicher Verpolungsschutz und als Trennung für den Elko am 7805. Allerdings sind dann die 8 V schon ziemlich das Minimum.

CWT
04.11.2010, 14:49
So, nun hab ich die Tipps nach bestem Wissen und Gewissen befolgt. Demnächst kann das ganze getestet werden.

Nun hab ich aber neue Fragen. Ich bin auf der Suche nach dem passenden LiPo Akku. Ich schwanke zwischen 7,4V und 11,1V.

Momentan sind auch die Motoren (Schrittmotoren) nicht ganz sicher. Entweder 1,4A an 1,7V oder 1,8A an 3,15V.
Der kleine Motor wurde an 7,4V getestet und läuft ganz gut. Ich könnte ihn aber auch an 11,1V hängen!? Und wenn ich dann evtl auf den größeren Motor umsteigen müsste, wäre eine höhere Spannung auch besser!? Könntet ihr mir nen Rat geben?

Grüße
Rappi - CWT