www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Trinamic Motortreiber


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat schon jemand Erfahrung (positiv oder negativ) mit den
Schrittmotor-Treibern von Trinamic gemacht (TMC236, TMC246 und andere)?
Ich möchte ein (privates) Projekt damit anfangen und nach dem Datenblatt
sehen die erstmal ganz vernünftig aus.

Sven

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sven,

ich verwende die TMC239 gerade für eine neue Steuerung.
Allerdings habe ich mit der exakten Interpretation des Datenblattes
noch ein paar kleine Verständnisschwierigkeiten.
So recht verstehe ich den Aufbau und die Größe der MS-Tabelle nicht.
Allerdings konnte sie mir ein Trinamic AppINg auch nicht wirklich
erklären und verlor sich im Detail dann ins .....muß ich mal die
Entwicklung fragen....

Wie weit bist Du?
Gruß Wolfram

Autor: Joern G. aus H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klasse Dinger.
Falls du mit MS nicht zureckt kommst, kannst du auch Beispiele von
ALlegro z.B. dir mal angucken - ist im Prinzip ja immer dasselbe.

Zudem gibt es auf der Trinamic Webseite ein Source-Code Beispiel, mit
Tabelle, was so ziehmlich sofort funktioniert, wenn du dich daran
hältst.

Was verstehst du genau nicht?

Mit dem STallGuard muss man etwas vorsichtig sein und nicht zuviel
davon erwarten. Wunderdinge kann diese Technik nämlich nicht. Lasten
werden nur im Vollschritt erkannt und bei Änderungen der
Steppergeschwindigkeit auch nicht mehr sicher.

Konstante Laufgeschwindigkeit ist Vorraussetzung für StallGuard.

jörn

Autor: A. W. (wiwil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe jetzt auch eine TMCM 310 SG Platine mit dem TCM 246 zur
Drei-Achsen-Steuerung bei Reichelt gekauft.

Prinzipiell funktioniert es auch, aber mit dem Stallguard komme ich
nicht klar: Auch wenn der Motor im Leerlauf ist, bei verschiedenen
Motoren, Strömen und Geschwindigkeiten, der Load-Wert steht immer bei
mindestens 5, meistens jedoch bei 7, so dass mit Stallgaurd-Überwachung
gar kein Betrieb möglich ist. Und das wie gesagt im Leerlauf. Mache ich
da wohl etwas falsch, oder woran könnte das liegen?

Mit funktionierendem Stallguard wäre schon schön, dann bräuchte ich
keine Endschalter, aber so...

Vielleicht hat ja jemand Erfahrung mit den Treibern, bin für jede Hilf
dankbar.

Gruß
Andreas

Autor: Hari (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

endlich mal wieder jemand, mit dem ich Erfahrungen über die TMC 246
austauschen kann!! ;-)

@Jörn

Ich gebe dir vollkommen Recht! Die StallGuard- Funktion ist eine feine
Sache, man sollte allerdings nicht zuviel von ihr erwarten.

Ein schönes stabiles Lastsignal erhält man nur, wenn man die Sense-
Widerstände exakt zum Arbeitspunkt und Schrittmotor wählt. Hier ist
also etwas Experimentieren angesagt. Wenn man dies macht, und einen
ausreichend hohen Phasenstrom wählt, dann erhält man ein Lastsignal
auch bei Mikroschrittbetrieb. Man muss nur die MixedDecay- Funktion
abschalten. Dann werde zwar die Mikroschritte etwas "ruppiger", da
der Phasenstrom nicht mehr so schnell abgebaut werden kann, aber das
Lastsignal lässt sich noch recht gut auswerten.

Aufpassen muss man aber, wie von dir richtig beschrieben, bei
Geschwindigkeitsänderungen, also beim "Beschleunigen". Für diesen
Zeitraum ist das StallGuard-Signal nicht brauchbar.
Steht aber auch so irgendwo im Applikation Note.

@Andreas

Wie ist bei deiner TMCM 310 bzw. der beiliegenden Software der
Load-Wert definiert?

1. 7--> hohe Last und 0--> Leerlauf
oder
2. 0--> hohe Last und 7--> Leerlauf

Von der IC-Seite aus betrachtet wären deine Ergebnisse zwischen 5...7
ein Traumergebnis!! :-)
Jedoch wandelt Trinamic bei ihrem TMC246- Eva-Board diesen Wert in
LED-Anzeige= 7 - gemessener Last-Wert, sodass dort (und bei dem
beiliegenden Programm für die serielle Schnittstelle) eine 0...3 für
unbelastet stehen müsste.

