Es geht um einen TMC2209 Schrittmotor-Treiber. Der befindet sich direkt auf einer PCB und wird mit der Analog Devices SW vom Github via UART angesteuert. Angeschlossen ist ein Stepper der 1,7A-Klasse. Die beiden Shunts haben je 0,2 Ohm. Daran hängt auch das Oszi mit je einem Kanal von dem die Screenshots der beiden Testläufe stammen. Eigentlich lief die ganze Sache auf Anhieb, aber leider nicht mit reproduzierbaren Parametern. Es scheint so, dass der Treiber bei jedem off/on Zyklus der Versorgungsspannung andere Betriebsparameter verwendet. Betriebsstrom und Laufverhalten über steigender Drehzahl sind jedes mal etwas anders. Hängt auch irgendwie mit dem Innenwiderstand der Stromversorgung im Einschaltmoment zusammen, ist aber nicht vorhersagbar. Habe z.B. IHOLD=1, also 1/16 des Stroms (1A RMS) konfiguriert. Dennoch fließen oft über 1A im Stillstand. Manchmal aber auch nur 250mA, auch im Lauf, die dann bei steigender Drehzahl immer weiter sinken, bis der Motor dann vorzeitig in den Stall wegen zu geringem Strom gerät. Muss schon sagen, habe die Materie längst nicht durchdrungen. Aber das immer wieder wechselnde Verhalten, trotz identischer Initialisierung, ist merkwürdig. Leider sind etliche Register des TMC nur beschreibbar, nicht lesbar. Die Initialisierung habe ich im Attachment unten rechts stehen. Im PDF sind zwei Läufe zu sehen, einer mit sehr geringem Motorstrom, der zweite mit hohem bis zur TMC-Abschaltung (warum auch immer). Während des Testlaufs wurde via UART die Register gelesen. Hat jemand tiefe Kenntnisse der TMC2208/2209 und hat einen Tipp was hier vorgeht, bzw wo mein Fehler liegt?
Wulf D. schrieb: > hat einen Tipp Zeig doch auch mal deinen Schaltplan/die Leiterplatte/den Aufbau, damit wir die Grundlage für diese Messergebnisse auch sehen.
Anbei Schaltplan, Layout und ein Foto der Lötseite. Die Bestückungsseite ist weitgehend als Massefläche befüllt, das ist im Layout nicht sichtbar. Im Gegensatz zum Schaltplan sind die Shunts 2 x 0,1 Ohm in Serie, und nicht ein einziger 0,15 Ohm. Die daran angelöteten gelbe und grüne Kabel gehen zum Oszi. Die leicht angeschmorten, unterdimensionierten Induktivitäten L1-L4 dienen gerade als Schmelzsicherungen, ob des manchmal zu hohen Stroms.
Wulf D. schrieb: > Anbei Schaltplan Irgendwie sind solche "layoutorientierten" Schaltpläne wirklich schlecht lesbar. In einem Schaltplanmakro sollten die Pins nach Funktionen gruppiert sein (so wie beim IC3: oben Versorgung, unten Signale) und eben nicht wie beim IC1 und IC2 nach der Pinreihenfolge im Kupfer. Das Schaltplansymbol im Datenblatt des TMC sieht leserlich aus: links die Eingänge, rechts der Leistungsausgang und oben und unten die Versorgung. > Layout Tja, da hast du offenbar das Kapitel 21 des Datenblatts und die Verweise auf die Beispiellayouts der EVAL-Boards ignoriert. Mehrfach wird im Datenblatt erwähnt, dass der Anschluss der Sensewiderstände überaus kritisch ist. Und schon 0,5mV Abweichung duch fehlerhaftes Layout und/oder Störungen zu viel sind... EDIT: das "should not" dort im Text bedeutet auf deutsch nicht das beliebige "sollten nicht", sondern das zwingende "dürfen auf keinen Fall".
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Wulf D. schrieb: >> Anbei Schaltplan > Irgendwie sind solche "layoutorientierten" Schaltpläne wirklich schlecht > lesbar. In einem Schaltplanmakro sollten die Pins nach Funktionen > gruppiert sein (so wie beim IC3: oben Versorgung, unten Signale) und > eben nicht wie beim IC1 und IC2 nach der Pinreihenfolge im Kupfer. Die IC1- und IC2-Symbole / Packages habe ich nicht selbst erstellt, gerade die QFN Pads sind schon eine ziemliche Plagerei ohne unterstützende Tools. Habe aber auch keinerlei Probleme mit der Lesbarkeit, kann mich auf beide Ansätze einstellen und deshalb habe ich dankbar die Lib.-Bauteile eines Forummitglieds verwendet. > Tja, da hast du offenbar das Kapitel 21 des Datenblatts und die Verweise > auf die Beispiellayouts der EVAL-Boards ignoriert. Mehrfach wird im > Datenblatt erwähnt, dass der Anschluss der Sensewiderstände überaus > kritisch ist. Und schon 0,5mV Abweichung duch fehlerhaftes Layout > und/oder Störungen zu viel sind... Interessanter Hinweis, danke dafür: schaue mir das genau an, zusammen mit dem Layoutvorschlag im Datenblatt. Momentan sehe ich den Fehler noch nicht.
Moin, hat deine Platine einen GND Layer auf der Rückseite? In deinem PDF sieht man das schlecht. Was auf jeden Fall schlecht ist, ist die GND Anbindung der Sense Widerstände. Die laufen mit einem C zusammen auf eine Leiterbahn und dann erstmal über die halbe Platine bevor es runtergeht, dazu missbrauchst du dann Durchkontaktierungen von einem THT Kondensator und nem Anschluss. Auf jeden Fall ein GND Layer und in diesen direkt von den Shunts kontaktieren ohne Verbindung zu anderen Elementen, besonders Caps. Ich nehme gerne 2-3 Vias direkt vor dem Pad oder im Pad (je nach Fertigungsart des PCB) des Shunts. Wenn du da Unterstützung brauchst, kannst du mir auch privat schreiben. Gruß Hannes
Hallo Hannes, auf der Bestückungsseite ist eine fast durchgängige Massefläche. Mit den Sense-Widerständen hast du definitiv Recht, das muss geändert werden. Überlege ob ich die Masse der Widerstände einzeln mit einen sehr kurzen, isolierten Draht durch die PCB führe und rückwärtig auf die vier großen Via zum Expad verlöte. Oder ob ein- zwei nachgesetzte Vias zur Massefläche reichen. Kann das erst morgen früh testen. Eine andere Fehlerquelle könnte noch eine mangelhafte Lötstelle nach GND an einem der beiden Pins sein. Hab das QFN per Hand gelötet. Alle anderen Pins kann man über die internen EMC Dioden testen. Bei drei GND (incl Expad) wirds schwierig. Optisches Hilfsmittel ist im Zulauf. Gruß Wulf
Moin Wulf, also du kannst das natürlich ausprobieren aber es betrifft so ziemlich alle deine GND Verbindungen. Der C der neben den Shunts sitzt sollte dann auch direkt runtergefädelt werden. Dann hast du ne schöne GND Verbindung vom Attiny über 3 Widerstände zu deinem TMC. Das tut doch nicht Not? Durchkontaktierungen kosten doch nichts und an Platzmangel kann es auch nicht liegen. Nutz doch bitte bei Signalen je Widerstand ein eigenes Via nach GND (bei den R). Lass den Attiny an seinem Ort mit dem GND verbunden sein und TMC bei sich. Probier doch mal das Design zu überarbeiten, sodass du auf der einen Seite vom TMC keine GND Verbindungen zwischen Bauteilen hast sondern immer ein eigenes VIA oder mehrere bei höheren Strömen :)
Moin Hannes, das ist natürlich ein ganz anderer Ansatz, werde ich beim Redesign ausprobieren. Stecke gedanklich in der Zeit fest, wo man seine doppelseitigen Leiterplatten noch selbst erstellt hat. Mit möglichst wenigen Vias. Habe jetzt an den neuralgischen Punkten fette Vias (0,6mm CuAg) gegen die Massefläche nachgesetzt. Ist in sofern stabiler geworden, dass ich jetzt nur noch die hohen Ströme sehe. 4A-Pulse, im Mittel >2A. TMC schaltet innerhalb kürzester Zeit ab. Werde mal genau die Konfiguration durchgehen. Schließe einen Defekt des TMC nicht mehr aus und baue anschließend eine zweite Leiterplatte, incl der neuen Vias, auf.
Wulf D. schrieb: > Momentan sehe ich den Fehler noch nicht. Vereinfacht gesagt: dein Layout unterscheidet sich signifikant von Evalboard. Wulf D. schrieb: > Stecke gedanklich in der Zeit fest, wo man seine doppelseitigen > Leiterplatten noch selbst erstellt hat. Mit möglichst wenigen Vias. Genau dafür bzw. dagegen gibt es gut dokumentierte Evalboards. > baue anschließend eine zweite Leiterplatte, incl der neuen Vias, auf. Mein Tipp: baue genau das Evalboard nach. Und zwar 1:1 hinsichtlich Lagenanzahl, Bauteilplatzierung und Leiterbahnführung. Ändere daran nur dann etwas, wenn du die Layouthinweise verstanden hast und die Auswirkungen von Änderungen abschätzen kannst.
:
Bearbeitet durch Moderator
Guten Abend, ich finde das Layout-Example im Abschnitt 21.4 des Datenblatts wurde ausgesprochen lieblos via copy & paste reingekippt: du hattest ja den Schematic-Ausriss schon gepostet. Placement (Bestückungsplan) und Layout passen nicht dazu, die Bauteile tragen Bezeichner aus einem ganz anderen Nummernkreis. Man kann das Eval nachbauen, wäre ein Weg. Aber ich habe meine Fehler im Layout erkannt und korrigiert, Hannes hat die ja eindeutig benannt. Im wesentlichen war es die Masse-Verflechtung der Sense-Widerstände und fehlende Masse-Vias. Ich habe jetzt eine zweite PCB aufgebaut und der Stepper läuft mit viel geringeren Strömen und bei jedem Einschalten, egal unter welchen Randbedingungen (Netzteil) seidenweich durch. Auch der Ruhestrom ist wie konfiguriert. Mit identischer SW im Controller. Die Oszi-Screenshots sind bei geringer Drehzahl entstanden. Der TMC auf der ersten PCB hat Schaden genommen. Sei es, durch die Layout-Fehler. Oder Fehler beim Handlöten (zu lange das Expad geheizt?). Ich weiß es nicht. Wäre mal eine Aufgabe, den QFN28 zu tauschen. Habe ich noch nie versucht, schaue mal unter "Platinen" im Forum. Interessant wäre jetzt noch eine etwas höhere maximale Drehzahl. Der Motor erreicht 380 U/min. Dabei fällt der Strom bei 24V in Richtung 100mA und zeigt darüber erste Unregelmäßigkeiten. Lässt sich die Drehzahl, z.B. durch einen anderen Mode im TMC, noch steigern? Danke für die Tipps, haben das eigentliche Problem am Ende gelöst. Wulf
Am ehesten killt man diese Treiber wenn man den Motor im Betrieb abklemmt, schlechte Kontakte zwischen Motor und Treiber reicht da auch schon. So habe ich da auch schon ein Loch in das IC gesprengt. Nicht beim 2209, ein 2130 müsste es gewesen sein.
Moin, hast du mal die Microsteps verändert (sofern das bei dem Treiber geht)? Ansonsten umso kleiner der Strom wird, desto wichtiger die Masse Anbindung. Stell gerne noch nen neuen Plan rein bevor du das nächste PCB bestellst, vllt sehe ich noch ne andere Schwachstelle :) Gruß Hannes
Wulf D. schrieb: > ich finde das Layout-Example im Abschnitt 21.4 des Datenblatts wurde > ausgesprochen lieblos via copy & paste reingekippt Da steht aber auch ein Verweis auf das Layout in der Doku zum **Evalboard**. Und so wie ich das sehe, ist das konsistent und sehr solide und durchdacht aufgebaut: - https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/tmc2209-eval.html#eb-documentation
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Wulf D. schrieb: >> ich finde das Layout-Example im Abschnitt 21.4 des Datenblatts wurde >> ausgesprochen lieblos via copy & paste reingekippt > Da steht aber auch ein Verweis auf das Layout in der Doku zum > **Evalboard**. Und so wie ich das sehe, ist das konsistent und sehr > solide und durchdacht aufgebaut: > > - > https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/tmc2209-eval.html#eb-documentation Ja, das Archiv zum TMC2209-EVAL_Layout_Data_V1.1 ist tiptop. Da frage ich mich umso mehr, warum man das nicht im Datenblatt verwendet. J. S. schrieb: > Am ehesten killt man diese Treiber wenn man den Motor im Betrieb > abklemmt, schlechte Kontakte zwischen Motor und Treiber reicht da auch > schon. Auch eine Möglichkeit. Meine Klemmen sind zwar solide, aber vielleicht habe ich mal nicht richtig aufgesteckt. Hast du mal einen defekten QFN-Chip gewechselt? Hannes schrieb: > Moin, > hast du mal die Microsteps verändert (sofern das bei dem Treiber geht)? Habe die Microstep-Auflösung verändert: das hat nur Aufwirkung auf die effektive Drehzahl pro Step vom Mikrocontroller, aber an der Maximaldrehzahl bis zu einsetzenden Schrittverlusten ändert das nichts. Die Lösung war aber ganz einfach: per default arbeitet der Stepper im StealthChop PWM Mode. Da ist der bei niedrigen Drehzahlen unhörbar. Man kann einen SpreadCycle Mode aktivieren. Es gibt minimal mehr Geräusch, aber es sind viel höhere Drehzahlen erreichbar. Viel mehr als ich vorraussichtlich brauche. Übrigens habe ich mich gerstern bei der Strommessung vertan, der mittlere Strom beträgt im Lauf rund 300mA und bleibt über die Drehzahl relativ konstant. Das Drehmoment ist sehr hoch, kann die 5mm Welle mit der Hand nicht festhalten. Beim Versuch wird der Strom nur wenig größer.
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.