Forum: Mikrocontroller und Digitale Elektronik L297/L298 und Atmega64


von 1.8Degrees (Gast)


Lesenswert?

Guten Tag zusammen!

Ich hätte eine kleine Frage an euch:

Ich habe die allseits bekannte Schaltung mit dem L298/L297 aufgebaut 
(Schrittmotortreiber), für die unter euch, die sie nicht kennen:

http://www.google.ch/imgres?imgurl=http://www.roboternetz.de/bilder/l298standard.jpg&imgrefurl=http://www.roboternetz.de/community/threads/773-Schrittmotor-ansteuern-mit-L298-und-L297&h=445&w=600&sz=66&tbnid=JkVaKsjmZybSrM:&tbnh=90&tbnw=121&prev=/search%3Fq%3Dl297%26tbm%3Disch%26tbo%3Du&zoom=1&q=l297&usg=__x76Gjkg7YmXsHFZsUGoI4TFRTcs=&docid=G43ydPEr-C_h_M&sa=X&ei=6jeFUKjED5ORhQeK6oGgDw&ved=0CEkQ9QEwAw&dur=387

Klappt auch alles ganz oke, steuern tu' ich das Ganze mit einem 
Atmega64.
Nun habe ich einfach partout keine Ahnung, wie schnell ich das Ganze 
laufen lassen kann.

Im Datenblatt des L297:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000063.pdf

finde ich zwar die Angaben Clock Time (0.5µS) und Reset to Clock delay 
(1µS), allerdings ist das sowieso viel zu schnell für meinen 
Schrittmotor, da ich den im Full Step Mode betreibe.

Ein Blick ins Datenblatt des L298 verrät mir ausserdem:

http://pdf1.alldatasheet.com/datasheet-pdf/view/22437/STMICROELECTRONICS/L298.html

Source Current Turn-on Delay: 2µS
Source Current Fall Time: 0.2µS

Also auch hier, eine eigentlich sehr hohe Geschwindigkeit.

Nun aber folgendes: Mit meinem Schrittmotor (irgendwas von JAPAN SERVO 
CO LTD -> Typenbezeichnung: KH42JMB035) habe ich einfach mal im Programm 
die Geschwindigkeit immer ein wenig erhöht. Nun mein Problem: Als ich 
mit dem Clock Delay unter 100µS gegangen bin ist mir mein Treiber (L298) 
abgeraucht. Grosse Verwirrung, wie kann das sein? Und wie finde ich 
heraus, wie schnell ich den laufen lassen kann/darf?

Noch als zusätzliche Info: Vref am L297 kann ich zwischen 0-3V 
einstellen. Ist das ein geeigneter Bereich?

Gruss und Danke im Voraus!!

von 1.8Degrees (Gast)


Lesenswert?

Kleine Korrektur: Als ich in meinem Programm  unter 1000µS -> also 1ms 
gegangen bin ist der Treiber abgeraucht.

von 1.8Degrees (Gast)


Angehängte Dateien:

Lesenswert?

Und weil schliesslich niemand gerne sucht, hier noch als Bilder 
angehängt.

von mr. mo (Gast)


Lesenswert?

Was hast du mit den Anschlüssen von Sync, Home etc. gemacht? Welche 
Werte hat dein Shunt? Welches Vref hast du eingestellt?!

Ein echter Schaltplan von deinem Aufgabau bzw. noch optional ein Foto 
deines Aufbaus wird die Leute motivieren dir zu helfen. :)

von mr. mo (Gast)


Lesenswert?

Noch vergessen:
Welche Ausführung des L298 hast du da? Besitzt der einen Kühlkörper?
Welche Motorspannung hast du? Was zieht der für gewöhnlich?

von 1.8Degrees (Gast)


Angehängte Dateien:

Lesenswert?

mr. mo schrieb:
> Was hast du mit den Anschlüssen von Sync, Home etc. gemacht?

Sorry, hier noch ein Ausschnitt aus der Schaltung :)
Vref habe ich so ein bisschen durchprobiert, Poti ein wenig verstellt. 
Leider habe ich noch nicht ganz verstanden, was Vref bewirkt - 
vielleicht kann mich da ja jemand aufklären. H/F, CNTRL, HOME, DIRECTION 
und CLOCK gehen jeweils auf den ATMEGA64. Als Probeeinstellung habe ich:

Direction: 0 (CCWW)
H/F      : 0 (FULL)
CNTRL    : 1
CLOCK    : Takt wie oben beschrieben

