Beschleunigung der Entwicklung von BLDC-Motoranwendungen für Automobilelektronik und IoT mit dem Motortreiber A4964KJPTR-T

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Bürstenlose Gleichstrommotoren (BLDC-Motoren) werden zunehmend in vielen verschiedenen Anwendungen eingesetzt, von ferngesteuerten, über das Internet der Dinge (IoT) gesteuerten Garagenöffnern und Autofenstern bis hin zu Steuerungen für Satellitenantriebe. Das Problem, das sich den Konstrukteuren bei BLDC-Motoren stellt, ist, dass die für ihren Antrieb erforderlichen Regelungsalgorithmen komplex und oft sehr spezialisiert sind. Das macht es für den durchschnittlichen Ingenieur schwierig, ein solches System in einer angemessenen Zeitspanne in Betrieb zu nehmen.

Die Entwickler haben in der Regel die Wahl zwischen einer softwarebasierten Lösung, die auf einem Mikrocontroller läuft, der zwar eine flexible Softwarelösung bietet, aber auch den Mikrocontroller mit Berechnungen belastet, oder der Verwendung einer speziellen integrierten Schaltung (IC). Letztere kapselt die komplette BLDC-Motorsteuerungsfunktion und entlastet den Host von der BLDC-Steuerung.

In diesem Artikel werden die Unterschiede zwischen einer mikrocontrollerbasierten Softwarelösung und einer dedizierten Hardwarechiplösung erörtert. Anschließend wird der Einsatz des A4964KJPTR-T von Allegro MicroSystems, eines Motortreibers zur Vereinfachung der Steuerung von BLDC-Motoren speziell für Automobilanwendungen, eingehend erläutert. In diesem Artikel wird gezeigt, wie man mit dem A4964KJPTR-T interagiert, und es werden einige bewährte Verfahren zur Vermeidung von unerwartetem Verhalten beschrieben.

Eine (sehr) kurze Einführung in BLDC-Motoren

BLDC-Motoren liefern ein effizientes Drehmoment über einen breiten Drehzahlbereich, sind leise und leiden nicht unter der mechanischen Reibung von Bürstenmotoren. BLDC-Motoren werden durch Strom und nicht durch Spannung gesteuert, wodurch sie in einer Vielzahl von Anwendungen eingesetzt werden können, für die sie in einer Vielzahl von Formen, Größen und Kostenpunkten erhältlich sind.

Der QBL4208-41-04-006 von TRINAMIC Motion Control zum Beispiel ist ein 24-Volt-Motor für 4000 Umdrehungen pro Minute (U/min), der Drehmomente bis zu 0,06 Newtonmeter (Nm) liefert (Abbildung 1). Der Motor ist leicht (0,662 Pfund) und bietet dem Entwickler mehrere Möglichkeiten zur Steuerung des Motors, z. B. durch sensorlosen Betrieb über die elektromotorische Gegenkraft (BEMF) oder mit eingebauten Sensoren, die die Position melden.

Bild: BLDC-Motor QBL4208-41-04-006 von TRINAMIC für 24 Volt und 4000 U/minAbbildung 1: Der QBL4208-41-04-006 ist ein 24-Volt-BLDC-Motor für 4000 Umdrehungen pro Minute, der bei maximaler Drehzahl ein Drehmoment von etwas mehr als 0,06 Nm liefern kann. (Bildquelle: TRINAMIC Motion Control GmbH)

Für mehr Drehmoment können Entwickler den QBL4208-41-04-025, ebenfalls von TRINAMIC Motion Control, verwenden (Abbildung 2). Es handelt sich um einen BLDC-Motor für 24 Volt und 4000 Umdrehungen pro Minute, der ein Drehmoment von etwas mehr als 0,25 Nm liefert.

Bild: BLDC-Motor QBL4208-41-04-025 von TRINAMIC Motion Control für 24 Volt, 4000 U/minAbbildung 2: Der QBL4208-41-04-025 von TRINAMIC Motion Control ist ein 24-Volt-BLDC-Motor für 4000 Umdrehungen pro Minute, der bei maximaler Drehzahl ein Drehmoment von etwas mehr als 0,25 Nm liefern kann. (Bildquelle: TRINAMIC Motion Control GmbH)

