In diesem Blogpost geht es um die Weiterentwicklung des Motorcontrollers “Micro-Motor” zur Version 2. Die bisherige Entwicklung des Motorcontrollers kann in mehreren älteren Blogposts nachgelesen werden.

Makro-Aufnahme Micro-Motor Fädeldraht

Nachdem der einzige aufgebaute Prototyp des Micro-Motors beim Testen durch einen von einer Oszi-Probe verursachten Kurzschluss am Gatetreiber defekt war, wurde eine minimal modifizierte Schaltung als “Macro-Motor” auf einer größeren Platine aufgebaut um bequemer verschiedene Messungen durchführen zu können.

Auch die Macro-Motor-Platine war leider nicht fehlerfrei. Unter anderem war leider der Footprint des neuen Spannungsreglers im WLCSP-6 (Wafer Level Chip Scale Package; 1x1,6mm²) spiegelverkehrt. Ebenso war einer der beiden aufgebauten Prototypen nach dem Reflow-Löten nicht funktionsfähig, was auf durch von Hersteller zusätzlich verkleinerte Ausschnitte im Stencil verursachte zu geringe Menge an Lötpaste zurückzuführen war. Beim Versuch die nicht verlöteten Pins des Gatetreiber-ICs von Hand nachzulöten ist dieser leider zerstört worden.

Unabhängig von den bisher aufgetretenen Problemen sind neue Wünsche entstanden. Für eine intelligente Motor-Kommutierung statt der bisher verwendeten stupiden Block-Kommutierung ist es teilweise nötig die Ström in den Phasen sowie auch die Spannung der Motorphasen zu messen. Bessere Motor-Kommutierungen erlauben durch Sinus-förmige Ansteuerung mehr und gleichmäßigeres Drehmoment in sehr niedrigen Drehzahlbereichen zu erzeugen sowie auch Motoren ohne Hall-Sensoren anzusteuern. Außerdem wurde in der Saison eine präzise und zuverlässige Strommessung sehnlichst vermisst, sodass auch diese ein erklärtes Ziel ist.

Systemüberblick

Micro-Motor V2 Blockdiagram

Komponentenauswahl

Der Microcontroller wird nach bisheriger Planung ein STM32L433CCU im UFQFPN48 Gehäuse bleiben.

Ebenso gibt es keinen Anlass den Gatetreiber DRV8323S auszutauschen, da sich dieser durchgehend bewährt hat. Es wird jedoch die Variante ohne integrierte Shuntverstärker verwendet, da die Shuntverstärker ein zu geringes Gain-Bandbreiten-Produkt aufweisen und keine präzise Strommessung zulassen.

Die Spannungswandler werden für 5V und 3,3V werden durch hochintegrierte Schaltwandler-Module ersetzt, welche sich schon beim Alpha-Motor bewährt haben und auch für leistungshungrige Encoder oder Endschalter genügend Strom liefern kann.

Der bisher vorgesehene I²C-Temperatursensor TMP006 (nicht mehr verfügbar) und die I²C-Anschlusspads für externe digitale Sensoren sollen durch einen analogen NTC-Temperatursensor ersetzt werden. Ein NTC ist kompakter, günstiger, leichter am Motor zu befestigen und hat eine zur Überwachung der Motortemperatur ausreichende Genauigkeit.

Shuntverstärker und Komparator

Neu auf der Liste der Bauteile sind dedizierte Shuntverstärker und Komparatoren. Hier müssen die verfügbaren Bauteile noch analysiert und verglichen werden. Ein gutes Rennen bei den Shuntverstärkern liefert aktuell der LT1999 von Analog ab.

Da die Strommessung “inline” in den Motorphasen stattfindet muss der Shuntverstärker eine sehr hohe Gleichtaktunterdrückung aufweisen. Gleichzeitig ist eine hohe Bandbreite von etwa 500 kHz bis 1 MHz gefordert um bei einer PWM-Frequenz noch brauchbare Messwerte zu liefern. Die Gleichtaktspannung muss bis zu 24V betragen, außerdem ist neben einem hohen Gain, welcher die Verwendung von niederohmigen Shunt-Widerständen erlaubt, ein kleines Gehäuse gewünscht.