Ach ja, in der Schaltung ist noch ein Fehler (bzw. im Bauteil), der 
Reset des L297 ist aktiv LOW, deshalb ist der auch an VDD gehängt :)

mr. mo schrieb:
> ein Foto
> deines Aufbaus wird die Leute motivieren dir zu helfen. :)

Aufbau sollte in Ordnung sein, Foto habe ich leider im Moment keines, 
ist allerdings eine fertige Platine also nix freiluftverdrahtet oder 
ähnliches.

von 1.8Degrees (Gast)


Lesenswert?

mr. mo schrieb:
> Welche Ausführung des L298 hast du da?

Multiwatt mit grossem (zu grossem -> lag rum) Kühlkörper. Wird 
normalerweise im momentanen Betrieb nicht sehr warm.

Strom ziehe ich unterschiedlich, je nach Vref. Meistens bewegt sich der 
Strom aber um die 600mA im Stillstand und um die 500mA in Bewegung.

von mr. mo (Gast)


Lesenswert?

1.8Degrees schrieb:
> Leider habe ich noch nicht ganz verstanden, was Vref bewirkt -

Damit kannst du im Chopperbetrieb den Strom einstellen.

Hast du im RoboternetzWiki unter dem Stichpunkt "Schrittmotor" mal 
reingeschaut? Da wird genau die Schaltung sehr ausführlich durchgekaut. 
Evtl. fällt dir da was auf.

In deinem Schaltplan fällt mir spontan nichts auf, ausser das deine 
Pull-Down Widerstände sehr hochohmig sind. Du sagst ja, dass du 
versuchst den Clock schneller laufen zu lassen damit der Motor schneller 
dreht, evtl. haust du dir da Störungen rein durch die zu hochohmigen 
Pull-Downs. Teste mal z.B. 10k. Was erhoffst du dir von den Kerkos 
parallel zu den Pull-Downs?

Den Elko an den 24V musst du evtl. noch etwas erhöhen, aber das ist 
nicht so das Problem.

von spess53 (Gast)


Lesenswert?

Hi

>Vref habe ich so ein bisschen durchprobiert, Poti ein wenig verstellt.
>Leider habe ich noch nicht ganz verstanden, was Vref bewirkt -
>vielleicht kann mich da ja jemand aufklären.

Mit VREF stellst du den Strom ein. VREF wird mit den Spannungen an Sens1 
und 2 verglichen. Überschreitet die Spannung an SENS VREF schaltet die 
Treiberstufe ab und wenn der Strom wieder niedriger ist wird wieder 
eingeschaltet.

MfG Spess

von 1.8Degrees (Gast)


Lesenswert?

Elko wurde bereits durch 470µF ersetzt, aber wie du sagst: Ende der 
Fahnenstange :)

mr. mo schrieb:
> evtl. haust du dir da Störungen rein durch die zu hochohmigen
> Pull-Downs. Teste mal z.B. 10k. Was erhoffst du dir von den Kerkos
> parallel zu den Pull-Downs?

Dazu muss ich sagen: Das ist ein wenig gebastelt. Ich habe bei meinem 
Testaufbau gemerkt, dass das Teil nur funktioniert, wenn ich mit der 
Sonde des DSO messe.. also einfach eine Sonde "simuliert" und siehe da 
-> es funktioniert.

Die feine Art ist das natürlich nicht.

mr. mo schrieb:
> Hast du im RoboternetzWiki unter dem Stichpunkt "Schrittmotor" mal
> reingeschaut? Da wird genau die Schaltung sehr ausführlich durchgekaut.


Super, das ist wirklich toll erklärt.

> Evtl. fällt dir da was auf.

Was meinst du damit?

Gruss

von 1.8Degrees (Gast)


Lesenswert?

Danke für die Erklärung, spess53. Zusammen mit dem Link von mr.mo habe 
ich nun die Funktion von Vref verstanden!

von Maik F. (sabuty) Benutzerseite


Lesenswert?

1.8Degrees schrieb:
> Elko wurde bereits durch 470µF ersetzt, aber wie du sagst: Ende der
> Fahnenstange :)
>
> mr. mo schrieb:
>> evtl. haust du dir da Störungen rein durch die zu hochohmigen
>> Pull-Downs. Teste mal z.B. 10k. Was erhoffst du dir von den Kerkos
>> parallel zu den Pull-Downs?
>
> Dazu muss ich sagen: Das ist ein wenig gebastelt. Ich habe bei meinem
> Testaufbau gemerkt, dass das Teil nur funktioniert, wenn ich mit der
> Sonde des DSO messe.. also einfach eine Sonde "simuliert" und siehe da
> -> es funktioniert.
>
> Die feine Art ist das natürlich nicht.

