Schrittmotor mit L6219 macht Probleme im Halbschritt

OP #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:
OP #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???
OP #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.
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.