Hallo Zusammen, Ich habe einen A4988 Schrittmotortreiber, welchen ich gerne mit einem uC ansteuern würde. Mich würde vor allem interessieren, ob meine Idee bezüglich der Ansteuerung des Treibers sinnvoll ist, oder zu sehr vom üblichen Vorgehen abweicht: Den DIR Pin hänge ich an einen normalen GPIO, den STEP Pin verknüpfe ich mit einem PWM Channel eines Timers. Nun möchte ich Rampen fahren können, also berechne ich zuerst die Zeiten für die Rampe und vermindere dann schrittweise die Cycle Time des PWM Kanals, bis ich auf der gewünschten Geschwindigkeit bin, wobei ich immer 50% Duty Cycle verwende. Wie ich genau die einzelnen Parameter der Rampe berechne ist noch offen, es geht mir mehr um die Grundidee und die Machbarkeit damit. Kann ich so sinnvoll einen Stepper ansteuern? Grüsse Bert
Bert S. schrieb: > Kann ich so sinnvoll einen Stepper ansteuern? Ja, sinnvollerweise macht man dies so, die nächste Schrittdauer setzt man dann mit einem der Timer-Interrupts. Einigermaßen schöne Rampen lassen sich allerdings nicht mit 8bit PWM machen, es sei denn man änderst zusätzlich den Frequenzvorteiler, finde ich pers. aber nicht so schön. Besser gleich 16bit Timer vorsehen wenn möglich. Gruß Dominik
Hier findest Du ein paar Schaltungen und Programme: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp3a
Bert S. schrieb: > Nun möchte ich Rampen fahren können, > also berechne ich zuerst die Zeiten für die Rampe und vermindere dann > schrittweise die Cycle Time des PWM Kanals, bis ich auf der gewünschten > Geschwindigkeit bin, wobei ich immer 50% Duty Cycle verwende. Du brauchst keine 50% Duty, sondern nur soviel, wie der Treiber als Mindestpulslänge benötigt. Also nimm dir einen Timer her, setze ein Compare-Register auf nen passenden Wert, so daß das Compare-Signal ausreichend lang ist und setze das Zähl-Ende des Timers entsprechend der jeweils gewünschen Zeit für einen Schritt. Bei solchen Anwendungen sind die Controller der STM32 Riege etwas blöd wegen der in weiten Teilen nur 16 bittigen Peripherie, nimm lieber einen LPC dazu wenn du kannst, denn die sind besser bei 32 Bit Timern. Und bei Rampen bedenke, daß du nicht nur die Anfahr-Rampe brauchst, sondern auch die gegenüberliegende Bremsrampe. W.S.
W.S. schrieb: > Bei solchen Anwendungen sind die Controller der STM32 Riege etwas blöd > wegen der in weiten Teilen nur 16 bittigen Peripherie, nimm lieber einen > LPC dazu wenn du kannst, denn die sind besser bei 32 Bit Timern. Mit Elefanten nach Mücken werfen? Auch 32 Bit Timer können einmal überlaufen. Vielleicht doch besser 64 Bit Timer verwenden? ;-) Einer der obigen Links erzeugt 50 kHz Schrittfrequenz mit einem ATtiny25 @ 8 MHz.
Bert S. schrieb: > den STEP Pin verknüpfe ich > mit einem PWM Channel eines Timers Da erhebt sich die Frage, ob du damit bis zur Frequenz (nahe) Null herunterkommst, du willst ja Rampen fahren. Davon angesehen ist es egal woher die Taktfrequenz kommt. Georg
Bert S. schrieb: > Kann ich so sinnvoll einen Stepper ansteuern? Vielleicht. Wir wissen nicht, was du kannst. STEP auch als normaler Pin und in Software timen würde reichen und macht die Programmierung einfacher.
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.