BLDC-Motoren werden durch dreiphasige Leitungen angetrieben, die ein Magnetfeld erzeugen, das dann gegen Permanentmagnete drückt, um den Stator zu bewegen und den Motor zu drehen.

In der Theorie hört sich das einfach an, aber in der Praxis ist die Ansteuerung eines BLDC-Motors ziemlich kompliziert, so dass die Entwickler vor der Wahl stehen, entweder ein Software-Framework zur Ansteuerung des Motors zu verwenden oder sich für eine spezielle Chip-Lösung zu entscheiden.

Software versus dedizierte Chiplösungen

Es gibt mehrere Faktoren, die Entwickler berücksichtigen sollten, wenn es um die Frage geht, wie sie ihren BLDC-Motor drehen sollen. Diese Faktoren laufen im Wesentlichen auf Folgendes hinaus:

  • Stücklistenkosten versus Arbeitskosten
  • Komplexität des Boards versus Komplexität der Software
  • Wartungszeit und -kosten

Aus der Hardware-Perspektive kann es sehr verlockend sein, die Software-Route zu wählen, da eine dedizierte Chip-Lösung zusätzliche Kosten in der Stückliste verursacht. Anstelle eines speziellen Chips können Sie diese Kosten einsparen, einen Bruchteil mehr für einen Mikrocontroller ausgeben und alle Steuerungsalgorithmen in diesem Mikrocontroller unterbringen. Es scheint eine ideale Situation zu sein, aber die Teams bedenken oft nicht die vollen Auswirkungen dieser Entscheidung.

Es ist Wahr, dass die Stücklistenkosten gesenkt werden, belastet aber den Mikrocontroller zusätzlich mit der Verarbeitung der BLDC-Zustandsdaten und der kontinuierlichen Ansteuerung des Motors. Wenn der Mikrocontroller zudem andere Sensoren abtasten, mit einem Funkgerät kommunizieren und andere Geräte steuern muss, können die Kosten für die Softwareentwicklung und -wartung ins Unermessliche steigen, wenn nicht darauf geachtet wird.

Eine softwarebasierte Lösung in einem Mikrocontroller bietet jedoch die Flexibilität, dass ein Team seine Motorsteuerungsalgorithmen fein abstimmen kann. Der Einsatz von Software bedeutet auch nicht, dass die Dinge immer übermäßig kompliziert sein müssen.

So ist es beispielsweise typisch, dass die Verlagerung des Motorsteuerungsalgorithmus in den Mikrocontroller mehr Arbeitsspeicher (RAM) beansprucht und viel Flash benötigt. Verwendet ein Team jedoch einen für die Motorsteuerung konzipierten Mikrocontroller wie den für die Motorsteuerung ausgelegten Mikrocontroller F280049CRSHSR von Texas Instruments, sind die Algorithmen in eine Bibliothek integriert, die sich im ROM des Mikrocontrollers befindet. Das bedeutet, dass der einzige zusätzliche Code, der der Anwendung hinzugefügt wird, die Funktionsaufrufe sind, um auf die Bibliothek zuzugreifen, die die ganze schwere Arbeit erledigt.

Das Drehen eines BLDC-Motors ist jedoch nicht nur eine Frage der Software, sondern erfordert auch Hardware. Abbildung 3 zeigt eine Beispielanwendung mit dem Mikrocontroller C2000, zu dessen Familie der F280049CRSHSR gehört, und veranschaulicht alles, was für den Antrieb eines BLDC-Motors erforderlich und optional ist. Neben einem Mikrocontroller muss auch eine dreiphasige Leistungsstufe vorhanden sein, die die drei Phasen des BLDC-Motors ansteuern kann, damit er sich dreht.

Diagramm: Mikrocontroller C2000 von Texas Instruments (zum Vergrößern anklicken)Abbildung 3: Die Mikrocontroller C2000 von Texas Instruments sind für Motorsteuerungsanwendungen konzipiert. Dieses Bild zeigt eine Beispielanwendung mit dem Mikrocontroller in der Mitte und den erforderlichen und optionalen Schaltungen, die für den Antrieb eines BLDC-Motors erforderlich sind. (Bildquelle: Texas Instruments)

