Mit den Fotos zeigt sich auch der mechanische Aufbau besser als mit einem Layout. Jedoch sieht man so auch das einiges noch nicht 100%ig passt. Die 3,5mm Bullets passen leider nicht so weit in die Aussparungen rein wie gedacht. Da muss ich ggf. noch über eine metalisierung der Kanten nachdenken und eine breitere Aussparung. Oder ich lasse die Aussparungen weg und spare die Platinenfläche. Die Bullets werden dann einfach mit 3mm Kupferdraht an die Platine gesetzt.
Ein weiterer Punkt der mich aktuell stört ist die Plazierung der BAT+ und BAT- Pads. Diese kommen in einer nächsten Version an den Rand. So werden die Kabel nicht mittig über die Bauteile geführt. Ggf. ist hier eine metallisierte Außenkante als PAD/Kartenrandkontakt auch gut. Die Frage ist nur wie teuer so eine Platine wird.
Die erst Schaltungsteile wie der BEC-Stepdown laufen schon mal, als nächstes werde ich den Prozessor in Betrieb nehmen und sehen ob der DRV auf SPI-Anfragen antwortet.
Die Bilder sprechen für sich, ein schweizer Käse hat weniger Löcher:
Oberseite der Platine
Unterseite der Platine
Dafür das die Platinen aus Deutschland bei 4-lagiger 70µm Kupferauflage ähnlich viel Kosten wie vergleichbare China-Platinen ist die Qualität optisch um Welten besser. Der Bestückungsdruck ist astrein, kein Versatz oder ähnliches. Die Vias sitzen alle zu 100%. Einzig der Lötstopplack ist sehr dünn und deshalb sind Pads der TQFPs die nur von einer Bahn kontaktiert werden schmaler als Pads die auf der Massefläche liegen. Das ist aber nur ein minimaler optischer Mangel der bei weniger Kupferauflage wahrscheinlich gar nicht auffällt.
In diesem Sinne, bestücken und in Betrieb nehmen. Hoffentlich sind keine Fehler drin. Einen winzigen Layoutfehler habe ich schon gefunden :(, ist aber nicht weiter wild. Das Via unter dem U4 (LMR14030) sollte 2mm haben. Der Durchmesser ging aber anscheinend beim Layouten an unterschiedlichen Rechner unter. Aber das ist kein Beinbruch. Es macht nur das Löten des PowerPADs des ICs mit dem Lötkolben schwieriger.
Seit dem letzten Post habe ich die Plazierung der Pads für den Empfängereingang und BEC-Ausgang überarbeitet. Das war nötig weil der Strompfad zum 5V Pad in der letzten Variante auf einer Innenlage verlief und das Ground-Pad war noch schlechter angebunden. Das wäre bei 3A Dauerstrom wahrscheinlich auf gebrannt oder zumindest sehr heiß geworden. Jetzt ist der Ausgang direkt an den 5V Ausgang des Schaltreglers gewandert. Die Groundanbindung ist wesentlich besser und mehr lagig. Und der Rückstrompfad des Ausgangskondensators des Schaltreglers ist jetzt um Welten besser als in der letzten Variante. Wie in dem Bild zusehen, von dem Pad 2 des 1206 Kerkos in der Mitte eine breite Massefläche nach oben zum eigentlichen Schaltregler. Dieser niederimpedante Strompfad sollte dazu beitragen, dass der Stepdown sauber und mit wenig Rauschen arbeitet. Für nähere Infos zu dem
Thema Strompfade bei Schaltregler Layout verweise ich gern an die Seite von Lothar Miller.
Außerdem habe ich die Anordnung der 100nF Kerkos für die Versorgung des STM32 geändert. In der alten Variante waren auf der rechten Seite oben und unten keine Kerkos. Damit aber jedes Paar der Versorgungsspannung eine niederimpedante Entkopplung hat habe ich noch mal einige Bauteile umplaziert, damit die Kerkos möglichst dicht an die Pins des STM32 sitzen. Gerade im Analogbereich oben rechts habe ich viel umordnen müssen um den Kondensator dort unterzubringen.
KiCAD und Via-Stitching
Wahrscheinlich hat jeder Nutzer von KiCAD irgendwann das Problem, dass er ein einzelnes Via setzen muss. Also Leiterbahn ziehen Lagen wechseln mit Taste 'V' und gut. Nur bei mehr als 100 Vias macht das keinen Spaß. Außerdem entfernt KiCAD überflüssige Verbindungen automatisch (Wenn man es aktiviert). In Eagle konnte ich einfach ein Via in eine Fläche setzen und fertig. Bei KiCAD gibt es diese Funktion so nicht. Also muss man sich umständlich ein Footprint erstellen mit einem Via und dieses dann mehrfach im Layout duplizieren. Und dann muss das Via auch noch dem korrekten Netznamen zuordnen sonst weiß KiCAD nicht, dass das Via zu dem Netz in des es plaziert wurde auch gehört. Das kingt erstmal sehr kompliziert. Aber es ging dann eigentlich gut von der Hand. Bis ich gemerkt habe, dass mein Via Footprint eine Aussparung in der Lötstopmaske hat.
Bei der Menge an Vias sieht da komisch aus wenn einige Vias freigestellt und Verzinnt sind und andere Vias sind normal mit Lötstopp überzogen. Also das Footprint geändert und die Lötstopausparung gelöscht. Aber KiCAD synchronisiert die Footprints nicht automatisch. Und ich sah mich schon jedes einzelne Via editieren. Also ein Via genommen und das Editieren Menü geöffnet. Dann Footprint ändern und siehe da, KiCAD hat mir angeboten Das neue Footprint für alle meine Vias mit der selben Referenz zu übernehmen. Augenzu und angeklickt, siehe da er hat alle Vias mit einem Klick geändert! Puh :)
Es hat etwas gedauert aber jetzt ist der neue Schaltplan und das Layout auf einem Stand den man zeigen kann.
Die Unterseite der Platine mit den 12 Fets und dem DRV8305.
Die Oberseite der Platine mit dem STM32F446RE, den Shunts und dem restlichen Hühnerfutter.
An der linken Seite ist der 3,5A Stepdown mit dem LMR14030 auf der Rückseite, daneben befindet sich der STM32F446 in LPFP64, sowie der DRV8305 darunter. Unterdem DRV ist das Powerpad als Pad mit 3mm Bohrung ausgeführt, damit der DRV komplett von Hand bestückt werden kann. Dann folgen 2 dicke Elkos für den Zwischenkreis. Die habe ich zur besseren Übersicht ausgeblendet, außerdem sollen diese Elkos liegend bestückt werden. Zur niederimpedanten Entkopplung der Versorgung folgen dann 1 Kerko je Phase und dann ein Shunt je Phase. Zum Schluss befindet sich rechts der Anschlussbereich in dem 3,5 - 4mm Goldkontakte eingelötet werden können.
Nichts ist so beständig wie der Wandel. Deshalb habe ich nach langem Hin und Her dazu entschlossen das alte Design nur abzuwandeln, aber die Dimensionierung gleich zu lassen. Das Ziel ist immer noch ein kleiner leichter BLDC-Umrichter für den Air Combat. Ohne zusätzliche Kühlung sollen 20A bei 6S kontinuierlich möglich sein.
Es hat ein BEC
BEC mit getrennten LDOs für Analog- und Digitalversorgung
Entgegen meines letzten Posts bekommt der TDCombat ein 5V 3,5A BEC, von welchem die 3V3 für den STM32 mit 2 TPS73233 abgeleitet werden. Wenn ich diesmal das Layout nicht verbocke, dann sollte die Versorgung gesichert sein.
Ein DRV830x sie zu knechten
Der DRV8305 integriert einen Großteil der Schaltung
Wenn man in diesen Tagen einen BLDC-Regler designed der halbwegs klein werden soll, kommt man um die DRV830x von TI nicht herum. Ich habe mich immer gescheut vor diesen ICs, weil gerade die DRV8301/2 sehr zickig sind, was Lagerung und Löten betrifft. Diese ICs von Hand mit dem Lötkolben zu bestücken ist unmöglich außer man macht sich das PowerPAD des ICs mit einem großen Via zugänglich, und genau das habe ich mit dem DRV8305 vor.
Warum der DRV8505 und nicht der 8301 oder 8302
Weil er neuer ist :). Und weil der 1,5A Stepdown des 8301 oder 8302 überflüssig ist durch das 3,5A BEC. Außerdem ist der DRV8305 noch weiter integriert als seine älteren Brüder. Wie an dem Schaltplan zu sehen ist braucht der 8305 keine Gatebeschaltung. Das Schaltverhalten soll sich laut Datenblatt mit 2 Parameter (IDRIVE und TDRIVE) einstellen lassen.
Der etwas niedrigere maximale Gatestrom von ca. 1A ist für die kleinen Toshiba-FETs mehr als ausreichend. Dennoch bin ich gespannt wie sich der Treiber verhält und ob parallel geschaltete FETs Probleme machen können.
Der größte Gewinn ist aber die Überwachung jedes FET-Paares auf Überstrom. Sollte ein FET durchschlagen oder ein Phasenschluss auftreten, so schaltet der DRV alle FETs ab und meldet den Fehler. Somit sollte ein Defekt in der Brücke keinen Totalausfall der BEC-Versorgung zur Folge haben und der Flieger sollte noch kontrollierbar sein.
Zusätzlich hat der DRV8305 einen dritten Verstärker für eine dreiphasige Strommessung. Damit kann der Regler mit 100% Duty fahren. Denn bei einer 3phasigen SVPWM ist immer nur eine der Phasen bei 100% Duty und die beiden haben einen so geringen Dutycycle, dass eine Strommessung in den Phasen möglich ist. Und wenn die Phase außerhalb dieses Bereiches sind kann die 3. Strommessung genutzt werden um jegliche Gleichtaktstörung auf den Strommessungen zu kompensieren, in dem die vollständige 3 phasige Clark-Transformation berechnet wird.
Das Hirn des Ganzen
Der STM32F446RE übernimmt die Steuerung und Regelung des Antriebs.
Zum entwickeln der Software habe ich gern etwas mehr Rechenleistung. Ein STM32F303RC reicht mit 72MHz eigentlich aus für die FOC, den Beobachter und die Zustandsüberwachung des Motors. Dennoch ist Leistung nur durch mehr Leistung zu ersetzen. Außerdem bietet der STM32F446 mit 180MHz so viel Luft nach oben, dass ich damit die Regelfrequenz von 10kHz auf 20kHz erhöhen kann und noch Luft nach oben habe für Telemetrie (z.B. Graupner HOTT) und ggf. UAVCAN, falls ich den Regler auch für Copter einsetze. Zum debuggen und testen auf dem Schreibtisch habe ich noch 2 Taster-Eingänge und DAC-Ausgänge (Danke an Andreas für die Idee) vorgesehen. Außerdem leiste ich mir in der Software den Luxus eines RTOS (Chibios/RT). Das ist nicht wirklich notwendig, macht aber das Softwaredesign einfacher. Genauso erleichtert die Verwendung von C++ die Programmierung, sofern man sinnig mit den Sprachkonstrukten umgeht.
Es gibt tausende von verschiedenen BLDC-Reglern auf dem Markt und recht viele sind sogar Opensource oder Openhardware Projekte aber nur ganz weniger benutzen feldorientierte Regelung.
Warum ist das so? Klar FOC ist wesentlich aufwändiger zum implementieren und die Hardware wird ebenfalls aufwändiger. Aber ein Hauptgrund ist die Entwicklung eines zuverlässigen Beobachters für die Lage des Rotors. Einem BLDC-Regler reichen 6 Zustände, die er entweder über die
Messung des Nulldurchgangs der BEMF des Motors ermittelt oder über 3 HALL-Sensoren.
Die feldorientierte Regelung braucht aber einen möglichst genauen Lagewinkel des Rotors um den Antrieb effizient zu regeln. Deshalb braucht man entweder einen Encoder an der Rotorwelle oder ein Modell mit dem die Rotorlage rechnerisch bestimmt wird. Und gerade dieser Punkt ist für mich als Regelungstechniker am interessantesten.
Genau wie konventionelle BLDC-Regler hat auch ein Umrichter der mit feldorientierter Regelung arbeitet, dass bei niedrigen Drehzahl die Gegenspannung des Motor zu gering ist um an ihr die Rotorlage zu bestimmen. Aber der große Vorteil der feldorientierten Regelung ist, dass das Motor-Modell so ausgelegt werden kann, dass der Beobachter aus dem Stillstand des Motors herraus eine halbwegs genaue Rotorlage ermitteln kann und so der Motor ohne Startroutine anläuft.
Benjamin Vedder demonstriert das gerade mit seinem VESC und diesem Beobachter und seine Ergebnisse sehen sehr gut aus. Sein erstes Vergleichsvideo zeigt sehr schön einen wesentlichen Vorteil der FOC.
Das ganze ist wesentlich leiser. Es gibt weniger Vibrationen auf dem Antrieb, weil die Ströme schön sinusförmig sind und wenn man die PWM-Frequenz auf 20kHz setzt hört man auch die PWM nicht mehr. Was bleibt sind entweder mechanische Geräusche der Lager und des Getriebes oder Schwingungen die durch eine schlecht eingestellte Regelung kommen. Aber das Verfahren ermöglicht einen sehr ruhigen und leisen Lauf der Maschine.
Besonders merkt man, unter Last. Wie mein Video hier mit meinem RES-Beobachter-System zeigt.
Die PWM ist mit 20kHz nicht zu hören und der Motor dreht sich ohne fiepen oder ähnliche Töne obwohl gerade 20A fließen. Was man hört ist der Lagerschaden des 6374 vorn im Bild :).
Aber was bringt der Aufwand jetzt?
Eine E-Maschine die nahezu lautlos und vibrationsarm läuft. Außerdem stellt eine Stromregelung auch eine sehr wirksame Strombegrenzung dar. Falls die Luftschraube zu groß ist und der Motor mit einem normalen BLDC-Regler überhitzen würde, ist das mit einem Umrichter der FOC verwendet,
nicht möglich (Wenn die Stromgrenze richtig gewählt ist.). Wenn 20A über die Fernbedienung vorgegeben werden, dann stellt der Regler sie ein. Mehr Strom fließt dann nicht.
Gerade für die Anwendung im Kopter ist außerdem wichtig, dass so ein Umrichter neue Sollwerte viel schneller anfahren kann. Damit steigt die mögliche Dynamik des Lageregelkreises einen Kopters. Damit fliegt der Kopter ruhiger und kann schneller seine Lage verändern.
Für den Modellflug mit Flächen-Modellen ist die höhere Effizienz und der ruhige Lauf das beste Kriterium. Gerade in einem großen Schlepper mit 12-14S kann sich der Einsatz von FOC richtig lohnen. Das Modell ist leiser und nimmt bis zu 30% weniger Strom auf. (Zu gegebener Zeit werde ich Gerd Giese ein Exemplar des Umrichters schicken, damit er diese Behauptung mit Messergebnissen untermauern kann :). ) .
Und hier kommt mein Dilemma mit dem TD Combat. Für den kleinen 3S Miefquirl lohnt sich solch ein Aufwand nicht. Ab 6S wird das Thema eigentlich erst interessant, Deshalb habe ich auch beschlossen, Das BEC fliegt raus! Ein externes BEC oder eine andere Empfängerstromversorgung ist in diesem Bereich durch aus üblich, und ich brauche keinen ineffizient arbeitenden viel zu groß ausgelegten Schaltregler für 5-8,4V auf dem Umrichter vorsehen. Das spart Platz und sorgt für eine bessere Spannungsversorgung der restlichen Bauteile.
Das aktuelle Design von TD Combat ist so leider nicht in Betrieb zu nehmen. Ich habe den DRC von KiCAD nicht explizit drüber laufen lassen, sondern nur den pseudo DRC welcher immer mit läuft.
Man lernt nie aus...
Aber ein paar Erkenntnisse konnte ich gewinnen.
Die ACS711 im EX Gehäuse lassen sich ohne Stencil nicht sonderlich schön von Hand bestücken. Ich bestücke aber gern von Hand und ohne Ofen, weil ich so die Platine Stück für Stück in Betrieb nehmen kann.
Die Toshiba-Fets und andere Fets in einem SO-8 ähnlichen Gehäuse sind weit billiger als D2PAK-Fets und lassen eine länglichere Platine mit 3 parallel geführten Phasen wunderbar zu. Die gleiche Brücke mit 12 Fets wie im Layout vom TD Combat wäre in D2PAK ca. 50x50mm groß in SO-8 weniger als 30x30mm. Außerdem ist mir die TPW Serie von Toshiba aufgefallen.
Wenn solche Fets einseitig, wie bei dem Layout des TD Combat einseitig bestückt werden, kann die Platine flach auf eine Alu-Platte geschraubt/geklebt werden. Damit ist eine sehr gute Kühlkörper Anbindung gewährleistet. Der Kühlkörper muss aber leider elektrisch isoliert werden weil die Kühlflächen der Fets auf Source-Potential liegen.
Somit sind die eigentlichen Probleme, die Überlappungen in den Boards und das EX-Gehäuse der ACS711. Mit dem DRC sind die Überlappungen schnell korrigiert, aber was ist mit dem ACS711.
Das Design mit den 2 parallel geschalteten Sensoren hat seinen Charme zu mal es so flach ist das die Sensoren ebenfalls auf der Seite mit den FETs bestückt werden können und so auch gekühlt werden.
Jedoch hat der Sensor in SO-8 nur einen Messbereich von +/- 25A, womit ohne zusätzlichen Shunt parallel zu dem oder denn Sensoren nur +/- 50A Spitze möglich sind. In Anbetracht der Leistung, die die FETs mit Alternativ-Bestückung treiben können ist das zu wenig und zu unflexibel.
Eine Messung über einen Shunt erscheint mir hier viel variabler und vielseitiger zu sein. So kann die Messung für +/- 50A dimensioniert werden oder aber auch für +/- 200A Spitze. Diese 200A sind alles andere als utopisch mit sauberem Design und 4xTPWR8004PL parallel liegt der RDSon je phase bei weniger als 0,25mR.
Aber ein Shunt lässt sich nur in der low-side einsetzen und kann nur gesampled werden, wenn in der jeweilige Phase der low-side FET leitend ist. Außerdem ist direkt nach dem Schalten des FETs mit Oberwellen zurechnen, folglich muss der FET für 1-2µs mindestens leitend sein. Das beschränkt aber wieder den maximalen Duty des Reglers und damit die Ausnutzung der Akkuspannung.
Deshalb muss der Shunt in die einzelnen Phasen oder es muss eine hochdynamische Batteriestrom-Messung erfolgen. Dafür müssen aber die PWM-Muster so beeinflusst werden das zum Messzeitpunkt immer ein Strom einer bekannten Phasen fließt.
Das schöne an der single Shunt-Messung ist, dass man gleich eine Überstromüberwachung hat, die auch einen geschossenen FET erkennt. Das ist bei der Phasenstrommessung nicht möglich. Die Frage ist aber verbaut man sich damit die Möglichkeit INFORM zu implementieren?
Die Platinen von elecrow in 4-lagig mit 1 mm Dicke sahen schon als ich sie bekam nicht so gut aus! Die 2- und 4-lagigien die ich bisher dort in Grün und 1,6 mm bestellt habe, waren immer einwandfrei. Diese Platinen scheinen aber ein Problem mit dem NR-Pin (Pin 4) des U202 zu haben.
Im Datenblatt des TPS73233 findet man dieses Bild:
Der NR-Pin geht hier nach der Bandgap-Referenz mit einem 27k Widerstand ab. Zur Filterung der Referenz kann man an diesen Pin dann einen 10nF Kondensator hängen.
Zum Problem: In den TPS gingen 5V rein und nur 2V kamen raus. Warum? Das geht nur wenn die Referenz für den Error Amp nicht der Spannung entspricht die der LDO erwartet. Und das kann nur sein wenn der NR-Pin einen relevanten Widerstand nach GND hat. Ok also C208 runter vom Board.
Leider auf Kies gefurzt, immer noch 2V :(. Nach etwas grübeln habe ich gedacht, das kann nur der NR-Pin sein. Also Pin abgekniffen und noch mal Spannung und siehe da 3,3V am Ausgang!
Ok also unbestückte Platine genommen und den Widerstand zwischen GND (Pin 2) und NR (Pin 4) gemessen = 0R, Klasse!
Es kommt noch Dicker. Ich hab den DRC in KiCAD nicht richtig bedient. Ok es war mein erstes Design mit KiCAD und ich bin dennoch überzeugt das KiCAD besser ist als der Eagle, ich muss nur lernen es zu bedienen...
Erste Eindrücke des Designs, jedoch ist gerade die Logik-Platine bestückt, wegen der Problematik mit der Spannungsversorgung.
Jede Platine ist 31x50mm, hier sind beide Unterseiten der 4-lagigen Platinen zusehen
Beide Oberseiten der Platinen, die Aussparungen der Leistungsplatine sind zum einlöten von 3,5 - 4 mm Goldkontakten.
Final werden die Platinen aufeinander gesteckt und in Schrumpfschlauch verpackt.
Leider sind die Platinen nur 1 mm dick.
Die obigen Fotos zeigen mal einen Überblick über das Design des TD Combat. Die Stecker sind hier nur für Debug-Zwecke drauf. In einer finalen Version werden an den Pads die Kabel direkt angelötet.
Es sind Anschlüsse für externe Taster, HOTT-Telemetrie und ein USART zum Debuggen vorgesehen. Außerdem findet sich auf dem Board ein Cortex-M 0,1 Inch SWD/JTAG Stecker für meinen J-Link. Zu guter Letzt ist der Standard-Anschluss für einen Empfänger mit PPM vorgesehen.
Auf den Boards ist eine 3-phasige Spannungsmessung und eine Zwischenkreis-Spannungsmessung aufgebaut, sowie eine 3-phasige Strommessung mit jeweils 2 parallel geschalteten ACS711-EK mit +-31A Messbereich. Damit ergibt sich ein Strommessbereich von +-62A pro Phase, was grob einem Batteriestrom von +-40A entspricht.
Und wie fast immer hat diese erste Platinenversion mehrere kleine Fehler. Man achte zum Beispiel auf den THT Quarz auf dem Logik-Board. Hier war das KiCAD Footprint für den SMD-Quarz falsch bzw. meine Pin-Nummerierung im Symbol ist spiegelverkehrt. Außerdem habe ich im Schaltplan 2x 10µF Kondensatoren für den Ausgang des Schaltreglers vergessen. Also ACHTUNG an alle die gern den Webbench Designer von TI verwenden um einen Schaltregler auszulegen. Der malt einen Schaltplan mit einem Kondensator und schreibt 3x10µF dran. Das übersieht man leicht :(. Aber es war zu retten. Der gelbe Tatal-Elko auf dem Logik-Board hat 100µF und sollte fürs erste reichen.
Ach ja noch was besonderes, was ich mit diesem Design ausprobieren wollte ist die Versorgung der MosFet-Treiber IR2186 mit 10V. Diese werden von einer Ladungspumpe LM2767 aus den 5V erzeugt.
Montag, 25. Januar 2016
Die Crux des TD Combat, das Netzteil. Ich wollte unbedingt ein 3A BEC mit 5V für die Versorgung von Empfänger und Servos um Modellflugzeug mit integrieren. Und genau das macht jetzt Probleme. Interessanter Weise ist aber nicht der Schaltregler das Problem, sondern der TPS73233 für die 3V3 Versorgung des STM32. Dieser liefert egal ob mit der ohne Last nur ca. 2V.
Der 2. TPS für die Analogversorgung liefert anstandslos seine 3,3V. Mein Verdacht ist aktuell das irgendwas mit der Beschaltung des NR-Pins nicht in Ordnung ist.
Für die jenigen die sich den Schaltplan genauer ansehen, die 10µF von C205 sind zu wenig, ich musste hier einen 100µF Tatal nach bestücken. Ich hab leider in dem Design Tool auf der TI-Seite das 3x 10µF am Angangskondensator über sehen und nur einen vorgesehen. Ein Redesign des Boards ist also schon mal gebucht. Mal sehen was ich noch so finde. Aber erstmal muss der U202 laufen. Zur Not wird er durch einen TPS73633 ersetzt.