Folgende Shuntverstärker stehen aktuell zur Auswahl:

LT1999

  • Gain: Fixed 10, 20 or 50 V/V
  • CMRR: >80dB @ 100kHz (V_CM=0V, 7VP-P, f=100kHz); >96dB @ DC
  • Bandwidth: 2MHz
  • Package: MSOP-8

MAX40056

  • Gain: Fixed 10, 20 or 50 V/V
  • CMRR: typ. 70dB @ 100kHz (100mV_AC Sine, f=100kHz); >120dB @ DC
  • Bandwidth: 300kHz
  • Package: 2.02mm x 1.4mm WLP-8 and 8-pin μMAX

INA240

  • Gain: Fixed 20, 50, 100 or 200 V/V
  • CMRR: typ. 93dB @ 50kHz (f=50kHz); >120dB @ DC
  • Bandwidth: 400kHz
  • Package: TSSOP-8

In den nächsten Wochen werden Samples dieser Chips unter den beim Micro-Motor herrschenden Umgebungsbedingungen getestet und dann ausgewählt. Sollte sich keiner der verfügbaren Inline-Shuntverstärker als brauchbar erweisen, werden wir Low-Side-Shuntverstärker evaluieren.

Formfaktor

Im Gegensatz zur Version 1 wird für die zweite Version ein anderer Ansatz gewählt. Der integrierte Magnet-Encoder fällt weg, stattdessen gibt es einen gut lötbaren steckbaren Anschluss für externe Encoder, sowohl einfach als auch mit differenziellen Signalen. Da durch die kleine Bauform des Micromotors keine langen Kabel zum Encoder nötig sind, wird auf differenzielle Signale verzichtet. Sollte ein Motor keinen integrierten Encoder haben, kann ein externer magnetischer Encoder auch über dieses Interface angeschlossen werden.

Die Platine bekommt eine rechteckige Form und soll seitlich an den Motoren befestigt werden. So lässt sich der Micro-Motor flexibler an einer Vielzahl von verschiedenen Motoren nutzen. Die mechanischen Dimensionen werden sich kaum ändern, angepeilt ist eine Platinenfläche von weniger als 500mm², z.B. 15x25mm². Dazu wird auch weiterhin eine beidseitige Bestückung notwendig sein.

Stecker

Um einen einfach Austausch der Platinen zu ermöglichen sollen keine Kabel fest auf der Platine verlötet werden. Es werden sechs Steckverbindungen benötigt:

  • Motor-Anschluss (Phasen U, V, W), 3-polig, >=5A
  • Stromversorgung (20V, 6V und GND), 3-polig, >= 5A
  • CAN Kommunikation (CAN-H, CAN-L), 2- oder 3-polig
  • End-/Referenz-Schalter, 2- oder 3-polig
  • Hall-Sensor (Hall-Phasen U, V, W; GND und 5V/3.3V), 5-polig
  • Encoder (A, B, I; GND und 5/3.3V), 5-polig

Für die leistungsführenden Steckverbinder soll 3-polige JST XH Stecker verwenden werden. Diese sind bis 5A nutzbar, bei höhreren Strömen müssen die Kabel fest verlötet werden und Stecker ins Kabel integriert werden.

Die Signalstecker sollen als 2-/3-polige und 5-polige JST GH Stecker ausgeführt werden. Ebenso wie die Leistungsstecker mit 2.5mm Pitch sind diese die Stecker auch in SMT-Bauform erhältlich und bei einem Pitch von 1.25mm deutlich kompakter.

Weitere Entwicklung

Noch mehr Probleme und Verbesserungsvorschläge der ersten Revision sind im Github Issue #1 aufgeführt.

Der Blog-Post wurde ursprünglich am 27.7.2019 verfasst und zuletzt am 18.8.2019 aktualisiert.