Ich weiss jetzt leider nicht, von welcher Seite bei deiner TMCM 310
Software rangegangen wird.
Ändert sich der Wert überhaupt, wenn du den Motor belastest??


Bis später :-)
Grüße, Hari

Autor: A. W. (wiwil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ja das Problem, bei mir steht 7 für hohe Last.
Und der Wert von 5 oder 6 ist echt die Ausnahme. In fast allen
Betriebspunkten ist trotz Leerlauf der Wert 7, d.h. wenn ich die
StallGuard Funktion einschalte ist direkt nach dem Beschleuigen
Schluß!
Das TMCM310 ist ein Board für 3-Achsensteuerung mit serieller
Ansteuerung, da sind die Sense-Widerstände natürlich fest vorgegeben,
den Wert weiß ich gerade nicht, müsste ich nachschauen. Ich habe auf
jeden Fall drei verschiedene Motoren ausprobiert, Ströme von 200-1500mA
und auch alle möglichen Geschwindigkeiten, der Wert 7 tritt hierbei eben
fast immer auf, trotz fehlender Belastung.

Erreiche ich mal einen Arbeitspunkt, wo der Wert ausnahmsweise bei 6
ist, und ich belaste den Motor, so reagiert er und schaltet ab, jedoch
auch hier schon bei wesentlich kleinerer Last, als der Motor aufbringen
kann. Prinzipiell scheint es also zu funktionieren,  StallGuard reagiert
nur viel viel zu früh!

Gruß
Andreas

Autor: Hari (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen Andreas,

ich habe mir jetzt einmal schnell die Datenblätter und die IDE für das
TMCM310 heruntergeladen. Das schaue ich mir nachher alles einmal an.
Bei der IDE habe ich schon gesehen, dass sie den StallGuard- Profiler
beinhaltet. Mit diesem wirst du deine Werte sicherlich gemessen haben.


Nur noch ein paar Fragen, damit ich mir die ganze Sache besser
vorstellen kann:
- Bei welcher Motorspannung betreibst du das ganze, was ist es für ein
Motor (3.33V, 5V, 12V- Typ? )?
- Phasenwiderstand und Induktivität (diese zwei Werte haben IMO einen
großen Einfluss auf StallGuard)?
- Vollschritt, Halbschritt oder Mikrostep?
- MixedDecay an oder aus?

Desweiteren lese ich mir ersteinmal die App. Notes durch, damit ich
keine unnötigen Fragen mehr stelle. ;-)

Bis später.
Grüße, Hari

Autor: A. W. (wiwil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hari,

Habe gerade das Datenblatt nicht vorliegen, weil es sich um ein
Firmenprojekt handelt, und WE ist ;-)
Der Motor der wirklich eingesetzt werden soll ist ein relativ kleiner
Motor mit nur 250mA Dauerstrom, der von der 12V Ebene versorgt wird.
Wie gesagt Widerstand und Induktivität werde ich morgen mal
nachgucken.
Die beiden anderen Dinge, Voll- Mikroschritt bzw. MixedDecay habe ich
auch durchprobiert, ohne Erfolg.
Ich hätte die Probleme ja auch auf den kleinen Phasenstrom geschoben,
aber mit einem großen Motor (allerdings aus der Wühlkiste ohne genaue
Daten) funktionierte es ja auch nicht.
Was zu dem Motor noch zu sagen ist, es hängt ein Getriebe dran, in
diesem Fall ist es also kein lupenreiner Leerlauf, aber das Getriebe
läuft vollkommen unbelastet und ist auch genau zu dem Motor passend.

Gruß
Andreas

Autor: Hari (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

sag bloss, du schaffst am WE nicht??? hihi ;-)

Die Werte wollte ich nur wissen, um einen Vergleich mit meinen
Schrittmotoren zu bekommen. Ich verwende 5V- Motoren (also 5V-
Wicklung) mit einer Motorspannung von U=24V (da die TMC choppern, darf
man eine höhere Motorspannung verwenden). Die Motoren haben einen
Phasenwiderstand von R=7.2Ohm und einen max. Phasenstrom von I=0.7A
(kleiner Motor) bzw. R=3.8Ohm und I=1.3A(großer Motor). Als
Sensewiderstände setze ich beim kleinen Motor R=0.033Ohm ein und beim
großen Motor zwei von denen parallel, also R=0,016Ohm. Damit bekomme
ich ganz vernünftige StallGuard- Werte, wenn ich einen entsprechend
hohen Phasenstrom zulasse. Ein Phasenstrom von I=250mA ist natürlich
nicht gerade viel. Im Halbschritt- und im Mikroschritt- Betrieb darfst
du aber ruhig mit I=1.41*Imax drauf gehen. Man sollte nur aufpassen,
dass man im Stillstand eine Stromabsenkung vorsieht, nicht dass im
worst-case beide Phasen gleichzeitig über einen längeren Zeitraum mit
diesem Strom beaufschlagt werden. Ansonsten habe ich auch eine
Verschlechterung des Lastsignales bei geringeren Motorspannungen
(U=12...16V) festgestellt.

Experimentier einmal mit höheren Spannungen, falls dir diese zur
Verfügung stehen. Das TMCM kann ja bis 28V ab.

Das Getriebe sollte kein Problem darstellen. Im Extremfall geht das
Last- Signal etwas runter (bei dir hoch), aber solange sich der Motor
noch dreht sollte man eine Veränderung des Signales, bei Laständerung,
bemerken können.

Was du noch testen könntest, wären Änderungen der Blank-Time.
Vielleicht bekommst du damit schon eine Verbesserung.

So das wars erstmal von mir. ;-)
Grüße, Hari

