ATXMEGA Single-Slope für Schrittmotor

Gast #1874641
Lesenswert?

Hallo Leute!


Ich möchte mit einem ATXMEGA einen Schrittmotor ansteuern.
Mit Single-Slope-PWM möchte ich ihm die Schritte vorgeben.

Im Datenblatt kann man den WG Output erkennen.

1.
Ich möchte, dass der Output zu Beginn auf 0V ist.
Dann startet man den Timer. CCx ist auf die halbe Periode
eingestellt.
Erreicht das Timer-Zähl-Register CCx, dann soll der Comp-Output
auf 3,3V umschalten.
Erreicht das Timer-Zähl-Register den Top-Wert, dann soll
der Comp-Output wieder auf 0V umschalten, das Timer-Zähl-
Register auf 0 schalten und ein IRQ ausgelöst werden.
Nach N-Perioden (N-Interrupts) ist somit der Schrittmotor
N-Schritte gefahren. Der Motor reagiert auf die positive Flanke.

2.
Aber im Datenblatt ist die Kurve anders aufgezeichnet. Beim
Start des Timers schaltet der Output sofort auf 3,3V, beim Erreichen
von CCx schaltet der Output auf 0V und nach dem Erreichen von
Top schaltet der Ausgang wieder auf 3,3V.
Wenn ich nun bei Top einen IRQ auslöse, dann ist der Schrittmotor
bereits zwei Schritte gefahren, obwohl ich nur eine Periode
durchlaufen habe.
Der Grund liegt daran, dass der Schrittmotor auf steigende
Flanken reagiert.

Ist es möglich mit den Port-Invert-Register das so zu schalten,
dass die Möglichkeit 1., welche ich oben beschrieben habe, zum
Tragen kommt.
Ich hab gerade einen Denkfehler!?!

Vielen Dank, ich hoffe, ich habe euch nicht zu sehr verwirrt ;-)


Schöne Grüße

Martin

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