PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotorsteuerung mit L297 + 2x VNH2SP30



Felix G
12.12.2005, 19:45
Der Titel sagt eigentlich schon alles...

Es würde mich interessieren ob irgendwas dagegen spricht statt eines L298 einfach zwei VNH2SP30 zu verwenden.
(verwendet halt MOSFETs anstatt Bipolartransistoren, das dürfte aber doch eigentlich kein Problem sein?)


und sehe ich das richtig, daß die Freilaufdioden beim VNH2SP30 schon integriert sind?

Ratber
12.12.2005, 20:03
Mit nem schnelle Blick ins Datenblatt sehe ich da keine Problem den als Steppertreiber zu nehmen.

Mit min 4µs ist der auch noch ausreichend schnell genug.

Ja und Mosfets sind immer besser geeignet.
Fällt dort ja weniger Verlustleistung an.

Ich nutze schon ewig nix Bipolares mehr und schneke mir so aufwändige Kühlkörper.

Suchste noch eine Brücke oder haste diese gerade billig an der Hand ?
Wenn ersteres dann schau dich mal um,es gibt feine Steppertreiber auf dem Markt und nicht alle müssen gleich so Exklusiv sein wie die Trinamic-Familie

Felix G
12.12.2005, 22:01
Ich suche noch geeignete Treiber, und habe den VNH2SP30 eher per Zufall auf robotikhardware.de gefunden.

Die Dinger packen immerhin bis zu 30A, was ja selbst für große Schrittmotoren mehr als ausreichend sein dürfte.



Letztendlich möchte ich eine Mikroschritt-Endstufe bauen, die genug Leistungsreserven für große Motoren hat (10-20A wären nett).
Denn die Teile die ich bisher gefunden habe sind so abartig teuer, daß sich ein Selbstbau in jedem Fall lohnt.
(knapp 300€ für eine 10A Endstufe bei Nanotec)

Wenn du noch ein paar Links dazu parat hättest wäre mir schon sehr geholfen
(also Hersteller von Schrittmotoren und/oder Schrittmotortreibern)



PS: Ja ich weiss, daß mit einem L297 kein Mikroschrittbetrieb möglich ist
(dessen Aufgabe wird dann von einem µC übernommen)

Ratber
12.12.2005, 22:32
Microschritt ist im Prinzip nix anderes als die H-Brücke mit PWM zu betreiben.
Klar,eine Brücke die auch gleich die komplette Ansteuerung dafür mitbringt nimmt einem gleich ne Menge Arbeit ab.

Wie gesagt sind einige Chipreihen wie zb. die Trinamicfamilie genau auf sowas spezialisiert.
Zb. Die Kombi TMC 246/249 bis 4A Strangstrom.
Da sollteste mal reinsehen.

Ansonsten ist ein Selbstbau immer interessant.
Erstens bekommt man das was man haben will und zweitens für einen Preis der Diskutabel ist.


Wovon du dich aber trennen kannst ist der Gedanke an "Ein chip für alles".
Jedenfalls im Preissegemnt "Bezahlbar"

Steppertreiber ab einer bestimmtebn Leistung werden soweit ich weiß fast immer Zweiteilig geliefert.
Einer als Endstufe mit Überwachung von Strom,Temperatur usw.
Der andere Steuert das Ganze und nimmt dem Controller unnötige arbeiten ab.
Das hat den Vorteil das man die Kombinationen optimaler zusammenstellen kann.

Zu den Links:

such mal bei Google nach "Trinamic" und "Infineon" da findeste schon gute Sachen.
Der Rest sind verstreute Geschichten.

Eine spezielle Linksammlung hab ich einfach nicht.
Ich suche mir meine Teile nach Anforderung und Bechaffbarkeit zusammen.
Der Tollste Chip bringt ja nix wenn man ihn einfach nicht bekommen kann. :wink:

