Hallo Zusammen
Ich habe mich hier an einen modularen BLDC (FOC) Kontroller auf Basis
des TMC4671 gewagt, und möchte um Feedback bzgl. Schaltplan & Layout
bitten.
Ein Regler besteht nachher aus 1x der "Logik" Platine mit dem TMC4671
drauf, und 1-n gestapelten Endstufen, wobei jede Endstufe wiederum 1-n
(vorgesehen sind aktuell 3) Kondensator-Platinen angelötet bekommt (mit
Kupferschiene). Wie das genau Funktionieren soll seht ihr auf den Fotos.
Ich habe versucht die Strompfade möglichst kurz und die umflossenen
Flächen möglichst klein zu halten (sowohl auf der Hochstromseite als
auch an den Gates der MOSFETs).
Die Kondensator-Platinen verwende ich an stelle von Elkos um einen
(massiv) geringeren ESR zu erreichen. Mit 3 Platinen wären das dann
909uF keramisch.
Spannung:
Die meisten Bauteile wurden auf 100v+ ausgelegt, effektiv werde ich im
Moment 43V LiFePo4 verwenden.
Strom:
Die MOSFETs können 380A dauer, 1200A Puls. Mit 2 Endstufen parallel
möchte ich 100A Dauer, 200A Kurzzeitig (<1 min) Motorstrom erreichen.
Ich gehe davon aus dass der Akkustrom bei max. 25 bzw. 50A liegen wird
(wegen niedriger Drehzahl).
Zur Strommessung sollen L01Z600S05 von Tamura zum Einsatz kommen, diese
werden über die entsprechenden Pinheader angeschlossen.
Vielen Dank schonmal für eure Verbesserungsvorschläge!
Hier sind noch die Datenblätter der wichtigsten Bauteile + Schaltplan
des TMC4671 Eval-Boards (von dort habe ich ein bisschen etwas
abgeschaut), damit das niemand raussuchen muss.
Sean G. schrieb:> Vielen Dank schonmal für eure Verbesserungsvorschläge!
Der Schaltplan ist schlecht lesbar. Du solltest Schaltplansymbole nicht
wie PCB-Makros zeichnen, sondern so, dass die Symbole entsprechend des
Signalflusses orientiert sind: links Eingang --> rechts Ausgang bzw.
links Ansteuerung --> rechts Leistun. Und die Versorgung ist oben und
der GND unten platziert.
> Die MOSFETs
Die musste ich erst mal suchen ... und fand sie dann unerkennbar als
viereckige Kästen, denen man nicht mal ansieht, ob das N- oder P-Kanal
Fets sind.
Dass dann die Ansteuersignale noch _P und _N statt wie üblich
_H(ighside) und _L(owside) heißen, macht die Übersicht nicht besser.
Das mit den flächigen Vias (grüne Rahmen) unter den beiden Mosfets hast
du mit deinem Fertiger abgeklärt? Nicht, dass die ganze Lötpaste in die
Vias "abtaucht" und nichts mehr für das Pad übrig bleibt.
Auch den engen Abstand deiner Kerkos solltest du mit dem Fertiger mal
durchgehen. Und auch, ob der dann hinterher die Löstellen per AOI
kontrollieren kann.
Wenn du dann noch die "unteren" 3 Mosfets ein wenig umplatzierst (rot
nach blau), dann sparst du dir unnötige Knicke (gelb).
Sean G. schrieb:> Strom: Die MOSFETs können 380A dauer
1. Nur, wenn du dabei das Gehäuse auf Tc=25°C halten kannst. Wirst du
aber nicht schaffen, denn dabei fallen immerhin bis zu 380A*380A*1,5mOhm
= 216 Watt am Mosfet an.
2. ist das der Wert aus den "Absoulte Maximum Ratings". Mit dem rechnet
man nicht, sondern man hält sicheren Abstand.
> Mit 2 Endstufen parallel möchte ich 100A Dauer
Du hast aber vorher schon mal an deutlich kleineren BLDC-Ansteuerungen
"geübt" und gelernt? Oder willst du "aus dem Stand" gleich mal mit
dieser Leistung anfangen?
Lothar M. schrieb:>> Mit 2 Endstufen parallel möchte ich 100A Dauer> Du hast aber vorher schon mal an deutlich kleineren BLDC-Ansteuerungen> "geübt" und gelernt? Oder willst du "aus dem Stand" gleich mal mit> dieser Leistung anfangen?
Das hoffe ich auch. Sieht aber so aus als wenn er ungefähr weiß was er
tut.
Sean G. schrieb:> Vielen Dank schonmal für eure Verbesserungsvorschläge!
Die 12V Leiterbahn für die Gate Treiber ist zu dünn. Diese sollte ruhig
so breit sein wie die Gate Leiterbahnen.
Dein Bootstrap Kondensator könnte mit 100nF zu klein sein.
Hier würde ich auch einen 0R in Reihe mit einplanen. Bei meinen letzten
Gate Treibern von TI sind mir öfters die internen Bootstrap Dioden
kaputt gegangen.
Eventuell sogar externe Dioden einplanen. (Hilft auch bei der
Bauteilbeschaffung mit Alternativ Typen)
Sean G. schrieb:> und 1-n gestapelten Endstufen
Wie willst du die Endstufen kühlen?
Lothar M. schrieb:> Der Schaltplan ist schlecht lesbar.
Danke, die LCSC Libs sind was das angeht echt unmöglich - ich habe jetzt
mal einige Symbole angepasst - ich denke das hat wirklich viel gebracht
bzgl. Lesbarkeit (& ich konnte viele Netlabels durch Wires ersetzen).
Lesson learned, bei EasyEDA am besten Symbole von Anfang an anpassen/neu
zeichnen :)
>> Die MOSFETs> Die musste ich erst mal suchen ... und fand sie dann unerkennbar als> viereckige Kästen, denen man nicht mal ansieht, ob das N- oder P-Kanal> Fets sind.> Dass dann die Ansteuersignale noch _P und _N statt wie üblich> _H(ighside) und _L(owside) heißen, macht die Übersicht nicht besser.
Ebenfalls beides angepasst
> Das mit den flächigen Vias (grüne Rahmen) unter den beiden Mosfets hast> du mit deinem Fertiger abgeklärt? Nicht, dass die ganze Lötpaste in die> Vias "abtaucht" und nichts mehr für das Pad übrig bleibt.
Fertiger ist JLCPCB. Ich kann die Vias also entweder Plugged machen
(tented geht ja nicht, soll ja lötbar sein), weniger Vias verwenden oder
beides. Mehr Paste geht nicht, denn der Footprint hat bereits auf der
ganzen Fläche Paste. Hat jemand hier Erfahrung sowas bei JLC zu machen?
> Auch den engen Abstand deiner Kerkos solltest du mit dem Fertiger mal> durchgehen. Und auch, ob der dann hinterher die Löstellen per AOI> kontrollieren kann.
Ist sehr sehr knapp, sollte aber laut Webseite gehen. Mit ein paar
Grabsteinen kann ich zur Not leben, und das sollte ja auch bei den
Äussersten Kerkos überhaupt passieren können.
> Wenn du dann noch die "unteren" 3 Mosfets ein wenig umplatzierst (rot> nach blau), dann sparst du dir unnötige Knicke (gelb).
Habe ich ursprünglich nicht gemacht weil ich die MOSFETs möglichst
mittig auf dem Kühler wollte, das war aber glaub ne eher blöde Idee.
> Sean G. schrieb:>> Strom: Die MOSFETs können 380A dauer> 1. Nur, wenn du dabei das Gehäuse auf Tc=25°C halten kannst. Wirst du> aber nicht schaffen, denn dabei fallen immerhin bis zu 380A*380A*1,5mOhm> = 216 Watt am Mosfet an.> 2. ist das der Wert aus den "Absoulte Maximum Ratings". Mit dem rechnet> man nicht, sondern man hält sicheren Abstand.
Ja, das weiss ich. Deshalb auch die 100A Dauer, 200A kurzzeitig mit 2
Endstufen.
So wie ich das verstanden habe fliessen pro MOSFET dann 50 bzw. 100A für
1/3 der Zeit.
50×50×1.5mOhm / 3 = 1.25 Watt
100×100×1.5mOhm / 3 = 5 Watt
Damit sollte ich doch genug Spielraum für Schaltverluste haben (mit
entsprechender Kühlung, siehe unten)?
>> Mit 2 Endstufen parallel möchte ich 100A Dauer> Du hast aber vorher schon mal an deutlich kleineren BLDC-Ansteuerungen> "geübt" und gelernt? Oder willst du "aus dem Stand" gleich mal mit> dieser Leistung anfangen?
Nein habe ich nicht. Natürlich werde ich nicht gerade mit der vollen
Leistung loslegen, das Ziel ist aber schon mit diesem Design zu dem Ziel
zu kommen (mit möglichst wenigen Iterationen natürlich :D )
Ich habe eine Anwendung wo ich bisher den Odrive 3.6 vorgesehen habe,
dieser hat sich aber als anfällig sporadisch zu sterben erwiesen. Ob das
daran liegt dass dort nur 60v MOSFETs drin sind, dass diese nur 2*150A
absolute max abkönnen, ob schlecht gelayoutet wurde oder die Software
schuld ist - I don't know. Nun habe ich halt die Hoffnung dass sich mein
Problem mit einer Hardware-FOC-Lösung und einer Endstufe mit deutlich
grösseren Sicherheitsfaktoren lösen lässt...
Parallel dazu probier ich's noch mit ODrive Pro - mindestens eine der
Varianten klappt dann hoffentlich.
John P. schrieb:> Die 12V Leiterbahn für die Gate Treiber ist zu dünn. Diese sollte ruhig> so breit sein wie die Gate Leiterbahnen.
Darauf wäre ich nicht gekommen, danke!
> Dein Bootstrap Kondensator könnte mit 100nF zu klein sein.
OK, hast du eine gute Quelle um das zu berechnen? Ich habe da leider
eher wenig gefunden, und bin dann irgendwie auf die 100nF gekommen 😅
> Hier würde ich auch einen 0R in Reihe mit einplanen. Bei meinen letzten> Gate Treibern von TI sind mir öfters die internen Bootstrap Dioden> kaputt gegangen.
Gemacht, aber hast du das wirklich dort gemeint wo er jetzt ist? Stört
das den Treiber nicht wenn die Spannung am Kerko einbricht?
> Eventuell sogar externe Dioden einplanen. (Hilft auch bei der> Bauteilbeschaffung mit Alternativ Typen)
OK, gute Idee.
> Sean G. schrieb:>> und 1-n gestapelten Endstufen>> Wie willst du die Endstufen kühlen?
40×40×10mm Kupferkühlkörperchen mit vieeeel luft (kleiner Serverlüfter)
- oder aber Wasserkühlblock.
Sean G. schrieb:> Fertiger ist JLCPCB. Ich kann die Vias also entweder Plugged machen> (tented geht ja nicht, soll ja lötbar sein), weniger Vias verwenden oder> beides. Mehr Paste geht nicht, denn der Footprint hat bereits auf der> ganzen Fläche Paste. Hat jemand hier Erfahrung sowas bei JLC zu machen?
Wenn JLC was beanstandet, dann schicken sie dir ne mail. Ich würde es
einfach drauf ankommen lassen.
Aber Gestern hab ich doch was gesehen bei JLC....
Plated and filled Vias (Via in Pad) for free on 6 Layer Boards
6 Layer Boards for 20$
wäre eventuell eine alternative?
Sean G. schrieb:> Ja, das weiss ich. Deshalb auch die 100A Dauer, 200A kurzzeitig mit 2> Endstufen.>> So wie ich das verstanden habe fliessen pro MOSFET dann 50 bzw. 100A für> 1/3 der Zeit.>> 50×50×1.5mOhm / 3 = 1.25 Watt>> 100×100×1.5mOhm / 3 = 5 Watt>> Damit sollte ich doch genug Spielraum für Schaltverluste haben (mit> entsprechender Kühlung, siehe unten)?
Ne, es fließen 100A bzw 200A für 1/3 der Zeit
Sean G. schrieb:> Nein habe ich nicht. Natürlich werde ich nicht gerade mit der vollen> Leistung loslegen, das Ziel ist aber schon mit diesem Design zu dem Ziel> zu kommen (mit möglichst wenigen Iterationen natürlich :D )> Ich habe eine Anwendung wo ich bisher den Odrive 3.6 vorgesehen habe,> dieser hat sich aber als anfällig sporadisch zu sterben erwiesen. Ob das> daran liegt dass dort nur 60v MOSFETs drin sind, dass diese nur 2*150A> absolute max abkönnen, ob schlecht gelayoutet wurde oder die Software> schuld ist - I don't know. Nun habe ich halt die Hoffnung dass sich mein> Problem mit einer Hardware-FOC-Lösung und einer Endstufe mit deutlich> grösseren Sicherheitsfaktoren lösen lässt...>> Parallel dazu probier ich's noch mit ODrive Pro - mindestens eine der> Varianten klappt dann hoffentlich.
ODrive basiert doch auf der VESC Firmware, oder?
Die VESC Firmware funktioniert und ist in vielen Designs von 500W bis
30kW vorhanden. Da würde ich den Fehler nicht unbedingt suchen.
Du solltest dich auch fragen ob deine HW-FOC Programmierung besser wird
als die VESC SW-FOC? Sonst lohnt der Aufwand nicht.
Die Hardware kannst du trotzdem besser machen.
Sean G. schrieb:> OK, hast du eine gute Quelle um das zu berechnen? Ich habe da leider> eher wenig gefunden, und bin dann irgendwie auf die 100nF gekommen 😅
Wir haben mal ein Excel Sheet dazu geschrieben mit allen möglichen
Formeln.
Wenn du willst kann ichs mal rechen lassen. (Leider kann ich das Sheet
nicht rausgeben)
Der Witz ist das einige App Notes darauf hinweisen den berechneten Wert
mal 10 zu nehmen.
Warum....weiß ich bis heute nicht.
Wenn cih deine 100nF mal 10 nehme komme ich auf 1uF. Diesen wert hätte
ich aus dem Bauch heraus auch genommen.
hab bei mir 2.2uF aber auch deutlich mehr Gate Charge.
Sean G. schrieb:> Gemacht, aber hast du das wirklich dort gemeint wo er jetzt ist? Stört> das den Treiber nicht wenn die Spannung am Kerko einbricht?
Jup genau da.
Die Spannung am Kerko soll ja möglichst nicht einbrechen. Deswegen muss
er ausreichend groß sein.
Aber wenn er geladen wird fließt eben auch viel strom und lange (alles
relativ)
Bei meinem letzten Design hatte ich auch die TI Gate Treiber mit
interner Diode. Diese sind regelmäßig kaputt gegangen. Hier hätte ich
mir einen R gewünscht um den Strom begrenzen zu können. Außerdem kann
man an dem R auch mal den Strom messen. Ist dann auch ganz praktisch zum
verstehen.
Brauchst aber einen differentiellen Tastkopf
Sean G. schrieb:> und 1-n gestapelten Endstufen
noch ein Hinweis.
Dein Treiber kann nur 3A. Die musst du aufteilen.
Bei einer Endstufe kannst du die 3A voll ausnutzen.
Bei 2 Endstufen kann jeder Mosfet nur noch 1,5A
Bei 3 Enstuden nur noch 1A
usw
Daher solltest du dich schon vorher festlegen wie viele Endstufen du
maximal haben möchtest. Dann kannst du die Gate Widerstände entprechend
dimensionieren.
John P. schrieb:> Wenn du willst kann ichs mal rechen lassen.
Also:
Mein schlaues Excel Sheet kommt auf folgende Werte:
17W Verlustleistung bei 16kHz PWM und 100A (12W Leitverluste, 5W
Schaltverluste)
Als Bootstrap C sollen es 150nF sein mal Faktor 10
Deine Minimale Totzeit sind 215ns
Alles gerechnet für eine Endstufe und ohne Garantie auf Richtigkeit
John P. schrieb:> Wenn JLC was beanstandet, dann schicken sie dir ne mail. Ich würde es> einfach drauf ankommen lassen.
Das ist auch meine aktuelle Strategie - bis jetzt hat mir JLC noch alles
(sauber) gefertigt inkl. Bestückung.
> Plated and filled Vias (Via in Pad) for free on 6 Layer Boards> 6 Layer Boards for 20$>> wäre eventuell eine alternative?
Das habe ich mir auch überlegt (die inneren Lagen könnten ja auch noch
genutzt werden zur Verstärkung der Hochstrom-Pfade) - allerdings müsste
ich dann 0.5mm statt 0.3mm Vias machen --> mehr Widerstand.
> Ne, es fließen 100A bzw 200A für 1/3 der Zeit
Ich meinte pro Endstufe. Bei 100A Motorstrom wären es doch 50A pro
Endstufe, und diese 50A Fliessen im schnitt durch 2 von 6 MOSFETs? Oder
habe ich da was falsch verstanden?
> ODrive basiert doch auf der VESC Firmware, oder?
Wusste ich nicht, wenn dann wahrscheinlich nur ein kleiner Teil (?)
Den ODrive 3.6 finde ich ne ziemliche Katastrophe:
- USB ist unzuverlässig, die haben soviel ich weiss irgend nen
Hardware-Bug welcher ab und zu zu Datenverlust führt
- Serielle Schnittstelle (Fibre) ist schlecht dokumentiert & allgemein
ein ziemlich komisches Protokoll
- Serielle Schnittstelle (ASCII) stürzt je nach Datenrate nach Minuten
bis Stunden ab, Bug wurde im 2019 gemeldet & durch ODrive reproduziert -
ist aber immernoch ungefixt.
Um diese Probleme einigermassen zu umgehen konfiguriere ich den ODrive
am Anfang einmal, und arbeite dann mit STEP/DIR. Telemetrie habe ich
aber natürlich keine so (weil eben sonst crasht's nach ner gewissen
Zeit) - und sowieso wäre die Telemetrie enorm langsam weil man immer nur
einen Wert auf einmal abfragen kann.
Da gefällt mir der TMC mit seiner SPI Schnittstelle deutlich besser.
Auch wenn ich dort mehr selber programmieren muss.
> Die VESC Firmware funktioniert und ist in vielen Designs von 500W bis> 30kW vorhanden. Da würde ich den Fehler nicht unbedingt suchen.
Das einzige Problem bei VESC ist dass mir von mehreren Seiten gesagt
wurde dass VESC nicht wirklich für Positionierung geeignet sei. Und
STEP/DIR fehlt auch.
> Du solltest dich auch fragen ob deine HW-FOC Programmierung besser wird> als die VESC SW-FOC? Sonst lohnt der Aufwand nicht.
Das ist eine gute Frage, die wohl nur Trinamic beantworten kann :P
Mein erster Eindruck mit einem Eval-Board (kann aber leider nur 10A) ist
aber sehr gut. Und per SPI die Register korrekt zu befüllen werde ich
wohl hin bekommen... Notfalls kann ich die Kalibrierung sogar per
Eval-Software machen und die Parameter hardcoden.
> Daher solltest du dich schon vorher festlegen wie viele Endstufen du> maximal haben möchtest. Dann kannst du die Gate Widerstände entprechend> dimensionieren.
Jede Endstufe hat ja einen eigenen Treiber/Gate Widerstand. Deshalb auch
Treiber mit kleinem Delay und gutem Delay Matching (in der Hoffnung dass
die auch von Chip zu Chip genau sind innerhalb einer Charge).
So muss ich statt 12 Potentiale mit bis zu 3A nur 6 TTL-Signale durch
den Stapel führen. Und die stehen Orthogonal zu den hohen Strömen -->
hoffentlich kaum Crosstalk.
John P. schrieb:> Mein schlaues Excel Sheet kommt auf folgende Werte:>> 17W Verlustleistung bei 16kHz PWM und 100A (12W Leitverluste, 5W> Schaltverluste)>> Als Bootstrap C sollen es 150nF sein mal Faktor 10>> Deine Minimale Totzeit sind 215ns>> Alles gerechnet für eine Endstufe und ohne Garantie auf Richtigkeit
Danke für's rechnen. In dem Fall mache ich 1.5uF rein. Dann sollte ich
aber von Anfang an einen Widerstand einbauen, oder?
Weil im Datenblatt steht leider kein Maximalstrom für die Diode, aber
der C wird mit typisch bis 100nF angegeben. Die Diode hat scheinbar ~1
Ohm, was ja einen worst case Ladestrom von 12A ergibt.
Ah und Entkopplung am Treiber habe ich gelesen soll 10x CBoot sein. Da
muss ich in dem Fall vielleicht sogar 2 einbauen oder ein grösseres
Package.
Aber krass dass VESC bei ihrem 300A Regler scheinbar mit 100nF durch
kommt:
https://vesc-project.com/sites/default/files/Benjamin%20Posts/vesc_75_300.pdf
Sean G. schrieb:> Ich meinte pro Endstufe. Bei 100A Motorstrom wären es doch 50A pro> Endstufe, und diese 50A Fliessen im schnitt durch 2 von 6 MOSFETs? Oder> habe ich da was falsch verstanden?
Nein alles gut. Bei 2 Endstufen und 100A Motorstrom hast du 50A pro
Mosfet
Sean G. schrieb:> Das ist eine gute Frage, die wohl nur Trinamic beantworten kann :P
Ohhhhh....mein Fehler. ALs du Hardware FOC geschrieben hast hatte ich
direkt an die TI Mikrocontroller gedacht mit Hardware Park-Clark
transformation.
Ich hatte überhaupt nicht mehr auf dein TMC Chip geguckt. Ja das sollte
sich sehr einfach machen lassen.
Sean G. schrieb:> Jede Endstufe hat ja einen eigenen Treiber/Gate Widerstand. Deshalb auch> Treiber mit kleinem Delay und gutem Delay Matching (in der Hoffnung dass> die auch von Chip zu Chip genau sind innerhalb einer Charge).> So muss ich statt 12 Potentiale mit bis zu 3A nur 6 TTL-Signale durch> den Stapel führen. Und die stehen Orthogonal zu den hohen Strömen -->> hoffentlich kaum Crosstalk.
Stimmt. Das passt dann.
Sean G. schrieb:> Danke für's rechnen. In dem Fall mache ich 1.5uF rein. Dann sollte ich> aber von Anfang an einen Widerstand einbauen, oder?> Weil im Datenblatt steht leider kein Maximalstrom für die Diode, aber> der C wird mit typisch bis 100nF angegeben. Die Diode hat scheinbar ~1> Ohm, was ja einen worst case Ladestrom von 12A ergibt.>> Ah und Entkopplung am Treiber habe ich gelesen soll 10x CBoot sein. Da> muss ich in dem Fall vielleicht sogar 2 einbauen oder ein grösseres> Package.>> Aber krass dass VESC bei ihrem 300A Regler scheinbar mit 100nF durch> kommt:> https://vesc-project.com/sites/default/files/Benjamin%20Posts/vesc_75_300.pdf
Bau ruhig einen Widerstand mit rein. Vielleicht ein paar Ohm Dann kannst
du auch den Strom mal messen.
Es kann auch mit 100nF funktionieren. Aber du kannst es nur messen wenn
du ein Oszi und einen differentiellen Tastkopf hast (oder mit 2 Kanälen
geths auch).
So habe ich mich rangetastet. Bis die Bootstrap Spannung mit 1µF stabil
war. Zur Sicherheit verbaue ich 2,2uF. Eventuell übertreibe ich auch.
Wenn du mit 1u startet passt das. Dann kannst du dem Treiber 100nF und
10uF spendieren.