Implementer hurtigt motorstyringsdesign med et driver-IC med integreret mikrocontroller

Af Jacob Beningo

Bidraget af DigiKeys nordamerikanske redaktører

Brugen af motorer er støt stigende i anvendelser som biler, robotter, industristyring og fly. Motorelektronik er dog typisk tungt, pladskrævende, ineffektivt og svært at arbejde med på grund af de høje styrespændinger, der er involveret. Der er behov for en større grad af integration og brugervenlighed, fordi designerne står overfor stigende krav om lave styklistepriser (BOM), højere effektivitet og elektronik med mindre monteringsflader samt større fleksibilitet og hurtigere time-to-market.

I denne artikel introduceres STMicroelectronics' STSPIN32F32F060x-familie af system-in-package (SiP) styreenheder til 3-fasede motorer med en indbygget mikrocontroller, og det vises, hvordan de kan bruges til at overkomme disse designmæssige udfordringer vedrørende pris, og time-to-market.

Sådan drives en 3-faset motor

For at en 3-faset motor kan drives korrekt, skal der indbygges adskillige hardwareblokke i designet:

  • En mikrocontroller
  • Et motordriver-IC
  • Højspændings-MOSFET'er eller IGBT'er (som udfører selve omskiftningen)

I et traditionelt motorcontrollerdesign vil en udvikler typisk have en sektion på PCB'et, som er dedikeret til alle tre blokke. Typisk sender mikrocontrolleren pulsbreddemodulerede signaler (PWM-signaler) til motordriver-IC'en, som nøje overvåger disse signaler sammen med den udgangsstrøm og -spænding, der genereres ved motorcontrollerens output, til at drive MOSFET'erne. Mikrocontrolleren kommunikerer ofte med motordriver-IC'en gennem enten IC en I2C- eller SPI-bus for at give mulighed for specialtilpassede funktioner eller funktionaliteter, eller den kan anvende omkring seks diskrete GPIO-signaler til at styre broens funktionsmåde.

Udfordringen med en driver-IC med ekstern bro i den moderne udviklingscyklus er, at de medfører yderligere omkostninger og kompleksitet og tager dyrebar PCB-plads, for ikke at nævne input- og output-signaler (I/O-signaler) på mikrocontrolleren, som ellers kunne bruges til noget andet. Det er her, en helt ny klasse af integrerede mikrocontrollere og brokredsløb forenkler motorstyringsapplikationer, mens de samtidig reducerer styklistepriser (BOM) og minimerer PCB-overfladeområdet.

Hvorfor bruge STSPIN32F060x?

Denne klasse repræsenteres af STMicroelectronics STSPIN32F060x SiP-serien af komponenter, som omfatter en STM32F031x6x7 Arm® Cortex®-M0-mikrocontroller med en 600 volts gate-driver med tredobbelt halvbro (figur 1). Hver halvbro kan bruges til at drive en MOSFET eller IGBT på hver fase i en børsteløs DC-motor (BLDC).

Diagram over STMicroelectronics STM32F060x, der integrerer en STM32F031 ARM Cortex-M0 (klik for at forstørre)Figur 1: STM32F060x integrerer en STM32F031 Arm Cortex-M0 med en 600 volts gate-driver med tredobbelt halvbro for at mindske omkostninger, plads på PCB og ben i pakken. (Billedkilde: STMicroelectronics)

Serien byder på nogle meget interessante funktioner og beskyttelser. Delene omfatter eksempelvis:

  • En komparator med en avanceret nedlukningsfunktion (smartSD), som sikrer hurtig og effektiv beskyttelse mod overbelastning og overstrøm
  • Integrerede bootstrap-højspændingsdioder
  • Anti-krydsledningsbeskyttelse
  • Dødtidsbeskyttelse
  • UVLO-beskyttelse

Den indbyggede mikrocontroller arbejder ved 48 megahertz (MHz) og har 32 kilobyte (kB) flashhukommelse med 4 kB RAM, hvilket er perfekt til implementering af feltorienteret kontrol (FOC).