Felix G
12.12.2005, 23:42
Wovon du dich aber trennen kannst ist der Gedanke an "Ein chip für alles".
Jedenfalls im Preissegemnt "Bezahlbar"keine Sorge, sowas wollte ich garnicht

im Prinzip reicht mir eine ordentliche H-Brücke, die Ansteuerung übernehme ich dann selbst.
Für die Stromregelung sollte man ja eigentlich nur zwei OPs, zwei FlipFlops und einen Oszillator brauchen (hoffe ich^^)




such mal bei Google nach "Trinamic" und "Infineon" da findeste schon gute Sachen.
Der Rest sind verstreute Geschichten.Ok vielen Dank,
dann schau ich mal ob die was passendes für mich haben

Manf
13.12.2005, 08:25
@Felix G: Interessant wird es sicher das selbst zu bauen, die PWM-Ansteuerung für die eingestellten Ströme benötigt zwei Regelschleifen und die Mikroschrittansteuerung erfordert eine Ausgabe der Phasenwerte die eine Größenordnung schneller sein soll als die Schrittfrequenz bei Vollschrittbetrieb. Wenn Regelschleifen für die Ströme diskret aufgebaut werden, wie erfolgt die Übergabe der Phasenwerte für die Ströme?
Erzähle doch mal welche Werte an Geschwindigkeit und Mirkroschrittauflösung Du damit erreichen möchtest.
Manfred

Ruppi
13.12.2005, 11:57
Hallo Felix,
ich habe vor einiger Zeit eine ähnliche Mikroschrittendstufe gebaut. Die Stufe besteht aus acht 30A Mosfet's (IRF5305 und BUZ11), also P-Kanal oben, N-Kanal unten. Für die Chopperregelung habe ich ein fertiges IC verwendet, den L6506. Dieser Chip ist günstig und übernimmt die komplette Stromregelung für die beiden Motorphasen. Den Phasenstrom kann man bei diesem IC für jede Phase getrennt vorgeben. Dadurch ist es einfach, Mikroschritte zu erzeugen. Dafür habe ich einen Atmel Mega8 verwendet. Dieser gibt zwei Fast-PWM Signale (je 6bit) aus, die durch zwei Tiefpassfilter zweiter Ordnung geglättet werden und den jeweiligen Phasenstrom vorgeben. Schöner wäre hier vielleicht ein vernünftiger DA-Wandler für jede Phase, aber es funktioniert einwandfrei.
Die 16tel Mikroschritt-Stufe kann aufgrund der verwendeten Hochlastwiderstände derzeit nur mit Strömen bis 8A pro Phase arbeiten, für mich ist das aber mehr als ausreichend.
Wie gesagt, so habe ich es gemacht, vielleicht hilft es Dir ja weiter. Wäre schön, wenn Du uns mit Deinem Projekt am Laufenden hälst, das ist für viele Leute interessant.

Gruß, Ruppi

Ratber
13.12.2005, 16:19
im Prinzip reicht mir eine ordentliche H-Brücke, die Ansteuerung übernehme ich dann selbst.


Ja,genügend Vorschläge für die Steuerung haste ja mittlerweile.
Reine Brücken findeste im Web eigentlich reichlich.
Von niedlich 2x0.7A bis 2x120A ist da so ziemlich alles vertreten.
Mußte dir was raussuchen wqs erhältlich ist.
Ich nutze zb. oft die BTS780 (bis 40A plus Extras) aber die beziehe ich über den Job also weiß ich nicht wo es die noch gibt.

Felix G
13.12.2005, 18:34
Also die Phasenwerte wollte ich eigentlich von einem EEPROM mit Sinustabelle als PWM-Signale erzeugen lassen.
(@Manf: so wie in deinem Artikel "Phasen EPROM", den es ja inzwischen leider nicht mehr gibt)
Falls das zu langsam oder zu ungenau sein sollte nehme ich halt einen DA-Wandler.

Über Geschwindigkeit und Auflösung habe ich mir noch keine großen Gedanken gemacht.
(ich würde mal grob 1/16 oder 1/32 Schritte ansetzen, und das ganze halt so schnell wie es die Schaltung packt)