Autor: A. W. (wiwil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hari,

Das mit der Blank-Time war eine gute Idee, jetzt erreiche ich bei
Drehzahlen ab etwa 500 Umdrehungen relativ konstante Werte von 5. Mit
der Abschaltung klappt zwar immer noch nicht, weil wohl einzelne Peaks
dafür sorgen, dass der Motor immer wieder abschaltet, abe da ich das
ganze wohl demnächst mit einem Mikrocontroller steuere, werde ich das
vielleicht hinbekommen. Außerdem werde ich noch weiter probieren,
vielleicht klappt es ja noch etwas besser.
Der Motor hat übrigens einen Widerstand von 12,5 Ohm und eine
Induktivität von 5,5mH.

Gruß
Andreas

Autor: Hari (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

das klingt doch schon einmal nicht schlecht!
Bemerkst du auch eine signifikante Änderung des Lastsignales bei
Lasterhöhung? Was für Werte hast du denn als Blank-Time gewählt bzw.
was war vorher eingestellt?

Mit den Peaks hast du Recht, da musst du dann mit dem µC eine
Mittelwertbildung oder ähnliches drüberlaufen lassen. Bei mir schwankt
das Lastsignal in einigen Geschwindigkeitsbereichen auch ständig
zwischen zwei Werten hin- und her. Und das, obwohl keine Resonanzen am
Motor feststellbar sind.

Hier musst du etwas experimentieren. Aber Versuch macht klug! ;-)
Ich würde mich freuen, wenn du mir deine Erkenntnisse schreiben
würdest.

Grüße, Hari

Autor: A. W. (wiwil)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hari,

ich komme im Moment leider nicht dazu, weiterzutesten, da mal wieder
was dringenderes dazwischen gekommen ist.
Blanking Time habe ich jetzt das maximale, was das Board zulässt, also
1,5µs, vorher waren es 0,6µs. Zwischenwerte muss ich mal noch
ausprobieren.
So ist das Lastsignal in Ordnung, und zumindest mit Mittelwert sollte
es zur Abschaltung am Ende zu gebrauchen sein.
Für ein wirkliches Lastproportionales Signal ist es zu ungenau, aber
das brauche ich auch nicht.

Gruß
Andreas

Autor: Hari (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

ich habe bei mir auch noch einmal mit den Werten für die Blanking Time
experimentiert. Das beste Last-Signal habe ich bei einer Einstellung
von t=0.9µs bekommen. Das kann aber vom Motor abhängig sein.

Wenn  ich noch eine Möglichkeit herausfinde, wie man das Lastsignal
verbessern oder besser auswerten kann, schreibe ich es dir.

Grüße, Hari

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.