PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motorsteuerung L297/L298 für EMC2..



linuxer7
23.11.2011, 20:14
Hallo Leute,

Ich habe ein kleines Problem mit meiner Schaltung.
Vor einiger Zeit habe ich im Internet einen Bericht gelesen in dem Jemand eine Fräse zum Fräsen seiner Platinen selbst gebaut hatte.
Das wollte ich auch, also habe ich mich an die Arbeit gemacht. Ich hatte noch ein paar alte Bipolare Schrittmotoren herumliegen die ich zum Steuern der Achsen benutzen wollte. Hat soweit auch ohne Probleme funktioniert nur das Spiel der Achsen war übel, so das ich mich beschlossen habe neue Motoren zu kaufen und eine neue Platine zu bauen.

Nun kommt das Problem.
Mit den alten Motoren und dem l293 Treiber lief alles wie am schnürchen.
Da ich nun einen neue Schaltung bauen musste mit dem l298 funktioniert gar nichts mehr.

Ich habe die 2 Schaltpläne der Steuerung angehängt und vielleicht findet jemand den Fehler.
Ich habe alles durch gemessen und die Platine ist genau nach Plan verdrahtet. Der einzige Anschluss den ich nicht belegt habe ist der Pin 16.
Den hatte ich in der alten Schaltung auch offen gelassen und die Schaltung hat funktioniert. Aber hier geht gar nix.
Liegt es daran ?

An den Motorausgängen habe ich an allen 4 Pins des Motors 12V anliegen das ist seltsam.
Die Steuersignale die mir EMC2 über den Parallele-Port liefert sind die Richtung und der Takt und die liegen am l297 IC an.
die l297/l298 IC's sind neu und sollten also in Ordnung sein.
Die Refernzspannung liegt bei 0,5 Volt.
Die Spannungsversorgung wird von einem PC-Netzteil 550W bereitgestellt und ist Stabil.

Könnte jemand von euch die Schaltung ansehen und mir sagen ob alles Richtig verdrahtet ist?
So das ich wenigstens davon ausgehen kann das die Schaltung funktionieren sollte.
Ich habe an die neue Schaltung auch einen der alten Motoren gehängt, aber ohne Funktion.

Ich habe irgendwie der Verdacht das ich etwas übersehe, ich weiß nur nicht was.

Gruß
Thomas

T4Sven
24.11.2011, 06:34
Dein Bild vom Schaltplan ist sehr klein , kaum lesbar. Wieso baust Du neue Motoren und treiber ein wenn deine Portale zuviel spiel haben ?? Wenn ich zuviel spiel habe liegt das an meinen Führungen.

Ein Bild deiner Fräse wär auch Interessant :-)

linuxer7
24.11.2011, 07:42
Morgen Sven.

Ja Du hast vielleicht recht die Bilder sind etwas mickrig. Ich habe die original Dateien von Eagle hoch geladen mit 2 Bildern meines "Konstruktes" ;)

Die Motorachsen der Motoren haben fast 1 mm Spiel. Das macht sich immer dann bemerkbar wenn der Motor die Drehrichtung ändert.
Da die alten Motoren um die 30 Ohm Spulenwiederstand haben, konnte ich den l293 als Treiber nehmen. Der ist für eine Last bis 600mA ausgelegt.
Die neuen Motoren sind jedoch mit 5 Ohm und einem Strangstrom von ca. 1A angegeben das verkraftet der l293 nicht mehr.
Deswegen habe ich eine neue Karte gebaut mit den l298 als Treiber, der ja bis zu 2A können sollte.