@Ruppi
Der L6506 schaut interessant aus, da müsste ich die Regelung wenigstens nicht diskret aufbauen.
Aber ob ich den verwenden kann hängt ja erstmal von der verwendeten H-Brücke ab.


Achja, beim VNH2SP30 ist mir ein sehr unschöner Wert im Datenblatt aufgefallen...
nämlich die auf S.10 dargestellte Verzögerung t_Del von 600µs.
Wenn ich das richtig interpretiere bedeutet das ja, daß bei jeder Änderung an den Eingängen erst nach 600µs wieder das PWM-Signal an der Spule liegt.

Ich bin zwar kein Experte auf dem Gebiet, aber es scheint mir als hätte sich diese H-Brücke damit für Schrittmotoren disqualifiziert
(ist doch sicherlich nicht optimal wenn der Motor nach jedem Vollschritt erstmal 0,6ms stromlos ist oder?)

Manf
13.12.2005, 22:38
Achja, beim VNH2SP30 ist mir ein sehr unschöner Wert im Datenblatt aufgefallen...
Das ist die "Delay Time During Change of Operating Mode",
dann gibt es noch die "PWM Frequency" mit 20kHz.

Artikel "Phasen EPROM", den es ja inzwischen leider nicht mehr gibt
Ich habe ihn als Post wieder eingefügt, mal sehen ob er zu weiteren Ehren kommt (falls das Prinzip irgenwo gebraucht wird).

Von Ruppi wollte ich noch ein paar Daten erfahren über die Schrittfrequenz, erstmal die damals verwendete PWM Frequenz.
Manfred

Felix G
13.12.2005, 23:39
Achja, beim VNH2SP30 ist mir ein sehr unschöner Wert im Datenblatt aufgefallen...
Das ist die "Delay Time During Change of Operating Mode",
dann gibt es noch die "PWM Frequency" mit 20kHz.
schon klar, nur daß so ein "Change of Operating Mode" bei einem Schrittmotor ja öfters mal vorkommt.
(nämlich einmal pro Vollschritt wenn ich mich nicht irre)
und eine Wartezeit von 600µs nach jedem Vollschritt bevor das PWM-Signal wieder am Motor anliegt scheint mir etwas lang zu sein.

Aber nachdem ich mir das Datenblatt nochmal genauer durchgelesen habe fällt der VNH2SP30 eh flach.
Bei einer '0' am PWM-Eingang schaltet der nämlich nur die unteren Transistoren ab, d.h. Inhibit Chopping geht damit schonmal nicht.
(es sei denn man legt das PWM Signal auf die Enable-Anschlüsse, aber dafür sind die ja eigentlich nicht gedacht)



Ich habe ihn als Post wieder eingefügt, mal sehen ob er zu weiteren Ehren kommt (falls das Prinzip irgenwo gebraucht wird).Das können bestimmt einige hier gut brauchen
(wenn nicht für Motoren, dann vielleicht als Funktionsgenerator oder so)

allerdings denke ich, daß der Artikel im Wiki besser aufgehoben wäre ;-)

Ruppi
14.12.2005, 17:44
@Manfred:
Der AtMega ist bei mir mit 16MHz getaktet, ich verwende FastPWM mit einer Auflösung von 6Bit. Das reicht völlig aus, um 1/16 Mikroschritte ohne großen Fehler nahe dem "idealen Sinus" zu erzeugen. So kommt man auf eine PWM-Frequenz von 250kHz. Tiefpassfilter zweiter Ordnung übernehmen die Glättung der PWM-Signale. Auf dem Oszi sieht der Sinus bei 10kHz noch recht sauber aus, viel höhere Frequenzen kann ich im 1/16 Mikroschrittbetrieb aufgrund schlechter Programmierung sowieso nicht erzeugen... =P~

Gruß, Ruppi

