Forum: Mikrocontroller und Digitale Elektronik ATXMEGA Single-Slope für Schrittmotor


von Martin (Gast)


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

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.