Aber es rührt sich einfach nichts :(

Nachtrag:
Ok ich habe eben gesehen das die .sch Dateien von Eagle nicht unterstützt werden deswegen habe ich die Bilder nochmal bearbeitet und hoch geladen.
Sorry.

Gruß
Thomas


Gruß
Thomas

Geistesblitz
24.11.2011, 08:35
Könntest du die Bilder vielleicht extern hochladen, zB. auf imageshack oder Photobucket oder ähnlichem? Ich kann da nämlich beim besten Willen keine Schrift lesen und damit auch nicht erkennen, was wo angeschlossen wurde.

linuxer7
24.11.2011, 09:08
Sodele auf Imageshack liegen die beiden.
Die Bilder haben eine Auflösung von 3000 x 2000irgendwas.

Der alte Treiber.
http://imageshack.us/photo/my-images/31/emccncv1.jpg/

Der neue Treiber.
http://imageshack.us/photo/my-images/823/emcfraese.jpg/

Mittlerweile habe ich festgestellt das der alte Motor ruckelt wenn ich ihn ansteure.
Auch die Ausgänge wechseln.
Aber richtig laufen tut auch der alte Motor nicht.
Ich vermute jetzt mal das hängt entweder damit zusammen das dieser OSC Anschluss fehlt, oder das der Strom zu niedrig ist.
Ich habe aber 0.5 Ohm Widerstände bestückt. Zumindest steht auf den Widerstanden 0R51.
Messen mit dem Multimeter geht nicht. Die Anzeige lautet immer 0 Ohm. Ich vermute das hängt damit zusammen das das Messgerät einfach < 1 Ohm nicht messen kann.


Gruß Thomas

mausi_mick
24.11.2011, 09:47
Hallo,

ich würde den L297 am PIN16 wie im Herstellerschaltbild beim L298:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000240.pdf

betreiben mit dem RC-Glied am PIN16, sonst schwingt der interne Oszillator wohl nicht, aber am besten auch nochmal beim datasheet vom L297 nachsehen.

Die Beschriftung 0R51 ist ok für 0,5 Ohm.

Aber bei den Mosfets über den Motoren für Lüfter / Fräser die Schutzdioden (in Sperrrichtung) zwischen Drain und + Pol nicht vergessen !

Gruss mausi_mick

linuxer7
24.11.2011, 10:14
Hallo Mausi_mick. Danke für den Hinweis mit den Schutzdioden. Die habe ich vergessen. Also ich habe nun den Internen Oszillator beschalten und nun geht auch. :) Da ich aber keine 3.3nf hatte musste ich die Beschaltung etwas ändern. Ich habe 15nf und 4.7KOhm verwendet damit liege ich bei ca. 2.6Hz sollte auch noch im Bereich liegen. Mit 3,3nf und 22K sind es auch nur 2.4Hz. Nur muss ich den Strom etwas runter fahren der l298 wird ganz schön warm, um nicht zu sagen, man verbrutzelt sich schon die Pfoten am Kühlblech. Danke für eure Hilfe und Tipps. Gruß Thomas

Geistesblitz
24.11.2011, 11:06
Ja, den Pin 16 sollte man schon mit einem RC-Glied beschalten. Dieses legt die Chopperfrequenz für die Stromregelung fest. Für die Stromregelung wird üblicherweise ein Poti an Pin 15 (Vref) verwendet, damit kannst du dann auch je nach Bedarf den Strom einstellen. Dieser braucht noch einen Vorwiderstand, da Vref laut Datenblatt zwischen 0 und 3V liegen soll.

linuxer7
24.11.2011, 13:54
Ja habe ich inzwischen auch so gemacht. Nun funktioniert es. Aus Fehlern lernt man eben :) Nun ist mir auch klar wieso das beim letzten mal ging ohne Pin 16. Da hatte ich keine Strombegrenzung in der Schaltung. Vielen Dank nochmal für eure Unterstützung. Gruß Thomas

linuxer7
28.11.2011, 10:25
Hallo Leute ich weiß eigentlich sollte ich einen neuen Thread aufmachen, aber ich denke das Problem gehört auch dazu.
Ich habe jetzt meine Motoren an der Schaltung am laufen. Die Schaltung arbeitet soweit auch. Nur habe ich nun ein kleines Stromproblem.
Ich benutze für die Schaltung und die Motoren ein 550W ATX-PC-Netzteil.
Die 5V für die Logik und die 12V für die Schritt-Motoren und den Fräsmotor (Proxxon 1A).

Ich habe beim Reichelt folgende Motoren gekauft.

http://www.reichelt.de/Schrittmotoren/QSH4218-40-033/index.html?;ACTION=3;LA=5011;GROUP=C39;GROUPID=329 9;ARTICLE=62653;OFFSET=1000;SORT=artnr

Laut Aufschrift ziehen sie 1A "pro Strang", das ist doch richtig, oder?
Bei 2 Strängen sind das 2A pro Motor.
Bei 3 Motoren wären das so um die 6A.

So und nun das seltsame, mein Netzteil Pfeift und die 12V-Spannung bricht ein.
Ich habe am Spannungseingang meiner Schaltung einen Sicherung. Da ich nichts anderes hatte habe ich den 12V-Eingang mit einer F2A abgesichert. Ich dachte mir bei bei zuviel Last fliegt die halt dann raus ist auch nicht schlimm. Die Sicherung steht wie ne 1.

Ich habe den Strom immer weiter gesenkt und bin jetzt bei einer Referenzspannung von 180mV angekommen.