Der er aktuelt to dele i STM32F060x-familien, STSPIN32F0601 og STSPIN32F0602. Den primære forskel mellem de to er, at 0601'eren understøtter gatedrive-strøm på op til 0,35 ampere (A), mens 0602'eren kan understøtte gatedrive-strøm på op til 1,0 A.

Bemærk, at internt i IC'et er STM32F031-mikrocontrolleren forbundet til gate-driveren gennem adskillige GPIO-linjer, som er interne i pakken. GPIO PA11 bruges til at aktivere gate-driveren, og GPIO PB12 bruges til at registrere, om der er fejl på broen. GPIO'erne PA8 – PA10 bruges til gate-driverens input på den høje side, mens GPIO'erne PB13 – 15 bruges til gate-driverens input på den lave side. På den måde slipper udviklerne for at skulle bruge eksterne GPIO-ben til at styre en gate-driver, mens de undgår behovet for PCB-plads til at føre spor til et separat IC. Integrationen af begge komponenter forenkler kompleksiteten af hardware og design og kan reducere styklisteprisen (BOM) betydeligt.

Sæt skub i udviklingen med EVSPIN32F0601S1-udviklingskortet

STSPIN32F060x understøttes af EVSPIN32F0601S1-udviklingskortet, et komplet 3-faset omsætter-starter kit, der indeholder al den nødvendige elektronik til at få en BLDC-motor op at køre ved hjælp af STSPIN32F0601-controlleren (figur 2). EVSPIN32F0601S1 er opdelt i fem primære sektioner:

  • STSPIN32F0601
  • En aftagelig STLINK-debugger
  • Et feedback-netværk
  • Et effektstadie
  • En strømforsyning

Billede af STMicroelectronics EVSPIN32F0601S1-udviklingskortFigur 2: EVSPIN32F0601S1-udviklingskortet omfatter al den elektronik, der er nødvendig for at få en BLDC-motor op at køre ved hjælp af STSPIN32F0601-styringen. (Billedkilde: STMicroelectronics)

PCB'ets STLINK-debugger kan fjernes fra udviklingskortet, hvis det ønskes, så udviklere kan mindske kortets størrelse, så det kan bruges til kabinetter til prototyper og proof-of-concept (PoC). Udviklere kan stadig forbinde en ekstern STLINK-V3SET (figur 3) ved at tilslutte den til SWD-headerstikkene på udviklingskortet.

Billede af STMicroelectronics STLINK-V3SET-debuggerFigur 3: STLINK-V3SET-debuggeren er en ekstern debugger, der kan bruges til at programmere og udføre fejlfinding på applikationer, der er skrevet ved hjælp af en STM32-mikrocontroller. (Billedkilde: STMicroelectronics)

Udviklingskortet inkluderer også et feedback-netværk, som kan bruges til motorstyringsalgoritmer, der kræver sensorer til at levere spændings- og strømfeedback. I mange moderne design kan disse feedback-netværk fjernes, og der kan anvendes en FOC-algoritme. Dette er en sensorfri motorstyringsalgoritme, der yderligere kan reducere BOM-omkostningerne og størrelsen af det resulterende PCB.

Effektstadiet giver udviklere høj- og lav-side-MOSFET'er eller IGBT'er, som bruges til at skifte spændingen på tværs af de forskellige motorspoler. Det interessante ved kortets design er, at monteringsfladerne enten er DPAK- eller PowerFlat-pakker, hvilket giver udviklerne mulighed for at ændre på udviklingskortet, hvis de vælger at bruge deres egen MOSFET eller IGBT.

Endelig kan strømforsyningen levere et input fra 50 volt op til 280 volt DC/AC. Flybacktransformeren på kortet kan også generere +15 og +3,3 volt til brug i applikationen.

For at kunne eksperimentere med udviklingskortet skal man tilslutte en BLDC som f.eks. QBL4208-41-04-006 fra Trinamic Motion Control GmbH (figur 4). Hver fase i BLDC-motoren er forbundet til EVSPIN32F0601S1 gennem de rette outputskrueterminaler.

Billede af Trinamic Motion Control GmbH QBL4208-41-04-006 BLDC-motorFigur 4: QBL4208-41-04-006 BLDC-motoren kører ved 4000 RPM og kan bruges sammen med EVSPIN32F0601S1-udviklingskortet til at udvikle en lang række applikationer. (Billedkilde: Trinamic Motion Control GmbH)

