Forum: Mikrocontroller und Digitale Elektronik Mikroschrittbetrieb mit L6208


von Jens W. (jensw)


Lesenswert?

Hallo Forum,

ich habe ein Problem mit meiner Schrittmotorsteuerung.
Ich möchte den Motor im Mikroschrittbetrieb fahren. Ich brauche diese 
Auflösung.
Als Brückenendstufe verwende ich einen L6208. Die Stromsollwerte gebe 
ich über einen DAC aus. Als Controller verwende ich einen Atmega16.
Ich habe von Atmel die Application Note umgesetzt um den Motor mit 
Start- und Bremsrampen zu betreiben und bin dabei den Code zu erweitern, 
dass der Motor im Mikroschrittbetrieb fährt.
Ich verwende der Bequemlichkeit eigene Tabellen für Sinus und Cosinus. 
Dann muss ich zur Laufzeit kein Werte oder Phasenverschiebungen mehr 
berechnen.
Jetzt zum Problem:
Wenn ich den Motor in die eine Richtung laufen lasse, dann scheint das 
Ganze zu funktionieren. Wenn ich nun die Drehrichtung umschalte, dann 
ruckelt der Motor nur noch. Es scheint so als ob er die Mikroschritte 
noch in die Richtung macht in der das Mikrostepping funktioniert und 
dann rückt er einen ganzen Schritt in die andere Richtung (in der er 
eigentlich drehen soll).
Der L6208 wird normalerweise über Takt und Richtung gesteuert und das 
nutze ich auch um die Phasenströme weiter zu schalten. Dazu ist er im 
Vollschrittmodus eingestellt.
Das die Umschaltung der einzelne Zustände nicht richtig ist würde ich 
ausschließen. Das habe ich mir am Oszi angesehen und ich bekomme immer 
die steigenden Flanken am Clock wenn ich sie auch brauche. Das ist auch 
in beiden Richtungen richtig.
Wenn ich bei der Drehrichtungsumkehr die Werte am DAC von Sinus und 
Cosinus vertausche, dann scheint es auch zu funktionieren. Nur ruckt der 
Motor beim Umschalten an eine andere Position (klar, der Winkel passt ja 
auch nicht. Das ist ja um 90° verschoben).
Kann mir da jemand auf die Sprünge helfen? Ich finde auch sonst in den 
Applikation Notes nichts zur Drehrichtungsumkehr. Auch keinen 
Beispielcode.
Oder vielleicht kann mir jemand sagen, was ich noch mit dem Oszi messen 
kann um da weiter zu kommen?

Vielen Dank im Voraus!

Grüße, Jens

von Jens (Gast)


Lesenswert?

Also ich bin selber darauf gekommen.
Manchmal hilft einfach eine Nacht drüber zu schlafen.
Und wie es so ist, liegt der Fahler da wo man ihn nicht vermutet.
Da der L6208 seine States immer mit einer steigenden Flanke am Clock 
umschaltet ist er bei der Drehrichtungsumkehr in einen falschen State 
gesprungen. Nur beim Umschalten hat er die Polarität der Clock-Leitung 
geändert und das ist falsch. Das hat er schon als Signal gewertet und 
ist eines weiter gesprungen.
Am Oszi hat man das nicht gesehen, weil man nicht genau auf den 
Umschaltpunkt triggert. Während er dann verfährt kommen die Pulse 
richtig nur ist er schon in einem falschen Zustand aber die Signale 
sehen richtig aus.

Grüße, Jens

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.