Der Strangstrom richtet sich doch nach VREF.
Also bei 0.51 Ohm Widerstand und einer VREF von 180mV sind das um die 350mA pro Strang.
Also pro Motor 0,7A das ganze mal 3 = ca. 2,1 Ampere.

Sind alle 3 Motoren angeschlossen dann Pfeift das Netzteil und die Spannung bricht auf 11,8 Volt zusammen.
Laut Aufschrift des Netzteiles sollte die 12V Schiene bis 30 Ampere liefern.
Ich habe das Gefühl das wenn alle 3 Motoren (Haltemoment) laufen dann fliegt mir über kurz oder lang das Netzteil um die Ohren.

Habe ich da irgend etwas Übersehen?
Muß ich am Netzteil die 3,3V noch belasten damit die Regelung des Netzteiles sauber Arbeitet?
Die 5V des Netzteiles versorgen mir die Schaltung und die 2 hellen LED's der Beleuchtung.

Gruß
Thomas

Jakob L.
29.11.2011, 13:13
11,8V am 12V-Ausgang des Netzteils ist noch völlig OK. Laut ATX-Spezifikation sind Abweichungen von +-5% erlaubt. Bei 12V ist also alles zwischen 11,4V und 12,6V im Rahmen.

Bist du sicher, dass das Pfeiffen vom Netzteil und nicht von deiner Schaltung oder den Motoren kommt?

Manche Netzteile brauchen eine gewisse Mindestlast (insbesondere bei +5V). Manchmal ist die Mindestlast auf dem Typenschild angegeben. Ansonsten könntest du versuchen, den 5V-Ausgang des Netzteils einfach mit ca. 0.5A zu belasten (z.B. mit einem Lastwiderstand oder einer 12V-Glühbirne). Falls du ein Oszilloskop hast, dann kannst du damit prüfen, ob die Ausgangsspannung des Netzteils schwingt.

linuxer7
30.11.2011, 09:10
Guten Morgen Jakob. Du hattest recht das Pfeifen/Zwitschern kommt von den Schrittmotoren nicht vom Netzteil. Wenn ich einen Motor dran habe dann funktionert der Motor ohne Probleme. Hänge ich jedoch einen zweiten dran dann zwitschern beide Motoren stärker und die Motoren ruckeln aber laufen nicht. So als ob sie zu wenig Saft bekommen würden. Die Spannung bleibt aber konstant. Mein Oszi hat leider vor Monaten den Geist aufgegeben. Ich habe im Programm EMC2, 3 Parameter an denen ich etwas verstellen kann. Das eine ist die die Acceleration mm/sec² : 7mm/sec Das andere ist die Velocity mm/sec : 100-200 mm/sec² Das Dritte ist der Treiber an sich, wo ich folgende Parameter ändern kann. Step Time : 5000ns Step Space : 5000ns Direction Hold : 20000ns Direction Setup : 20000ns Und ich denke in meinem Fall liegt hier der Hund begraben. Ich habe nur keine Ahnung was ich im dritten eintragen/ändern soll. Ich muß mal Tante Google fragen. Gruß Thomas

mausi_mick
30.11.2011, 09:27
Hallo Linuxer7

Ich glaub nicht , dass das mit den Parametern zu tun hat.
Ich vermute, dass die Spannung an den L298 nicht stabil ist und das das irgendwie schwingt. Du brauchst möglichst kurze, dicke +- Leitungen vom Netzteil (12V) zu den L298 Spannungsversorgungspins.
Ich hab auch den Eindruck, dass da auch ein wenig mit den Kondensatoren gespart wurde. Ich würde jedem L298 in der Nähe der Versorgungspins einen Elko von mindestens 2000 µF spendieren, vielleicht auch jeweils eine strake (5A) Shottky-Diode vorsetzen, sodass die Versorgungen total getrennt sind . Die 5V Versorgungen sollten auch stabiliesiert sein (ist aber wohl?).


Gruss mausi_mick

linuxer7
30.11.2011, 09:53
Guten Morgen Mausi_mick. Ich habe jetzt etwas mit den Einstellungen herum gespielt und alle Werte der 3.ten Parameter auf 2000ns gesetzt. Nun funktioniert es und das Zwitschern ist auch weg. Aber Du hast nicht unrecht. Ich sollte die l298 etwas puffern. Da habe ich nämlich überhaupt keine Kondensatoren vor dem IC. Beim l297 sitzen jeweils 100nf davor. Auch sollte ich die Leitungen überarbeiten. Die l298 werden zwar direkt versorgt aber nur mit 1mm². Ich war der Ansicht das sollte eigentlich reichen. Ich wollte den Strom ja nicht so hoch fahren. Momentan fahre ich mit 600mA Pro Phase und die Motoren ziehen die beiden Schlitten ohne Probleme. Wie es nachher aussieht wenn alles unter realen Bedingungen läuft wird sich zeigen. Gruß Thomas

