Forum: Mikrocontroller und Digitale Elektronik Schrittmotor mit L6207


von Michael R. (hellm)


Angehängte Dateien:

Lesenswert?

Ich habe vor, einen Schrittmotor mit L6207 anzutreiben. Der MC hat viele 
Pins, deren Bedeutung und Notwendigkeit für meine Schaltung ich nicht 
verstehe. Mit IN, OUT, VS und GND komme ich noch klar. EN bekommt 5V, 
Widerstand und Kapazität und fertig.

Die SENSE-Eingänge sind anscheint für Strombegrenzung des Motors 
gedacht. Brauche ich diese?

VCP und VBOOT muss ich wahrscheinlich nicht anschlissen, oder?

Was mache ich mit VREF und RC? Wozu sind die?

von Düsendieb (Gast)


Lesenswert?

Da ist doch im Datenblatt hinten ein Schaltplan. Der ist das nicht ohne 
Grund

von uwe (Gast)


Lesenswert?

> Die SENSE-Eingänge sind anscheint für Strombegrenzung des Motors
> gedacht. Brauche ich diese?
Ja wenn du willst das der Motor vernüftig im Chopperbetreib läuft!

> VCP und VBOOT muss ich wahrscheinlich nicht anschlissen, oder?
Doch, die sind ja nicht aus Spaß da.

> Was mache ich mit VREF und RC? Wozu sind die?
Steht doch alles im Datenblatt! Auf Seite 6 und 7 im Datenblatt ist eine 
Tabelle deren letzte Spalte die Funktion des pins Beschreibt und ob er 
notwendig ist oder nicht!

von uwe (Gast)


Lesenswert?

Da steht dann z.B. zu VBOOT:
Bootstrap voltage needed for driving the upper Power
MOSFETs of both bridge A and bridge B

Übersetzt etwa:
Bootstrap Spannung benötigt zum treiben der oberen MOSFETS beider 
H-Brücken A und B.

Und bei VREFb:
Bridge B current controller reference voltage.
Do not leave this pin open or connect to GND

Referenzspannug des Stromreglers der H-Brücke B.
lassen Sie diesen Pin nicht offen und auch nicht an einfach mit GND 
verbinden.

usw.

von Michael R. (hellm)


Lesenswert?

uwe schrieb:
> Da steht dann z.B. zu VBOOT:
> Bootstrap voltage needed for driving the upper Power
> MOSFETs of both bridge A and bridge B
>
> Übersetzt etwa:
> Bootstrap Spannung benötigt zum treiben der oberen MOSFETS beider
> H-Brücken A und B.
>

Heißt es, um überhaupt die oberen MOSFETS einzuschalten, muss man VBOOT 
einschließen?

> Und bei VREFb:
> Bridge B current controller reference voltage.
> Do not leave this pin open or connect to GND
>
> Referenzspannug des Stromreglers der H-Brücke B.
> lassen Sie diesen Pin nicht offen und auch nicht an einfach mit GND
> verbinden.

So wie der Einleitung mit 1V verbinden?

von Michael R. (hellm)


Lesenswert?

Düsendieb schrieb:
> Da ist doch im Datenblatt hinten ein Schaltplan. Der ist das nicht ohne
> Grund

Sicher! Nun, ich wollte wissen, ob ich EN Pin anschlissen muss. Laut 
Anleitung ja, auf 5V bzw. GND. Mit dem Rest bin ich nicht klar gekommen. 
Daher Fragen.

von Max H. (hartl192)


Lesenswert?

Michael R. schrieb:
> Heißt es, um überhaupt die oberen MOSFETS einzuschalten, muss man VBOOT
> einschließen?
Die Gatespannung für die Highside FETs kommt von Vboot, ohne können die 
FETs also nicht durchschalten.

> So wie der Einleitung mit 1V verbinden?
Brauchst du eine Stromregelung? Wenn ja wie viel Strom, wie groß ist 
Rsense?

von Michael R. (hellm)


Lesenswert?

Max H. schrieb:
> Michael R. schrieb:
>> Heißt es, um überhaupt die oberen MOSFETS einzuschalten, muss man VBOOT
>> einschließen?
> Die Gatespannung für die Highside FETs kommt von Vboot, ohne können die
> FETs also nicht durchschalten.

Danke.

>> So wie der Einleitung mit 1V verbinden?
> Brauchst du eine Stromregelung? Wenn ja wie viel Strom, wie groß ist
> Rsense?