Also spätestens jetzt ist ein Bild des Aufbaus unumgänglich.

von 1.8Degrees (Gast)


Lesenswert?

Wobei..
Auf der Seite steht: Vref = 0.5A (gewünschter Strom des Motors) *1R 
(Widerstand RS)

Ich habe ja 2* Rs, ist da trotzdem der einzelne gemeint?
Also in meiner Schaltung 0.5R?

Gruss

von mr. mo (Gast)


Lesenswert?

1.8Degrees schrieb:
> Dazu muss ich sagen: Das ist ein wenig gebastelt. Ich habe bei meinem
> Testaufbau gemerkt, dass das Teil nur funktioniert, wenn ich mit der
> Sonde des DSO messe.. also einfach eine Sonde "simuliert" und siehe da
> -> es funktioniert.

Ja das lag wohl daran, dass du die Eingänge offen gelassen hattest. Die 
sind dann sehr empfindlich für Störungen. Am besten ersetz deine "Sonde" 
durch einen 10k.

>> Evtl. fällt dir da was auf.
>
> Was meinst du damit?

Das sollte kein Hinweis auf einen Fehler sein, sondern eher das dir 
irgendwas aufällt was du anderes gemacht hast als empfohlen/erklärt 
wurde.

von 1.8Degrees (Gast)


Lesenswert?

Maik Fox schrieb:
> Also spätestens jetzt ist ein Bild des Aufbaus unumgänglich.

Der Testaufbau wurde in die Tonne getreten, diese "Sonden" wurden nur 
Vorsichtshalber auf die Endplatine übernommen.

von 1.8Degrees (Gast)


Lesenswert?

mr. mo schrieb:
> Ja das lag wohl daran, dass du die Eingänge offen gelassen hattest. Die
> sind dann sehr empfindlich für Störungen. Am besten ersetz deine "Sonde"
> durch einen 10k.

Hätte ich das nur vorher schon gewusst :P
Naja jetzt ist der "Fehler" schon drauf.. sollte aber eig. die 
Funktionalität nicht wirklich beeinflussen oder?

mr. mo schrieb:
> Das sollte kein Hinweis auf einen Fehler sein, sondern eher das dir
> irgendwas aufällt was du anderes gemacht hast als empfohlen/erklärt
> wurde.

Ach so hast du das gemeint :)
Ja, die Erkärung für Vref und CONTROL habe ich so noch nirgens gesehen.

Das könnte auch den Fehler erklären.. durch das rumdrehen am Poti könnte 
ich ja 3V eingestellt haben, bei einem RS von 0.5R würde das ja 
eigentlich einen Strom von 6A ergeben. Klar ist der L298 abgeraucht.. 
oder wie sieht ihr das?

Gruss

von Maik F. (sabuty) Benutzerseite


Lesenswert?

1.8Degrees schrieb:
> Wobei..
> Auf der Seite steht: Vref = 0.5A (gewünschter Strom des Motors) *1R
> (Widerstand RS)
> Ich habe ja 2* Rs, ist da trotzdem der einzelne gemeint?

Ja. Die beiden Brücken des L298 haben jeweils eine voneinander 
unabhängige Strommessung.

Zu deinem Problem: Wie sind diese beiden Rs ausgeführt? Also was sind 
das für Widerstände? SMD, Metallfilm, Draht, ...? Ein übermässiger 
induktiver Anteil in diesem Pfad kann zu Problemen führen.

von spess53 (Gast)


Lesenswert?

Hi

>Ich habe ja 2* Rs, ist da trotzdem der einzelne gemeint?
>Also in meiner Schaltung 0.5R?

Bei dir gelten die 0,5R. Die Sensewiderstände sollten induktionsarm 
(also keine Drahtwiderstände) sein und möglichst nah am L298 sein. Ich 
hoffe deine Platine ist in dieser Richtung nicht so wie der Schaltplan 
aufgebaut.

MfG Spess

von Maik F. (sabuty) Benutzerseite


Lesenswert?

1.8Degrees schrieb:
> Das könnte auch den Fehler erklären.. durch das rumdrehen am Poti könnte
> ich ja 3V eingestellt haben, bei einem RS von 0.5R würde das ja
> eigentlich einen Strom von 6A ergeben. Klar ist der L298 abgeraucht..
> oder wie sieht ihr das?