Geistesblitz
30.11.2011, 11:03
Auch wenn sich das Problem schon gelöst hat: Hast du bei den L297 die Sync.-Pins wie im Datenblatt verbunden? Wenn man das nicht macht soll es auch zu Störungen der Stromregelung kommen können. Hätte erst darauf getippt, aber anscheinend lag das Problem ja doch woanders.

linuxer7
01.12.2011, 08:46
Hallo Geistesblitz. Nein die Sync-Lleitungen habe ich nicht verbunden. Ich ging davon aus das die nicht benötigt werden weil ich das Signal ja nicht auswerte. Ich werde die nachher mal verbinden. Vielleicht löst das mein Problem ja. Weil das Ding läuft nämlich noch nicht richtig. Ich habe immer wieder Aussetzer. Mal funktioniert es und mal "stottert" ein Motor. Ich verstehe noch nicht genau wieso. Die Spannung scheint soweit ich das beurteilen kann stabil zu sein. Ich habe leider kein Oszi um die Spannung zu beobachten. Gruß Thomas

linuxer7
05.12.2011, 11:11
Hallo Leute, ich bekomme noch graue Haar bei dieser Aktion. Also die Schaltung läuft soweit. Die Motoren lassen sich jetzt auch ansteuern, und das "Gezwitscher" ist auch weg. Sync-Leitungen verbunden und die Versorgungsspannungen des L298 mit 100nF "gebügelt" Nur ein Problem habe ich noch. Die Motoren ändern plötzlich die Richtung. Keine Ahnung wieso. Das Signal am Pin 17 vom L297 ist stabil soweit ich das beurteilen kann. Ein Oszi habe ich leider nicht mehr. Nur mein Messgerät. Ich habe sogar Pin 17 über einen 10K Pulldown fest angebunden. Wenn ich die Richtungstaste drücke läuft der Motor los. Lasse ich die Taste los und drücke sie erneut dann kann es sein das der Motor plötzlich in die andere Richtung läuft. Der Pin 17 aber sein Potential nicht geändert hat. Das heißt er bleibt entweder auf Null oder 5V Ich hätte ja den L297 in verdacht wenn nicht alle 3 den selben "Fehler" hätten. Hat irgendwer ne Idee woran das liegt? Hoffende Grüße Thomas Wieso der Text hier so eingerückt/gestaucht ist verstehe ich nun auch nicht???

Geistesblitz
05.12.2011, 12:31
Hast du irgendeine Möglichkeit, zu gucken, ob an beiden Phasen des Motors das richtige Signal anliegt? Ansonsten mal nur eine Phase des Motors anschließen und probieren. Wenn bei einer Phase der Motor nicht surrt, sondern sich gar nichts tut, kommt dort die Spannung nicht richtig an. Dann müsste irgendwo in der Elektronik was nicht in Ordnung sein, vll. sogar L298 kaputt. Oszi würde natürlich vieles vereinfachen. Ansonsten, Anschlüsse der Phasen versehentlich vermischt? Sonst fiele mir nichts ein, was den Motor plötzlich umdrehen lassen könnte.

linuxer7
05.12.2011, 13:34
Hallo Geistesblitz.

Die Phasen sind nicht vertauscht. Die Motoren laufen ohne zu stocken oder stottern.
Nur reagieren alle drei nicht immer auf die Richtungsänderung.

Mir fällt gerade ein das ich alle drei l298 auf einem Kühlblech habe. Ich habe sie einzeln gegen Masse gemessen und festgestellt das das "Wärmeleitblech", oder wie man das auch immer nennt, auf Masse liegt.

Macht das etwas aus?

Ich werde Morgen mal die Kabel der Motoren mit der Schaltung verlöten um einen besseren Kontakt zu gewährleisten. Mal sehen ob es etwas bringt.
Ansonsten gehen mir langsam die Optionen aus.

Das alle L297/L298 auf einmal defekt sind glaube ich nicht. Das wäre auch ein Horror Szenario die Dinger zu tauschen. :(
Die L297 sind ja gesockelt da macht es nichts, aber die L298 .......

Was als letzte Option noch bliebe wäre die Pins 17 und 18 (Richtung und Takt) über einen Optokoppler vom PC zu trennen, (Was man normalerweise sowieso machen sollte ich weiß ;) ), um einen sauberen Signalpegel zu bekommen.