Manf
14.12.2005, 18:06
Ja, vielen Dank für die Ergänzung.
Damit ist die Ausgabe per PWM sicher schnell genug.

1/16 Mikroschritte heißt (in der Terminologie von Vollschritt und Halbschritt) 64 Mikroschritte pro Periode?
Die Positionszählung geht dann wohl mit einem Phasenakkumulator, der die Geschwindigkeit in festem Takt zur Position dazuzählt.

Diese Rate könnte bei ein paar kHz liegen denn bei höheren Geschwindigkeiten braucht man nicht mehr die volle Mikroschritt-Auflösung.

Eine Alternative wäre ja die Chopperregelung der Phasenströme mit dem Controller zu machen und die Phasenwerte dabei einfließen zu lassen. Da werden ja unter Umständen auch nur ein paar kHz gebraucht. Es ist natürlich sehr viel kritischer die Anforderung nicht gleich zu bedienen, wenn der Strom pro Millisekunde um 20A ansteigt. Hat das schon mal jemand gemacht?
Manfred

Ruppi
15.12.2005, 16:47
1/16 Mikroschritte beschreiben immer nur eine viertel Periode. Du hast also völlig Recht, dass das in diesem Fall 64 Mikroschritte pro Periode sind.
Aber was ist ein Phasenakkumulator?
Und noch was Manf:
Diese Sache mit dem Eeprom habe ich nicht so ganz verstanden, wie erzeugst Du damit Mikroschritte? Hängt an den IO's ein DA-Wandler oder wie ist das gemeint?

Gruß, Ruppi

Manf
15.12.2005, 17:06
Phasenakkumulator kenne ich von DDS Genaratoren, die werden da so genannt. Etwas besonderes ist es nicht, ein Akkumulator in dem Fall also ein Zähler der aufaddiert.
In einem festen Raster wird der Wert der Frequenz, also die Phasenänderung pro Zeiteinheit, aufaddiert, um zum aktuellen Phasenwert zu kommen, der dann ausgegeben wird.

Beim EPROM werden die Phasenwerte als PWM ausgegenen. Eine Folge von Speicherbytes hat in einer Bitstelle 2^n die Ausgabewerte gespeichert, die dann zyklisch ausgegeben werden. Dadurch ergibt sich ein PWM Signal.
Um einen anderen Phasenwert auszugeben wird eine andere Folge von Speicherbytes mit höherwertigen Adressleitungen ausgewählt die dann zyklisch für die Ausgabe zuständig sind.
Dabei läuft die zyklische Adressierung der niederwertigen Adressleitungen einfach weiter.
Manfred

Ruppi
15.12.2005, 17:16
Heist das, man gibt z.B. einen festen Takt - z.B. von einem Oszillator - vor und anhand der Zustände an den Adressleitungen erhält man unterschiedliche PWM-Frequenzen?

Felix G
15.12.2005, 17:23
Also ich habe mich inzwischen mal nach integrierten H-Brücken umgeschaut... und nichts gefunden
Die sind alle entweder zu langsam oder zu schwach, daher werde ich die Brücke wohl auch diskret aufbauen.


Stellt sich die Frage wie ich die MOSFETs ansteuern soll...
Ich habe daran gedacht das mit einem MC34151 zu machen, allerdings hat das Ding nur 2 Treiber und ich bräuchte 8.
Da wäre ein Treiber-IC sinnvoller das 4 oder mehr MOSFETs ansteuern kann.

Allerdings habe ich da das Problem, daß dieser Treiber nur max. 18V Versorgungsspannung aushält ich aber die FETs mit bis zu 40V versorgen möchte.
d.h. ich bräuchte neben den 5V für die Logik und den 40V die geschaltet werden sollen, auch noch 18V für die FET-Treiber.
Das gleiche Problem habe ich auch wenn ich das diskret aufbauen will, da die FETs böse werden wenn ich sie mit mehr als 20V ansteuern will.

vielleicht hat da ja Jemand eine sinnvolle Idee
(wie hast du das gelöst Ruppi?)