Wenn deine Spannungsquelle das her gibt, ist das eine plausible 
Erklärung.

von mr. mo (Gast)


Lesenswert?

1.8Degrees schrieb:
> Hätte ich das nur vorher schon gewusst :P
> Naja jetzt ist der "Fehler" schon drauf.. sollte aber eig. die
> Funktionalität nicht wirklich beeinflussen oder?

Naja, tausche den 1M gegen 10k und lass den Kerko weg, dann hast das 
soweit gelöst.

> Das könnte auch den Fehler erklären.. durch das rumdrehen am Poti könnte
> ich ja 3V eingestellt haben, bei einem RS von 0.5R würde das ja
> eigentlich einen Strom von 6A ergeben. Klar ist der L298 abgeraucht..
> oder wie sieht ihr das?

Wäre möglich. Nachdem dir nun das meiste klar ist, kannst ja nochmal 
testen und schauen was passiert :P

von 1.8Degrees (Gast)


Lesenswert?

Maik Fox schrieb:
> Ja. Die beiden Brücken des L298 haben jeweils eine voneinander
> unabhängige Strommessung.

Ach so, das ist ja praktisch.

Maik Fox schrieb:
> Zu deinem Problem: Wie sind diese beiden Rs ausgeführt? Also was sind
> das für Widerstände? SMD, Metallfilm, Draht, ...? Ein übermässiger
> induktiver Anteil in diesem Pfad kann zu Problemen führen.

MELF, etwa. 1cm vom L297 entfernt, danach direkt auf die GND-Plane 
geführt.

spess53 schrieb:
> Ich
> hoffe deine Platine ist in dieser Richtung nicht so wie der Schaltplan
> aufgebaut.

Ne, zum Glück nicht :)

Maik Fox schrieb:
> Wenn deine Spannungsquelle das her gibt, ist das eine plausible
> Erklärung.

Ja, war zu Testzwecken "leider" ein 24V/10A Netzgerät. Wobei zu 
"Testzwecken" wohl das falsche Wort ist, eher zur Not.

mr. mo schrieb:
> Naja, tausche den 1M gegen 10k und lass den Kerko weg, dann hast das
> soweit gelöst.

Jo, das mach' ich so.

mr. mo schrieb:
> Wäre möglich. Nachdem dir nun das meiste klar ist, kannst ja nochmal
> testen und schauen was passiert :P

Alles klar, ich werde dann nochmal berichten.

Vielen Dank für eure Hilfe, schön wie schnell einem geholfen wird!

von mr. mo (Gast)


Lesenswert?

1.8Degrees schrieb:
> Ja, war zu Testzwecken "leider" ein 24V/10A Netzgerät. Wobei zu
> "Testzwecken" wohl das falsche Wort ist, eher zur Not.

Wenn schon ein Netzgerät hast, dann begrenze den Strom. Der Motor hat 
dann zwar kein Drehmoment, aber in Bewegung setzen sollte der sich 
dennoch.

von 1.8Degrees (Gast)


Lesenswert?

Äh ne, Netzgerät war das falsche Wort, Netzteil wäre da wohl treffender 
gewesen :)

Ich habe nun den Strom auf 1A begrenzt, allerdings benötigt der Motor 
diesen nur im Stillstand, wenn er sich bewegt ca. 300mA. Sollten diese 
Werte nicht ein bisschen näher beieinander liegen?

PS: Geschwindigkeit ist nun ideal :)

Gruss

von Maik F. (sabuty) Benutzerseite


Lesenswert?

1.8Degrees schrieb:
> Maik Fox schrieb:
>> Zu deinem Problem: Wie sind diese beiden Rs ausgeführt? Also was sind
>> das für Widerstände? SMD, Metallfilm, Draht, ...? Ein übermässiger
>> induktiver Anteil in diesem Pfad kann zu Problemen führen.
>
> MELF, etwa. 1cm vom L297 entfernt, danach direkt auf die GND-Plane
> geführt.

Welche Baugrösse? Frage geht jetzt allerdings in Richtung 
Verlustleistung. Bei deinen 1 A Ruhestrom sind das ja schon 0.5 W. Aber 
immerhin brennen die MELF ja definiert ab, sehr praktisch in so einem 
Fall ;)

von 1.8Degrees (Gast)


Lesenswert?

Puh, Baugrösse kann ich dir grad nicht sagen aber ist für 1W ausgelegt, 
also ausreichend :)

von mr. mo (Gast)


Lesenswert?