Wie weiß ich, dass ich eine Stromregelung brauche?

von Max H. (hartl192)


Lesenswert?

Michael R. schrieb:
> Wie weiß ich, dass ich eine Stromregelung brauche?
Brauchst du auch bei höherer Drehzahl noch ein hohes Drehmoment?

von Michael R. (hellm)


Lesenswert?

Max H. schrieb:
> Michael R. schrieb:
>> Wie weiß ich, dass ich eine Stromregelung brauche?
> Brauchst du auch bei höherer Drehzahl noch ein hohes Drehmoment?

Nein, das Gewicht wird sich nicht ändern.

von Düsendieb (Gast)


Lesenswert?

Michael R. schrieb:
> Wie weiß ich, dass ich eine Stromregelung brauche?

Das Drehmoment ist von Strom abhängig.
Mit zunehmender Frequenz der Ansteuerung (also mehr Schritte pro Zeit) 
steigt der induktive Widerstand der Spulen.
Dadurch sinkt der Spulenstrom wenn man eine konstante Spannung 
vorraussetzt.

Dadurch hat man ein riesen Drehmoment in unteren Drehzahlbereich, und 
kaum geht es schneller zieht das Ding keinen Hering mehr vom Teller.

Die Frage ist: wirst Du unterschiedliche Geschwindigkeiten brauchen?
Oder auch Anfahrrampen?

von Mike (Gast)


Lesenswert?

Michael R. schrieb:
>> Brauchst du auch bei höherer Drehzahl noch ein hohes Drehmoment?
>
> Nein, das Gewicht wird sich nicht ändern.

Aber vielleicht soll der Motor das Gewicht nicht nur im Stand halten, 
sondern auch mit einer gewissen Drehzahl bewegen, ohne dass der Motor 
dann im Stand heiß wird.

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


Lesenswert?

Nimms mir nicht übel: Bei den Fragen die du hier stellst, solltest du 
dir vielleicht erstmal ein paar Schaltpläne ansehen oder einen Bausatz 
aufbauen und versuchen, dessen Funktion nachzuvollziehen. Hier mal ein 
Beispiel mit dem L6203, dass ist im Prinzip ein halber L6207, dafür mit 
höherem Ausgangsstrom:
http://www.mechapro.de/pdf/hpstep_doku_15b.pdf

Mit freundlichen Grüßen
Thorsten Ostermann

von Michael R. (hellm)


Lesenswert?

Düsendieb schrieb:
> Die Frage ist: wirst Du unterschiedliche Geschwindigkeiten brauchen?
> Oder auch Anfahrrampen?

Ich will meinen Motor mit PWM ansteuern können.

Frage zu PWM: Ich will das PWM-Signal nicht genirieren sondern über mein 
Programm umleiten. Auf ein Pin bekommen, auf das andere weiterschicken. 
Ich habe leider nichts passendes auf C gefunden.

von Michael R. (hellm)


Lesenswert?

Thorsten Ostermann schrieb:
> Nimms mir nicht übel

Auf gar keinen Fall :)

Danke für den Schaltplan.

von Max H. (hartl192)


Lesenswert?

Michael R. schrieb:
> Ich will meinen Motor mit PWM ansteuern können.
Wie steuert man einen Schrittmotor mit PWM an?
> Frage zu PWM: Ich will das PWM-Signal nicht genirieren sondern über mein
> Programm umleiten. Auf ein Pin bekommen, auf das andere weiterschicken.
> Ich habe leider nichts passendes auf C gefunden.
Was spricht dagegen es direkt anzuschließen?
Welchen µC hast du? Es gibt z.B. PICs mit CLC die das können

von Michael R. (hellm)


Lesenswert?

Max H. schrieb:
> Michael R. schrieb:
>> Ich will meinen Motor mit PWM ansteuern können.
> Wie steuert man einen Schrittmotor mit PWM an?

Wenn es eine Frage, um meine Wissen zu testen, dann bin ich gescheitert. 
Ansonsten kann man mit PWM die Geschwindigkeit des Motors über MC 
regeln. Verstehe ich es richtig?

>> Frage zu PWM: Ich will das PWM-Signal nicht genirieren sondern über mein
>> Programm umleiten. Auf ein Pin bekommen, auf das andere weiterschicken.
>> Ich habe leider nichts passendes auf C gefunden.
> Was spricht dagegen es direkt anzuschließen?

