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