1.8Degrees schrieb:
> : Geschwindigkeit ist nun ideal :)

Also ist dein Problem gelöst?

1.8Degrees schrieb:
> Puh, Baugrösse kann ich dir grad nicht sagen aber ist für 1W ausgelegt,
> also ausreichend :)

Bisschen mehr Puffer sollte man schon lassen. Besser wären 2W, aber der 
wird es auch tun.

von 1.8Degrees (Gast)


Lesenswert?

mr. mo schrieb:
> Also ist dein Problem gelöst?

Ja, mehr oder weniger. Ich verstehe nur noch nicht ganz, weshalb er im 
Stillstand 1A braucht?! Ich dachte der Strom für Stillstand entspricht 
in etwa dem Strom während der Bewegung?

Gruss

von Maik F. (sabuty) Benutzerseite


Lesenswert?

1.8Degrees schrieb:
>Ich verstehe nur noch nicht ganz, weshalb er im
> Stillstand 1A braucht?! Ich dachte der Strom für Stillstand entspricht
> in etwa dem Strom während der Bewegung?

Durch die böse Induktivität kommt der Strom zu spät.

Im Ernst, wenn man die Strombegrenzung vom L298 ausser Acht lässt: Im 
Stillstand hast du den Gleichstromfall, die Wicklungen des Motors werden 
von einem Strom durchflossen, der vom Wicklungswiderstand abhängt. 
Während der Bewegung werden die Wicklungen deutlich kürzer bestromt. 
Desto kürzer diese Bestromung ist, desto mehr kommt die 
Spulen-Eigenschaft der Wicklung zum tragen: Der Strom steigt abhängig 
von der Induktivität mit der Zeit an.

Je schneller man dreht, desto weniger Zeit hat der Strom zum Ansteigen, 
daher ist der Strommittelwert kleiner. Mit dem Oszi an den 
Sense-Widerständen zu messen könnte die Sache veranschaulichen.

Das war jetzt die Erklärung nach dem Motto: Lieber viele Worte als eine 
Formel.

von 1.8Degrees (Gast)


Lesenswert?

Ach so. Dann ist das also normal, dass der Schrittmotor im ruhenden 
Zustand am meisten Strom verbraucht.. irgendwie ironisch.

Maik Fox schrieb:
> Mit dem Oszi an den
> Sense-Widerständen zu messen könnte die Sache veranschaulichen.

Hat es getan, danke für den Tipp :)

Maik Fox schrieb:
> Das war jetzt die Erklärung nach dem Motto: Lieber viele Worte als eine
> Formel.

I(t) = U/R * (1-e^(t/T)) ?

Gruss

von Maik F. (sabuty) Benutzerseite


Lesenswert?

1.8Degrees schrieb:
> Ach so. Dann ist das also normal, dass der Schrittmotor im ruhenden
> Zustand am meisten Strom verbraucht.. irgendwie ironisch.

Deswegen haben schlaue Leute die sog. Ruhestromabsenkung erfunden, die 
im Standfall den Strom reduziert, um den Motor nicht zu arg zu erwärmen. 
Man muss allerdings je nach Anwendung beachten, dass damit auch das 
Haltemoment sinkt.

1.8Degrees schrieb:
> Maik Fox schrieb:
>> Das war jetzt die Erklärung nach dem Motto: Lieber viele Worte als eine
>> Formel.
>
> I(t) = U/R * (1-e^(t/T)) ?

http://de.wikipedia.org/wiki/Spule_(Elektrotechnik)#Zu-_und_Abschaltvorg.C3.A4nge_bei_Gleichspannung

Ja ;)

von 1.8Degrees (Gast)


Lesenswert?

Maik Fox schrieb:
> Deswegen haben schlaue Leute die sog. Ruhestromabsenkung erfunden, die
> im Standfall den Strom reduziert, um den Motor nicht zu arg zu erwärmen.
> Man muss allerdings je nach Anwendung beachten, dass damit auch das
> Haltemoment sinkt.

Hm, habe 2 Anwendungen, bei einer wäre es sinnvoll gewesen, bei der 
anderen brauche ich das Haltemoment. Naja, wird der eben ein bisschen 
wärmer.

Maik Fox schrieb:
> Ja ;)

Verstehe durchaus Formeln :) Habe einfach irgendwie das Prinzip 
Schrittmotor noch nicht so ganz verinnerlicht.

Naja, auf jeden Fall danke, mein Problem ist damit gelöst!

Gruss & einen schönen Abend/Nachmittag

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
Noch kein Account? Hier anmelden.