Forum: Mikrocontroller und Digitale Elektronik Rechtecksignal zur Schrittmotorsteuerung erzeugen


von HansM (Gast)


Lesenswert?

HAllo zusammen,

Ich möchte gerne mit einem Allegro Motortreiber (A3987) einen 
Schrittmotor ansteuern. Dazu wird laut Datenblatt des Motortreibers 
lediglich ein "Rechteckimpuls" mit einer "High-bzw- Low- Pegellänge von 
je 1us" benötigt.
Das wärer dann ein Rechtecksignal von 500kHz.
Ich habe ein ARM EvalBoard des AT91SAM3U4E zur verfügung.
Jetzt gibt es ja verschiede Möglichkeiten so einen Recteck zu erzeugen.
1) Da der Controller eine PWM Einheit hat, wäre es damit wahrscheinlich 
machbar.
2) Über einen Timer
3) ?

Ich möchte natürlich die Anzahl der Impulse bestimmen können, da diese 
dier Anzahl der Motorschritte entspricht.
Wie würdet Ihr das Lösen ?
Wer hat Erfahrung mit der PWM des o.g. Controllers ?

Vielen Dank

HansM

von spess53 (Gast)


Lesenswert?

Hi

>Das wärer dann ein Rechtecksignal von 500kHz.

Das was der Treiber kann ist relativ uninteressant. Was verträgt dein 
Motor?

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

HansM schrieb:
> HAllo zusammen,
>
> Ich möchte gerne mit einem Allegro Motortreiber (A3987) einen
> Schrittmotor ansteuern. Dazu wird laut Datenblatt des Motortreibers
> lediglich ein "Rechteckimpuls" mit einer "High-bzw- Low- Pegellänge von
> je 1us" benötigt.

Wo hast du diese Angabe her?

Das ist bestimmt die Angabe, was der IC maximal (in dem Fall: minimal) 
kann. Der kann sicher auch mit längeren Pulsen als mit 1µs bzw. 
kleineren Frequenzen umgehen.

von HansM (Gast)


Lesenswert?

HAllo,

vielen Dank für eure Rückmeldung.
@spess53:
Das ist ein wichtiger Punkt. Ich möchte erstmal die Ansteuerung 
hinbekommen. bzw. theoretische Vorüberlegungen. Eins nach dem anderen 
;-)

@Karl Heinz Buchegger
> Wo hast du diese Angabe her?

Ok Du hast Recht, im Datenblatt steht, dass er ein Rechtecksignal von 
mindestens einer 1µs benötigt.

@All:
Aber meine Frage bezog sich eigentlich erstmal aussließlich auf die 
Rechteckgenerierung ?
Wie macht man das am Besten ?

Danke

von spess53 (Gast)


Lesenswert?

Hi

>Aber meine Frage bezog sich eigentlich erstmal aussließlich auf die
>Rechteckgenerierung ?
>Wie macht man das am Besten ?

Du brauchst eine variable Frequenz von (theoretisch) 0Hz bis einige 
100Hz (Sonderfälle möglich). Bei AVRs erzeuge ich so etwas per CTC mit 
einem Timer.
Ob dein ARM das kann entzieht sich meiner Kenntnis.

MfG Spess

von HansM (Gast)


Lesenswert?

Hallo,

also brauche ich eine variable Frequenz um verschiedene 
Geschwindigkeiten zu fahren ?

Was ist CTC ?

DAnke

HansM

von oszi40 (Gast)


Lesenswert?

Es reicht nicht ein Rechtecksignal durch diese induktiven Wicklungen zu 
schicken. Es sollte auch ausreichend Strooom fließen. P=U*I

Wie das geht: Über Schrittmotoransteuerung sind noch einige 100 
nützliche Links im Forum zu finden. z.B. 
Beitrag "Bipolare Schrittmotoren/Ansteuerung"

von HansM (Gast)


Lesenswert?

@oszi40

Das stimmt denke ich so nicht.
Das MotorIc welches ich einsetze ist relativ intelligent. Im Dateblatt 
steht: 1 Puls = 1Motorschritt. Der Puls dient ausschließlich zum treiben 
des Bausteins, nicht zur Leistungstreibung des Motors.

HansM

von spess53 (Gast)


Lesenswert?

Hi

>also brauche ich eine variable Frequenz um verschiedene
>Geschwindigkeiten zu fahren ?

Nicht nur. Du kannst nicht ohne Schrittverluste aus dem Stand auf die 
Endgeschwindigkeit schalten oder abrupt stoppen. Da müssen 
Beschleunigungs-/ Bremskurven gefahren werden.

>Was ist CTC ?

Clear Timer on Compare Match. Das ist ein Timermode (bei AVRs) bei dem 
du den Endwert eines Timers vorgeben kannst. Der Timer zählt bis zu 
diesem Wert, schaltet einen Pin um und fängt wieder von Null an. Damit 
kannst du eine variable Frequenz an dem Pin erzeugen.

>Das stimmt denke ich so nicht.
>Das MotorIc welches ich einsetze ist relativ intelligent.

Aber er weiss nicht, was der Motor macht.
>Im Dateblatt
>steht: 1 Puls = 1Motorschritt. Der Puls dient ausschließlich zum treiben
>des Bausteins, nicht zur Leistungstreibung des Motors.

Aber nur wenn du es richtig machst. Sonst ist ganz schnell 1 Puls <> 
1Motorschritt.

Mach dich bitte erst mal über die Ansteuerung und Eigenschaften von 
Schrittmotoren schlau.

MfG Spess

von Reinhard Kern (Gast)


Lesenswert?

HansM schrieb:
> Dazu wird laut Datenblatt des Motortreibers
> lediglich ein "Rechteckimpuls" mit einer "High-bzw- Low- Pegellänge von
> je 1us" benötigt.

Dann ist es kein Schrittmotor. Die brauchen 2 versetzte Impulse - woher 
soll der Motor sonst wissen, in welche Richtung er einen Schritt machen 
soll?

Gruss Reinhard

von spess53 (Gast)


Lesenswert?

Hi

>Dann ist es kein Schrittmotor. Die brauchen 2 versetzte Impulse - woher
>soll der Motor sonst wissen, in welche Richtung er einen Schritt machen
>soll?

Wenn ein DIR-Eingang vorhanden ist reicht ein Takt.

MfG Spess

von oszi40 (Gast)


Lesenswert?

HansM schrieb:
> 1 Puls = 1Motorschritt

Wenn Theorie und Praxis stimmen schon.
>> je 1us" benötigt.

Schon Goethe sagte dazu: "Der Geist ist willig. Das Fleich ist schwach."

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Reinhard!

Lies doch bitte erstmal genau, bevor du dich zum Thema äußerst. Der OP 
schrieb von einem Motortreiber, nicht von einem Motor. Da reicht 
tatsächlich ein Rechtecksignal (plus Richtungsleitung), wie man dem 
Datenblatt von Allegro leicht entnehmen kann. Diese Art der Ansteuerung 
(Takt/Richtung) ist übrigens typisch für die meisten 
Schrittmotortreiber.

Mit freundlichen Grüßen
Thorsten Ostermann

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.