Mens EVSPIN32F0601S1-udviklingskortet har al den nødvendige hardware til at drive en BLDC-motor, kræver en 3-faset motor også software. For at drive en motor korrekt kan udviklere benytte sig af STMicroelectronics' X-CUBE-MCSDK-udviklingskit til motorstyringssoftware. Dette bibliotek kan bruges sammen med softwarepakker som f.eks. ST32CubeIDE og ST32CubeMx til nemt at konfigurere en motorstyringsløsning.

Sådan kan en BLDC-motor drives med software

X-CUBE-MCSDK-softwarepakken omfatter to applikationer på højt niveau: MotorControl Workbench og Motor Profiler. Med MotorControl Workbench kan en udvikler oprette et motorstyringsprojekt til nemt at køre en motor. Forskellige motoralgoritmer kan bruges til at drive motoren, herunder FOC, samt forskellige feedback-topologier som f.eks.:

  • Én shuntmodstand
  • Tre shuntmodstande
  • To isolerede strømsensorer

Med Motor Profiler kan en udvikler angive sine generelle motorparametre og så profilere motoren fuldstændig. Denne profilering giver de generelle motorparametre, der kræves af algoritmerne, f.eks. FOC, for at drive motoren korrekt.

Det er enkelt at oprette et projekt i Motor Control Workbench. Udvikleren skal åbne Motor Control Workbench og vælge New project (Nyt projekt). Vedkommende kan så enten angive sine parametre som vist i figur 5:

  • Applikationstype
  • Antallet af motorer, der skal styres
  • Sine kontrol- og strømkonfigurationer
  • Motorparametre som poler, hastighed, spænding og nominel strømstyrke

Billede af projekt i Motor Control WorkbenchFigur 5: Projektkonfigurationen i Motor Control Workbench giver udvikleren mulighed for at tilpasse projektindstillingerne til sin hardware. (Billedkilde: Beningo Embedded Group)

Når oplysningerne til projektet er valgt, kan udvikleren klikke på OK, hvorefter vedkommende føres videre til Motor Control Workbench (figur 6). Fra workbenchen kan udviklere tilpasse deres applikations funktionsmåde. Dette omfatter muligheden for at konfigurere følgende:

  • Firmwareindstillinger som opstartsprofil, driver-indstillinger og sensorindstillinger
  • Digitale I/O-indstillinger som encoderinterface, hall-sensorer, seriel kommunikation og start- og stopknapper
  • DAC-funktionalitet (digital-til-analog-konverter)
  • Indstillinger for analogt input og beskyttelse for feedback fra fasestrøm, busspænding, temperatur og PFC-stadiet (strømfasekorrektion).

Billede af Motor Control WorkbenchFigur 6: Motor Control Workbench giver udvikleren mulighed for at tilpasse sin firmware, justere MCU og clockfrekvenser sammen med beskyttelsen af det digitale I/O, DAC og analoge input. (Billedkilde: Beningo Embedded Group)

Udviklere har endda mulighed for at aktivere eller deaktivere indstillinger med et klik i et afkrydsningsfelt, f.eks.:

  • Registrering af busspænding
  • Temperaturregistrering
  • Strømregistrering med overstrømsbeskyttelse
  • Hastighedsregistrering

En udvikler behøver ikke engang at se en eneste API eller kodelinje for fuldt ud at konfigurere sin motorstyringsapplikation.

Konklusion

Udviklere og designere af motorstyringssystemer står over for et stadig større pres i form af krav om lavere omkostninger, højere effektivitet og elektronik med mindre monteringsflade. Som vist reducerer en STSPIN32F060x SiP til 3-fasede BLDC-motorstyringsapplikationer ikke bare styklistepriserne (BOM), men også pladsforbruget på PCB samt systemkompleksiteten. Den leveres også med et effektivt økosystem, herunder et udviklingskort og en software, der er designet til at få udviklerne hurtigt og nemt i gang med motorstyringsapplikationer.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om denne forfatter

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

Om udgiveren

DigiKeys nordamerikanske redaktører