Die Verwendung eines Mikrocontrollers für den Antrieb des Motors ist sicherlich interessant, aber wie sieht eine spezielle Hardware-Lösung aus? Werfen wir einen Blick auf den Motortreiberchip A4964KJPTR-T von Allegro MicroSystems.

Der Motortreiber A4964KJPTR-T von Allegro MicroSystems

Der Motortreiberchip A4964KJPTR-T von Allegro MicroSystems ist ein spezieller BLDC-Motortreiber, der alle für den Antrieb eines Motors erforderlichen Funktionen enthält (Abbildung 4). Der Chip wurde speziell für Anwendungen im Automobilbereich und für den Einsatz mit N-Kanal-MOSFETs entwickelt und bietet eine sensorlose Inbetriebnahme und Kommutierung, so dass er nur ein Minimum an externer Hardware benötigt. Der A4964KJPTR-T arbeitet außerdem in einem weiten Spannungsbereich von 5,5 bis 50 Volt, der nahezu alle Standardanwendungen und auch Kfz-Systeme abdeckt.

Das vielleicht interessanteste Merkmal des A4964KJPTR-T ist, dass er über die serielle Peripherieschnittstelle (SPI) mit einem Mikrocontroller oder einer zentralen elektronischen Steuereinheit (ECU) verbunden werden kann, um die verschiedenen Register für den Motorbetrieb zu konfigurieren. Offensichtlich muss der Mikrocontroller nicht so leistungsfähig sein wie derjenige, der die Motorsteuerungsalgorithmen selbst ausführt.

Diagramm: BLDC-Motortreiber A4964KJPTR-T von Allegro (zum Vergrößern klicken)Abbildung 4: Der BLDC-Motortreiber A4964KJPTR-T kann mit 5,5 bis 50 Volt betrieben werden und ermöglicht einen sensorlosen Start und Kommutierung. Die Motordrehzahl kann über SPI oder über ein dediziertes PWM-Signal konfiguriert werden. (Bildquelle: Allegro MicroSystems)

Alternativ, und das ist der interessante Teil, kann die Motordrehzahl des A4964KJPTR-T auch ohne SPI gesteuert werden, indem einfach ein pulsweitenmoduliertes Signal (PWM) bereitgestellt wird. Es gibt einen nichtflüchtigen Speicher, in dem die Einstellungen für den Motor gespeichert werden können, die beim Einschalten geladen werden, so dass der Motor einfach nur über ein PWM-Signal gesteuert werden kann.

Aus Sicht der Konfiguration verfügt der A4964KJPTR-T über 32 adressierbare 16-Bit-Register sowie ein Statusregister. Das Statusregister ist insofern einzigartig, als die ersten 5 Bits bei jedem Lese-/Schreibvorgang auf dem SPI übertragen werden, so dass die Software einen allgemeinen Status überprüfen kann, um festzustellen, ob es irgendwelche Fehler oder Probleme gibt. Alle Statusregister können bei Schreibvorgängen auf den Chip ausgelesen werden, da keine Daten vom A4964KJPTR-T zurückgesendet werden.

Unter den 32 adressierbaren Registern befinden sich auch zwei Spezialregister. In das Register 30 kann nur geschrieben werden und Register 31 ist schreibgeschützt. Das nur beschreibbare Register ermöglicht es dem Entwickler, den Bedarfseingang bzw. die Einschaltdauer des Motors mit einem Wert zwischen 0 und 1023 einzustellen. Die Daten des Nur-Lese-Registers ändern sich in Abhängigkeit von den angeforderten Daten, die in das Register 29, das „Readback Select Register“, geschrieben werden. Mit diesem Register kann eine Vielzahl von Telemetriedaten abgerufen werden, wie z. B:

  • Diagnostik
  • Motordrehzahl
  • Mittlerer Versorgungsstrom
  • Versorgungsspannung
  • Hohe Temperatur
  • Bedarfeingabe
  • Angewandtes Brückenspitzentastverhältnis
  • Angewandte Phasenverschiebung