@Ruppi
hatte den Artikel beim ersten durchlesen auch nich gleich verstanden ;-)

Manf
15.12.2005, 17:27
Nicht die Frequez ändert sich, sondern der duty cycle oder das Tastverhältnis.

Zwei Zähler gibt es, der für die niederwertigen bytes zählt die Periode des PWM durch und der für die höherwertigen wählt die Phasenlage aus in dem der PWM Wert für die Phasenlage steht.

In den acht Bitleitungen erscheinen dann bitserielle Signale die zusammen ein 2- oder 3-Phasensystem bilden (oder was man halt braucht und reinschreibt).
Manfred

Ruppi
16.12.2005, 06:15
Moin,
18V für die Treiber erscheint mir recht viel, eigentlich steuern die Fet's bereits bei 10V voll durch. Setze doch einfach einen kleinen µA78L05 mit auf die Platine und mach nur Anschlüsse für 12 und 40V drauf. Das kostet nicht viel Platz und Du hast eine vernünftige Quelle für die Logik. Ich habe die Ansteuerung der Fet's diskret aufgebaut, mit normalen BC550. Da die Steuerung mit 45V betrieben wird, sind die BC550 gerade noch ausreichend. Die 12V bzw. (45-12)V an den Gates habe ich einfach mit Spannungsteilern realisiert. Wollte das auch erst mit Mosfet-Treibern machen, aber habe die Datenblätter nicht so richtig verstanden, d.h. wie die Fet's daran angeschlossen werden sollen.

@Manfred:
Erstmal vielen Dank für Deine Erklärungen, ganz verstanden hab ich's aber immernoch nicht. Dass sich (natürlich) nur der Duty Cycle ändert, ist klar, hatte mich beim schreiben vertan. Aber die Sache mit den Zählern verstehe ich noch nicht. Gibt es dafür einen Schaltplan?

Ruppi

Manf
16.12.2005, 13:55
Ich habe hier noch einmal die Winkungsweise des Phasen Eproms beschrieben.
Manfred

https://www.roboternetz.de/phpBB2/viewtopic.php?p=140717#140717
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=774

Felix G
16.12.2005, 15:17
@Ruppi
könntest du dazu vieleicht einen kleinen Schaltplan posten?
mir scheint es etwas problematisch zu sein die Spannungen mit Spannungsteilern aus den 40V zu erzeugen...
zum einen weil die 40V ja vermutlich durch die Schaltvorgänge nicht gerade rauschfrei sein werden,
und zum anderen weil die Gates wohl nicht schnell genug umgeladen werden können wenn die Spannungsteiler zu hochohmig sind



Das sind natürlich nur Vermutungen, denn mit FETs dieser Größe habe ich bisher nicht gearbeitet
(daher dachte ich mir es wäre sicherer Treiber-ICs zu verwenden)

Ruppi
17.12.2005, 21:34
@Felix:
Du hast schon Recht, zu hochohmig dürfen die Widerstände nicht sein, aber mit Rauschen bekommst Du keine Probleme. Ich habe die Widerstände so klein gewählt, dass ein recht hoher Strom durch die Treiber fließt, eben so, dass es die BC550 noch aushalten. Aber die bessere Wahl sind natürlich fertige Treiber - keine Frage. Auf diesem Rechner habe ich leider keine Schaltpläne, aber ich kann sie Dir in den kommen Tagen schicken. Falls Du Dich trotzdem für fertige Treiber entscheidest, würde mich die Ansteuerung auch interessieren!

@Manf:
Hat länger gedauert, aber jetzt hab ich's auch mal verstanden. Vielen Dank für Deine Hilfe!

Felix G
19.12.2005, 01:24
Auf diesem Rechner habe ich leider keine Schaltpläne, aber ich kann sie Dir in den kommen Tagen schicken.Das wäre nett O:)

derweil schaue ich mal was es so an Treiber-ICs gibt, vielleicht finde ich ja noch bessere als den MC34151