Forum: Mikrocontroller und Digitale Elektronik Schrittmotor mit L6219 macht Probleme im Halbschritt


von Mark M. (mom-jovi)


Angehängte Dateien:

Lesenswert?

Ich möchte einen Schrittmotor (Minebea-Matsushita 17PM-K403-02VS) mit 
dem L6219 ansteuern. Der Vollschritt funktioniert, auch wenn die 
Strombegrenzung laut Messung am Sense-Widerstand nicht oder nur 
teilweise zu greifen scheint (siehe Foto, dort ist Io auf 1/3*Imax 
eingestellt mit Imax=500mA, Rs=1Ohm).

Auch der Mikroschritt funktioniert mit der Sequenz aus diesem Beitrag:
Beitrag "Re: Schrittmotor mit L6219 und tiny2313 - Microstepping funktioniert nicht"
Der Motor läuft mit Mikroschritt ein wenig unrund (1-2 stärkere Schritte 
und 4 schwache oder so), aber er läuft im Kreis und wenn die Schritte 
gezählt werden, kommt man mit 1200 auch einmal um 360° (Moto hat 1,8° 
Vollschritte).


Aber der Halbschritt macht einfach Probleme: Ein Dauerlauf ist nicht 
möglich, die Welle ruckelt hin und her, macht manchmal 3-4 Schritte in 
eine Richtung, dann gehts wieder rückwärts :( Ich habe mir die 
Feldvektoren schon zigmal aufgezeichnet und nach Fehlern gesucht, auch 
eine Änderung der Strombegrenzung hilft nichts - wobei ich ja eh nicht 
weiß, ob die funktioniert (s. oben). Beim schrittweisen Debuggen ist es 
gleich, manche Schritte werden sogar ausgelassen.

Für den Halbschritt habe ich die Sequenz aus dem Datenblatt des L6219 
implementiert:
1
0x37
2
0x36
3
0x1E
4
0x16
5
0x17
6
0x12
7
0x1A
8
0x32

ACHTUNG: Meine Belegung ist die folgende:
Bit:  7  6  5   4   3   2   1   0
Fkt:  x  x  Ph2 I12 I02 Ph1 I11 I01

Hat jemand eine Idee? Meine Schritte kommen im Abstand vom Bereich 
1-100ms.

von STK500-Besitzer (Gast)


Lesenswert?

Mark M. schrieb:
> Für den Halbschritt habe ich die Sequenz aus dem Datenblatt des L6219
> implementiert:0x37
> 0x36
> 0x1E
> 0x16
> 0x17
> 0x12
> 0x1A
> 0x32

Eine noch unübersichtlichere Darstellung hättest du nicht finden können, 
oder?

von spess53 (Gast)


Lesenswert?

Hi

>Für den Halbschritt habe ich die Sequenz aus dem Datenblatt des L6219
>implementiert:

Nein hast du nicht. Im Diagramm vom Datenblatt sind I01 und I02 
permanent auf H. Bei dir sind sie permanent auf L.

MfG Spess

von Mark M. (mom-jovi)


Lesenswert?

Sorry :) Das war halt das, was ich in meiner LUT stehen hab.

Hier in 0en und 1en:

Bit:  7  6  5   4   3   2   1   0
Fkt:  x  x  Ph2 I12 I02 Ph1 I11 I01
-----------------------------------
            1   1   0   1   1   1
            1   1   0   1   1   0
            0   1   1   1   1   0
            0   1   0   1   1   0
            0   1   0   1   1   1
            0   1   0   0   1   0
            0   1   1   0   1   0
            1   1   0   0   1   0

Wieso funktioniert der Mikroschritt denn zumindest ansatzweise, aber der 
blöde Halbschritt nicht???

von Mark M. (mom-jovi)


Lesenswert?

STK500-Besitzer schrieb:
> Eine noch unübersichtlichere Darstellung hättest du nicht finden können,
> oder?

Sorry :) Das war halt das, was ich in meiner LUT stehen hab.

Hier in 0en und 1en:

Bit:  7  6  5   4   3   2   1   0
Fkt:  x  x  Ph2 I12 I02 Ph1 I11 I01
-----------------------------------
            1   1   0   1   1   1
            1   1   0   1   1   0
            0   1   1   1   1   0
            0   1   0   1   1   0
            0   1   0   1   1   1
            0   1   0   0   1   0
            0   1   1   0   1   0
            1   1   0   0   1   0


spess53 schrieb:
> Nein hast du nicht. Im Diagramm vom Datenblatt sind I01 und I02
> permanent auf H. Bei dir sind sie permanent auf L.

Damit hab ich ja lediglich einen anderen Maximalstrom.

von STK500-Besitzer (Gast)


Lesenswert?

Druck dir am besten das Diagramm "Figure 4" des Datenblattes
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000092.pdf
aus und schreib dir die Wertigkeiten deines Ports an die einzelnen 
Signale.

von Mark M. (mom-jovi)


Lesenswert?

STK500-Besitzer schrieb:
> Druck dir am besten das Diagramm "Figure 4" des Datenblattes
> http://www.st.com/internet/com/TECHNICAL_RESOURCES...
> aus und schreib dir die Wertigkeiten deines Ports an die einzelnen
> Signale.

Das habe ich schon zigmal gemacht. Ich bin mir bei der Schrittfolge 
wirklich sicher und sehe das Problem entweder beim Motor oder beim 
Treiber. Ich habe aber mehrere Treiber zur Verfügung und das Problem ist 
immer dasselbe.

Nun habe ich die Schritte mal einzeln durchgebuggt und habe 
festgestellt, dass der Fehler absolut reproduzierbar ist: die gleichen 
Stufen zeigen immer dasselbe Verhalten:

x    kein Schritt, oder kaum sichtbar
-->  Schritt in die eine Richtung
<--  Schritt in die andere Richtung

Bit:  7  6  5   4   3   2   1   0
Fkt:  x  x  Ph2 I12 I02 Ph1 I11 I01   I2max/mA   I1max/mA    Reaktion
-----------------------------------------------------------------------
            1   1   0   1   1   1     333          0         x
            1   1   0   1   1   0     166        166         -->
            0   1   1   1   1   0       0        333         x
            0   1   0   1   1   0    -166        166         x
            0   1   0   1   1   1    -333          0         <--
            0   1   0   0   1   0    -166       -166         -->
            0   1   1   0   1   0       0       -333         x
            1   1   0   0   1   0     166       -166         x

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Ich würde erstmal sicherstellen, dass die Stromregelung richtig 
funktioniert, und zwar für alle 4 Vollschritte in einem Zyklus. Sonst 
ist alles andere zielloses Probieren.

Mit freundlichen Grüßen
Thorsten Ostermann

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.