Neben diesen Spezialregistern ermöglichen die verbleibenden 30 Register die Abstimmung auf die jeweilige Motoranwendung und die Aktivierung oder Deaktivierung von Fehlern, wie z. B. Strombegrenzungs- und Gate-Ansteuerungsfehler.

Dedizierte Motortreiber sind interessant, weil sie alles, was zum Betrieb des Motors konfiguriert werden muss, in einigen Dutzend Konfigurationsregistern zusammenfassen. Dadurch wird jeglicher Software-Overhead, der sonst auf einem Mikrocontroller vorhanden wäre, drastisch eliminiert, und - was vielleicht noch wichtiger ist - die Kosten für Softwareentwicklung und -wartung können drastisch gesenkt werden. Die Ansteuerung des BLDC ist dann nichts anderes als das Senden eines PWM-Signals, das in einem Mikrocontroller keinen Overhead haben kann, oder das Aktivieren des Motorbits und das Bereitstellen einer SPI-basierten Bedarfseingabe zum Drehen des BLDC.

Tipps und Tricks zur Verwendung des A4964KJPTR-T

Der A4964KJPTR-T ist relativ einfach anzuschließen, aber es gibt einige „Tipps und Tricks“, die Entwickler beachten sollten, um die Entwicklung zu vereinfachen und zu beschleunigen:

  • Das Statusregister wird bei jedem Schreibvorgang auf den Chip über die SPI-Schnittstelle zurückgegeben und ist nicht als dediziertes, adressierbares Register verfügbar. Dies bedeutet, dass der Treibercode die SDO-Leitung des SPI-Busses überwachen muss, während er auf den Chip schreibt, um Statusinformationen zu erhalten.
  • Fehlerinformationen sind im Statusregister enthalten, aber ein Überblick über den Chipstatus ist bei jeder SPI-Transaktion in den ersten fünf Bits verfügbar, wenn der Mikrocontroller die Adresszugriffsinformationen bereitstellt. Anhand dieser Daten lässt sich feststellen, ob Probleme aufgetreten sind.
  • Es gibt zwei einzigartige Register in der Speicherkarte, eines, das nur gelesen werden kann und eines, das nur beschrieben werden kann. Dies ist einfach, aber achten Sie darauf, dass Sie nicht versuchen, aus dem Nur-Schreib-Register zu lesen, da dies die in der Lesesequenz verwendeten Dummy-Daten in das Register schreibt.
  • Der Chip verfügt über einen nichtflüchtigen Speicher, in dem Standardparameter gespeichert werden können. Diese Parameter werden in den Arbeitsspeicher geladen und beim Start verwendet. Um sicherzustellen, dass der Chip möglichst effizient in den Bereitschaftszustand bootet, sollten Sie „sichere“ Startwerte in den Chip programmieren.
  • Wenn das Endgerät in einer lauten oder strahlungsreichen Umgebung arbeitet, ist es keine schlechte Idee, den Anwendungscode so zu gestalten, dass die Konfigurationsdaten in regelmäßigen Abständen neu bestätigt werden. Die Chipkonfiguration wird im RAM gespeichert, was bedeutet, dass sie anfällig ist für kosmische Strahlung, Bitflips und all die lustigen, seltenen Ereignisse, die in der Elektronik passieren können.

Fazit

BLDC-Motorimplementierungen für Automobil-, IoT- oder andere Anwendungen sind weit verbreitet, aber ihre Ansteuerung kann komplex sein. Um die Softwarekomplexität zu bewältigen, können Entwickler einen speziellen BLDC-Motortreiber wie den A4964KJPTR-T verwenden, der die gesamte Motorsteuerungsfunktionalität kapselt.

Für die Interaktion mit dem Chip ist zwar immer noch Software erforderlich, aber der Mikrocontroller, auf dem die Software läuft, muss nur die Konfigurationseinstellungen vornehmen, und der A4964KJPTR-T übernimmt die Ansteuerung des Motors. Entwickler, die die genannten „Tipps und Tricks“ befolgen, werden feststellen, dass sie sich bei der Verwendung des A4964KJPTR-T eine Menge Zeit und Ärger ersparen können.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey