Schrittmotor mit L6219 macht Probleme im Halbschritt

#2602220
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.
Angehängte Dateien:
#2602302
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???
#2602312
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.
#2604068
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren