Hallo, ich möchte eine Schrittmotorsteuerung mit einem STM32F103 und der Library von ST realisieren. https://www.st.com/en/embedded-software/stsw-stm32018.html Der Controller ist scheinbar speziell dafür ausgelegt. Laut der Beschreibung ist es möglich 19 Motoren gleichzeitig zu betreiben. Ich komme nur auf 16, 4 Timer mit jeweils 4 Channels. Das wäre auch nicht das Problem, 16 würden reichen, wahrscheinlich auch weniger aber es soll Ersatz für einen bisherigen MC68332 Controlleer sein, der eine TPU mit 16 Timer hat. Auf alle Fälle, ist mir nicht klar, wie die 4 Motoren, die an einem Timer hängen, zur gleichen Zeit mit unterschiedlicher Geschwindigkeit fahren sollen. Auch das fahren von Rampen, während ein anderer Motor läuft, ist doch nicht möglich, da eine Veränderung der Timerperiode auch die anderen Motoren beeinflusst. Hat vielleicht jemand eine Idee?, ich kann mir nicht vorstellen, daß das von Seitens ST so gemeint ist.
MayerKurt schrieb: > Laut der Beschreibung ist es möglich 19 Motoren gleichzeitig zu > betreiben. Die Zahl "19" kommt im gesamten Dokument nicht vor. Woher stammt sie? Die Application note sieht erst einmal so aus, als könne mit dem Beispiel-Quelltext ein Motor mit Rampen gesteuert werden auf Timer TIM2.
Abschnitt 2.1.1, ist ausgeschreiben "nineteen" Ja, das Beispiel ist nur für einen Motor. Ich wollte es jetzt erweitern für mehrere Motoren und die Möglichkeit eine direkte Anzahl von Schritten zu fahren, im Beispiel geht das ja nur für eine gewisse Zeit.
Tatsache. Hatte ich überlesen Das klingt für mich erst einmal weit hergeholt. Klar kann ich mit einem Timer problemlos x Motoren per Bitbanging ansteuern, aber woher die ziemlich konkrete Zahl "19" bezogen auf vier Timer herkommen soll (medium density device), ist mir auch ein Rätsel.
:
Bearbeitet durch User
Man muß nicht zwangsläufig einen Timer für jeden Motor verwenden, eine Zeitbasis für Alle sollte ggf. ausreichend sein, wobei mich mir 19 Stück auf einmal evtl. nicht vornehmen wollen würde. Ein durchlaufender Timer mit konstanter Frequenz soltle es tun, man muß nur für jeden Motor die Ticks mitzählen die bis zum nächsten Stepimpuls vergehen müssen. Dazu würde ich ein Timersystem in Software implementieren, ich weiß das es Sowas für AVR gibt, Jörg hat das mal geschrieben. Dazu wird jeder Software Timer mit einem Handle und einer Callback Funktion bei abgelaufener Zeit implementiert. Jeder Motor belegt dann einen solchen Software-Timer. Gruß, Holm
Walter T. schrieb: > aber woher die > ziemlich konkrete Zahl "19" bezogen auf vier Timer herkommen soll Ich glaube, ich habe die Lösung gefunden: http://dilbert.com/strip/2008-05-08
Die 19 beziehen sich vermutlich auf die vorhandenen I/Os, sie faseln was von 80 IO Pins die zur Verfügung stehen, je Motor je eine Leitung für Step, Dir, Full/Half Step und decay-mode, dazu kommen dann noch Enable und Reset für die Treiber. Effiziente Schrittsynthese kann man in einem fixen Timer-Raster, z.b. 200kHz, mit DDS machen.
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.