Gruß
Thomas

T4Sven
06.12.2011, 02:30
Optokoppler hab ich nie verwendet, ich hab auch nie gehört das es jemand den LPT Port zerschossen hat? Haben deine Motoren zugkraft ? wechseln sie die richtung wenn du sie etwas per hand abbremst ? So war es mal bei mir, dann fehlt dir eine Leitung von einer Phase. Das man die Sync leitung verbidet hab ich auch noch nie gehört hab die immer öffen gelassen. Das kühlblech dürfte kein Problem darstellen habs damals auch auf einem Kühlkörper montiert.

mausi_mick
06.12.2011, 04:43
Hallo linuxer7,

Ferndiagnose ist etwas schwierig !

Vielleicht kann man mal testen, ob die Motoren sich auch so verhalten, wenn sie das links/rechts-Signal nicht vom PC/MP, sondern direkt über Schalter (0V+5V) erhalten.
Auch gibt es wohl die Möglichkeit, bei gleichen/gleichstarken? Motoren die Syncleitungen zu verbinden und nur ein RC-Glied für den Oszillator zu verwenden. Hab aber keine Ahnung, ob sich das in diesem Fall positiv auswirkt.

Dann noch ein paar Kritikpunkte, wobei vielleicht einige davon bereits realisiert ist.

- ein 12V PC-Netzteil für L298 ungünstig, da intern an den Kollektoremitterstrecken bereits typisch bei 1A 2,5V , bei 2A 3,7V abfallen, die dann nicht mehr dem Motor zur Verfügung stehen.
auch ist die 12V Stabilisierung schlecht, da sie meist über die 5V Regelung geht.
Gute recht preiswerte 24V Netzteile gibt's z.B. von Meanwell (u.a. bei Reichelt).
- 100 nF direkt an den Versorgungspins sind wohl notwendig, aber nicht hinreichend. Pro Ampere sollten in der Nähe der Treiber Elkos mit mindestens 1000µF mit kurzen dicken Leitungen zum L298 angebracht werden, die die durch die Motorinduktivitäten hervorgerufenen Spannungsimpulse glätten.
- Die Verbindungen zu den Motoren kurz halten (dürfte bei einer gemeinsamen Platine schwer sein). Kabel verdrillen . Ob man Schrittmotoren auch mit R/C Gliedern entstören kann, bezweifle ich.
- Die Unterbringung und Versorgung der L297 ist vielleicht auch zu überdenken, da sie relativ empfindliche Regelverstärker enthalten.

Du solltest vielleicht mal das Layout der Platine posten


Gruss mausi_mick

linuxer7
06.12.2011, 13:14
Hallo Leute um es gleich vorweg zu nehmen. Es funktioniert :)
Einige deiner Vorschläge Mausi_mick, hatte ich schon umgesetzt. (fette Elko, Kurze dicke Kabel etc.)
Gebracht hat es nix. Was im Endeffekt zum Ziel geführt hat war die Stecker der Motoren durch Schraubklemmen zu ersetzten. Ich hatte die Kabel der Motoren zuerst an den Stiften des Steckers verlötet um sicher zu sein das eine ordentlich Verbindung bestand.
Mit dem Ergebnis das die Motoren plötzlich viel ruhiger und vor allem richtig liefen.
Ich habe dann die Stifte durch klemmen ersetzt und den Versuch wiederholt.

Wie gesagt es funktioniert einwandfrei. Was mich noch etwas stört ist das die Motoren etwas pfeifen wenn Sie in der "Haltung" sind.

@T4Sven
Eigentlich benutze ich immer Optokoppler wenn ich meine Hardware über den Parallelen-Port anspreche.
Nur in diesem Fall hatte ich darauf verzichtet weil ich keinen Platz mehr auf meiner Platine hatte.
Und die hat schon Euro-Format :).

Wie gesagt nun funktioniert es. Vielen Dank für Hilfe und Unterstützung.
Nun kann ich meine Layouts endlich bald selber Fräßen.

Gruß
Thomas

Geistesblitz
06.12.2011, 13:28
Das Pfeifen im Stillstand kommt höchstwahrscheinlich von der Stromregelung, die ja schließlich auch nur ein PWM-Signal erzeugt, um den gewünschten Strom einzustellen. Wenn man am Poti zur Stromregelung herumdreht, sollte sich auch die Lautstärke des Pfeifens verändern. Nur aufpassen, dass man nicht versehentlich zu weit aufdreht.