Über ein Drähtchen? :) Wenn es hilft, würde ich machen. Über das 
Programm ist es eleganter, finde ich.

> Welchen µC hast du? Es gibt z.B. PICs mit CLC die das können

Ich benutze ATmega8.

von Karl H. (kbuchegg)


Lesenswert?

Michael R. schrieb:

> Wenn es eine Frage, um meine Wissen zu testen, dann bin ich gescheitert.
> Ansonsten kann man mit PWM die Geschwindigkeit des Motors über MC regeln.
> Verstehe ich es richtig?


Dir ist aber schon klar, wie ein Schrittmotor funktioniert?

Seine Geschwindigkeit regelt man in dem man die Anzahl der Schritte 
kontrolliert, die er pro Sekunde machen soll.
Mit PWM hat das .... eigentlich nichts zu tun.

von uwe (Gast)


Lesenswert?

> Ansonsten kann man mit PWM die Geschwindigkeit des Motors über MC
> regeln. Verstehe ich es richtig?
Nö, nicht bei einem Schrittmotor! Du könntest mit dem L6207 entweder 2 
normale Gleichstrommotore über PWM steuern (die Drehzahl) ODER einen 
Schrittmotor. Beim Schrittmotor wird durch umpolen der Spulen einen 
Schritt weiter geschaltet, nix mit PWM.
http://de.wikipedia.org/wiki/Schrittmotor

von uwe (Gast)


Lesenswert?

Naja man könnte mit PWM irgendwie nen µschrittbetrieb hinbekommen. Aber 
das ist jetzt nicht zielführend.

von Max H. (hartl192)


Lesenswert?

Michael R. schrieb:
> Wenn es eine Frage, um meine Wissen zu testen, dann bin ich gescheitert.
Nein, ich sehe keine sinnvolle Möglichkeit einen Schrittmotor mit PWM 
anzusteuern außer man erzeugt damit die Referenzspannung für die 
Stromregelung, das habe ich aber mal ausgeschlossen da du noch nicht 
wusstest ob du das brauchst.

Michael R. schrieb:
> Frage zu PWM: Ich will das PWM-Signal nicht genirieren sondern über mein
> Programm umleiten. Auf ein Pin bekommen, auf das andere weiterschicken.
> Ich habe leider nichts passendes auf C gefunden.
Woher kommt das PWM das du umleiten willst? Und wieso willst du es durch 
den µC leiten?

: Bearbeitet durch User
von Michael R. (hellm)


Lesenswert?

Karl Heinz schrieb:
uwe schrieb:
Max H. schrieb:

Danke für eure Antworten.

Karl Heinz schrieb:
> Dir ist aber schon klar, wie ein Schrittmotor funktioniert?

> Seine Geschwindigkeit regelt man in dem man die Anzahl der Schritte
> kontrolliert, die er pro Sekunde machen soll.
> Mit PWM hat das .... eigentlich nichts zu tun.

uwe schrieb:
> Nö, nicht bei einem Schrittmotor! Du könntest mit dem L6207 entweder 2
> normale Gleichstrommotore über PWM steuern (die Drehzahl) ODER einen
> Schrittmotor. Beim Schrittmotor wird durch umpolen der Spulen einen
> Schritt weiter geschaltet, nix mit PWM.

Ok, jetzt verstehe ich, dass PWM hier gar nicht passt. Wie kann ich dann 
die Geschwindigkeit ändern?

Max H. schrieb:
> Woher kommt das PWM das du umleiten willst? Und wieso willst du es durch
> den µC leiten?

Anscheint soll es kein PWM sein, jedoch ist die Umleitung wichtig. Die 
Idee ist, dass ich ein Signal zur Steuerung von meinem Motor bekomme. 
Über eine andere Platine z.B.

von Max H. (hartl192)


Lesenswert?

Michael R. schrieb:
> Wie kann ich dann
> die Geschwindigkeit ändern?
Wie viele Schritte du den Motor pro Sekunde machen lässt..

> Anscheint soll es kein PWM sein, jedoch ist die Umleitung wichtig. Die
> Idee ist, dass ich ein Signal zur Steuerung von meinem Motor bekomme.
> Über eine andere Platine z.B.
Was ist das für ein Signal und wieso muss es durch deinen µC? Von 
welcher Platine kommt es?


Da du anscheinend nicht viel Ahnung hast, halte ich es für eine gute 
Idee die Karten auf den Tisch zu legen und nicht alles scheibchenweise 
zu Servieren...

: Bearbeitet durch User
von Michael R. (hellm)


Lesenswert?

Max H. schrieb:
> Michael R. schrieb:
>> Wie kann ich dann
>> die Geschwindigkeit ändern?
> Wie viele Schritte du den Motor pro Sekunde machen lässt..
>
>> Anscheint soll es kein PWM sein, jedoch ist die Umleitung wichtig. Die
>> Idee ist, dass ich ein Signal zur Steuerung von meinem Motor bekomme.
>> Über eine andere Platine z.B.
> Was ist das für ein Signal und wieso muss es durch deinen µC? Von
> welcher Platine kommt es?
>
>
> Da du anscheinend nicht viel Ahnung hast, halte ich es für eine gute
> Idee die Karten auf den Tisch zu legen und nicht alles scheibchenweise
> zu Servieren...

Das habe ich mir auch schon gedacht. Ich dachte am Anfang, dass ich 
alles verstehe und ein paar Kleinigkeiten sind von mir verdeckt. Jetzt 
ist es genau andersrum :)

Also. Ich mache beim Projekt "Balanciernde Kugel" mit. In Youtube gibt 
es Videos dazu. Mein Teil ist, eine Platine zu entwickeln und ein 
Programm dazu zu schreiben.

Ich habe schon eine gemacht. Der Motor braucht aber 1,4A meine Treiber 
(BD6231) können nur 1A maximal liefern! So habe ich mich entschieden, 
nach einen anderen Treiber zu suchen. L6207 hat gepasst. Da ich wirklich 
nicht besonders oft mit Motoren, Treibern und ähnlichem zu tun habe, 
habe ich mich gewundert, was das alles für kommische Pins seien sollen.

Jemand anders macht das andere Projektteil. Er muss sein Kamerasignal 
verarbeiten und ein Signal an meine Platine schicken und so die Motore 
ansteuern, welche von beiden Motoren und mit welcher Geschwindigkeit 
gedreht werden müssen.

von Max H. (hartl192)


Lesenswert?

Michael R. schrieb:
> Signal an meine Platine schicken und so die Motore
> ansteuern, welche von beiden Motoren und mit welcher Geschwindigkeit
> gedreht werden müssen.
Dann wäre der erste Schritt sich auf ein Übertragungsprotokoll zu 
einginge...

von Karl H. (kbuchegg)


Lesenswert?

Michael R. schrieb:

> Das habe ich mir auch schon gedacht. Ich dachte am Anfang, dass ich
> alles verstehe und ein paar Kleinigkeiten sind von mir verdeckt. Jetzt
> ist es genau andersrum :)

Dann solltest du dir erst mal klar machen, wie ein Schrittmotor 
arbeitet.

Dsa ist im Grund nichts anders als ein drehbahrer Magnet, um den rund 
herum Spulen angeordnet sind.

Setzt du eine Spule unter Strom, dann erzeugt sie ein Magnetfeld und der 
drehbare Magnet richtet sich in Richtung der Spule aus.
Setzt du die daneben liegende Spule unter Strom (und die erste aus), 
dann dreht sich der drehbare Magnet in deren Richtung. Der Motor hat 
'einen Schritt gemacht'.

Und so geht es reihum weiter. Nacheinander wird eine Spule nach der 
anderen bestromt und jedesmal dreht sich der drehbare Magnet in Richtung 
der jetzt bestromten Spule.

Aus praktischen Gründen reicht es aus, wenn man immer nur 4 Spulen 
reihum anordnet. Sonst kriegt man zuviele Pins am Motor zustande. D.h. 
alle 4 Spulen wiederholt sich die Anordnung. Der drehbare Magnet dreht 
sich immer zur nächstgelegenen bestromten Spule, selbst wenn 4 Spulen 
weiter ebenfalls eine bestromte wäre. Die ist aber zu weit weg, ihr 
Magnetfeld ist schon zu schwach. Daher gewinnt immer die nächstgelegene 
und der drehbare Magnet richtet sich in ihre Richtung aus.

Die Drehzahl regelt man daher logischerweise mit dem Zeitabstand, in dem 
man die Spulen reihum aktiviert. Je schneller das nacheinander passiert, 
desto schneller dreht sich auch der drehbare Magnet.
Die Stärke des Stroms, und damit die Stärke des Magnetfeldes welches die 
jeweilige Spule erzeugt, hat nur Einfluss darauf wie stark die Spule den 
Magneten 'festhält', aber nicht darauf wie schnell die Spulen reihum 
bestromt werden.


Eigentlich eine ganz einfache Sache.

: Bearbeitet durch User
von Michael R. (hellm)


Lesenswert?

Max H. schrieb:
> Michael R. schrieb:
>> Signal an meine Platine schicken und so die Motore
>> ansteuern, welche von beiden Motoren und mit welcher Geschwindigkeit
>> gedreht werden müssen.
> Dann wäre der erste Schritt sich auf ein Übertragungsprotokoll zu
> einginge...

Hm, ich möchte eine Zahl von der anderen Platine bekommen, welche mir 
sagt, welchen Motor und wieviele Umdrehungen pro Sekunde er machen muss.

Ich hatte es mir wie folgt gedacht:

11001000
Die ersten 4 Bits ist der erste Motor, die zweiten 4 ist der zweite. Die 
Zahl 1100 = 12Dec. Ich will 12 Umdrehungen pro s/ms/µs. Die zweite 
Kombination 1000 = 8Dec, nur 8 Umdrehungen. Ich möchte nun wissen, wie 
man es in C realisiert. Mein Kollege wird nichts dagegen haben. :)


Karl Heinz schrieb:

> Eigentlich eine ganz einfache Sache.

Aha. Mit dem Motor ist klar. Danke. Über den Aufbau habe ich auch noch 
im Netz nachgelesen.

Zum Motor, ich habe ihn vom Nanotec L41(2 St). Er hat 4 Ausgänge und 
laut des Datenblatts nur 2 Spulen (wahrscheinlich billige Version :)))

von Karl H. (kbuchegg)


Lesenswert?

Michael R. schrieb:

> Hm, ich möchte eine Zahl von der anderen Platine bekommen, welche mir
> sagt, welchen Motor und wieviele Umdrehungen pro Sekunde er machen muss.
>
> Ich hatte es mir wie folgt gedacht:
>
> 11001000
> Die ersten 4 Bits ist der erste Motor, die zweiten 4 ist der zweite. Die
> Zahl 1100 = 12Dec. Ich will 12 Umdrehungen pro s/ms/µs. Die zweite
> Kombination 1000 = 8Dec, nur 8 Umdrehungen.

Schön.
Dann ist aber PWM so ziemlich das umständlichste was ihr dazu benutzen 
könnt.

> Ich möchte nun wissen, wie
> man es in C realisiert.

Das kommt drauf an welchen Kommunikationsweg ihr wählt.
Wählt ihr zb. eine UART, dann ist das ganz simples programmieren einer 
seriellen Schnittstelle. Und solange die Werte nicht eine halbe Million 
mal pro Sekunde upgedatet werden müssen, ist eine UART sicherlich auch 
schnell genug dazu.

Wie man auf einem AVR mit einer UART umgeht, findet sich zb im 
AVR-GCC-Tutorial.

> Zum Motor, ich habe ihn vom Nanotec L41(2 St). Er hat 4 Ausgänge und
> laut des Datenblatts nur 2 Spulen (wahrscheinlich billige Version :)))

Nope.
Aber man kann eine Spule auf 2 Arten bestromen :-)
Einmal + der Spannung auf der einen Seite, einmal + der Spannung auf der 
anderen Seite.
Irgendwie les ich bei dir dauernd, du hättest dich schon im Web schlau 
gemacht. Und irgendwie merk ich bei dem was du von dir gibst nicht 
wirklich was davon.

: Bearbeitet durch User
von Michael R. (hellm)


Lesenswert?

Karl Heinz schrieb:

> Irgendwie les ich bei dir dauernd, du hättest dich schon im Web schlau
> gemacht. Und irgendwie merk ich bei dem was du von dir gibst nicht
> wirklich was davon.

Einige Informationen, die ich von dir und von anderen freundlicherweise 
bekomme, habe ich im Netz gesehen. Weil die Informationen aber 
unsystematisch sind bzw. ich schaue in eine, dann in die andere Quelle, 
fehlt mir auch einiges.  :(

> Wählt ihr zb. eine UART, dann ist das ganz simples programmieren einer
> seriellen Schnittstelle.
.
.
.
> Wie man auf einem AVR mit einer UART umgeht, findet sich zb im
> AVR-GCC-Tutorial.

Danke!

: Bearbeitet durch User
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.