Toteuta moottorinohjaukset nopeasti käyttämällä ohjausmikropiiriä ja integroitua mikrokontrolleria

Kirjoittaja Jacob Beningo

Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa

Sähkömoottoreiden käyttö lisääntyy jatkuvasti esimerkiksi autoissa, robotiikassa, teollisuuden ohjauksessa sekä lentävissä ajoneuvoissa. Moottorien elektroniikka on kuitenkin perinteisesti painavaa, isokokoista, hyötysuhteeltaan heikkoa sekä vaikeaa käyttää korkeiden ohjausjännitteiden vuoksi. Koska suunnittelijoilta vaaditaan yhä edullisempia materiaalikustannuksia sekä tehokkaampaa ja pienempää elektroniikkaa, samoin kuin enemmän joustavuutta ja nopeampaa markkinoille tuontia, integrointiastetta ja helppokäyttöisyyttä on lisättävä.

Tässä artikkelissa esitellään STMicroelectronicsin STSPIN32F32F060x-tuoteperhe, johon kuuluvissa SiP-rakenteisissa (system-in-package) kolmivaihemoottorin ohjaimissa on sisäänrakennettu mikrokontrolleri. Artikkelissa myös näytetään miten niillä voidaan vastata näihin suunnittelua, kustannuksia ja markkinoilletuontiaikaa koskeviin vaatimuksiin.

Miten kolmivaihemoottoria ohjataan

Jotta kolmivaihemoottorin ohjaus onnistuu, rakenteeseen tulee sisällyttää useita eri laitteistolohkoja:

  • mikrokontrolleri
  • moottorinohjausmikropiiri
  • korkean jännitteen MOSFET:it tai IGBT:t (jotka suorittavat varsinaisen kytkennän).

Perinteisessä moottoriohjainrakenteessa kullekin näistä toimintalohkoista varataan tietty piirilevyn osa. Yleensä mikrokontrolleri lähettää moottorinohjausmikropiirille pulssileveysmoduloituja (PWM) signaaleja. Tämä tarkkailee näitä signaaleja sekä MOSFET:tien ohjaukseen käytettävää lähtövirtaa ja -jännitettä moottorinohjaimen lähdössä. Mikrokontrolleri myös viestii usein moottorin ohjausmikropiirin kanssa joko I2C- tai SPI-väylän kautta käyttääkseen muokattuja ominaisuuksia ja toimintoja. Se voi myös ohjata sillan toimintaa noin puolenkymmenen erillisen GPIO-signaalin kautta.

Ulkoisen siltaohjainmikropiirin käytön haasteena nykyisessä kehityssyklissä on, että ne lisäävät kustannuksia ja monimutkaisuutta ja vaativat tilaa piirilevyltä – puhumattakaan mikrokontrollerin tulo- ja lähtösignaaleista, joita voitaisiin käyttää muuhunkin tarkoitukseen. Uudenlaiset integroidut mikrokontrollerit ja siltapiirit tekevätkin moottorin ohjaussovelluksista yksinkertaisempia, vähentäen samalla materiaalikustannuksia ja minimoiden piirilevyltä vaadittavaa tilaa.

Miksi käyttää STSPIN32F060x-piiriä?

Tätä luokkaa edustavat STMicroelectronicsin STSPIN32F060x SiP -sarjan komponentit, joissa yhdistetään STM32F031x6x7, Arm® Cortex®-M0 -mikrokontrolleri sekä kolme 600 voltin puolisiltatyyppistä hilaohjainta (kuva 1). Jokaista puolisiltaa voidaan käyttää ohjaamaan MOSFET- tai IGBT-komponenttia harjattoman DC-moottorin (BLDC) kussakin vaiheessa.

Kaavio: STMicroelectronicsin STM32F060x sisältää STM32F031 Arm Cortex-M0 -ytimen (suurenna klikkaamalla)Kuva 1: STM32F060x sisältää STM32F031 Arm Cortex-M0 +ytimen sekä kolme 600 voltin puolisiltatyyppistä hilaohjainta ja säästää näin kustannuksia, piirilevyn tilaa sekä koteloinnin pinnejä. (Kuvan lähde: STMicroelectronics)

Sarja tarjoaa erittäin mielenkiintoisia ominaisuuksia ja suojauksia. Siihen sisältyy mm. seuraavia osia:

  • komparaattori, jonka älykäs sammutustoiminto (smartSD) varmistaa nopean ja tehokkaan suojauksen ylikuormitus- ja ylivirtatilanteissa
  • integroidut korkeajännite-bootstrap-diodit
  • ristiinjohtavuussuojaus
  • hukka-aikasuojaus
  • UVLO-suojaus.

Sisäänrakennettu mikrokontrolleri toimii 48 megahertsin (MHz) kellotaajuudella ja sisältää 32 kilotavua (kt) flash-muistia sekä 4 kilotavun RAM-muistin, joten se sopii täydellisesti kenttäkeskeisen ohjaustavan (FOC) toteuttamiseen.

STM32F060x-tuoteperheessä on tällä hetkellä kaksi jäsentä: STSPIN32F0601 ja STSPIN32F0602. Tärkein ero näiden välillä on, että 0601 tukee hilaohjausvirtoja aina 0,35 ampeeriin (A) asti, kun taas 0602 tukee jopa 1,0 ampeerin virtaa.

Huomaa, että STM32F031-mikrokontrolleri on mikropiirin sisäpuolella yhdistetty hilaohjaimeen useilla kotelon sisäisillä GPIO-linjoilla. GPIO-linjaa PA11 käytetään ottamaan hilaohjain käyttöön, ja GPIO-linjalla PB12 tunnistetaan, onko silta vikatilassa. GPIO-linjoja PA8–PA10 käytetään hilaohjaimen yläpuolen tuloille, kun taas GPIO-linjat PB13–15 on varattu hilaohjaimen alapuolen tuloille. Näin kehittäjien ei tarvitse käyttää ulkoisia GPIO-pinnejä hilaohjaimen ohjaukseen eikä piirilevyn tilaa kulu erillisen mikropiirin vaatimiin johtimiin. Molempien komponenttien integrointi yksinkertaistaa laitteistoa ja suunnittelutyötä ja tämä voi laskea materiaalikustannuksia huomattavasti.

Nopeuta kehitystä EVSPIN32F0601S1-kehitysalustalla

STSPIN32F060x-piiriä tuetaan EVSPIN32F0601S1-kehitysalustalla. Se on täydellinen aloitussarja kolmivaiheinvertterille ja sisältää kaiken tarvittavan elektroniikan BLDC-moottorin käyttämiseksi STSPIN32F0601-ohjaimella (kuva 2). EVSPIN32F0601S1 jakautuu viiteen pääosioon:

  • STSPIN32F0601
  • irrotettava STLINK-debuggeri
  • takaisinkytkentäverkko
  • tehoaste
  • virtalähde.

Kuvassa STMicroelectronicsin EVSPIN32F0601S1-kehitysalustaKuva 2: EVSPIN32F0601S1-kehitysalusta sisältää kaiken elektroniikan, jota tarvitaan BLDC-moottorin käyttämiseen STSPIN32F0601-ohjaimella. (Kuvan lähde: STMicroelectronics)

Piirilevyllä oleva STLINK-debuggeri voidaan haluttaessa poistaa kehitysalustasta, jolloin piirilevyn kokoa voidaan pienentää prototyyppejä ja konseptikoteloita varten. Kehittäjät voivat yhä liittää ulkoisen STLINK-V3SET-debuggerin (kuva 3) kytkemällä sen kehitysalustan SWD-piirilevyliittimiin.

Kuvassa STMicroelectronicsin STLINK-V3SET-debuggeriKuva 3: STLINK-V3SET-debuggeri on ulkoinen laite, jolla voidaan kirjoittaa ohjelmia STM32-mikrokontrollerille sekä debugata niitä. (Kuvan lähde: STMicroelectronics)

Kehitysalusta sisältää myös takaisinkytkentäverkon, jota voidaan käyttää jännite- ja virtapalautetta vaativissa moottorinohjausalgoritmeissa. Monissa moderneissa laitteissa nämä takaisinkytkentäverkot voidaan poistaa ja käyttää niiden sijaan FOC-algoritmia. Se on anturiton moottorinohjausalgoritmi, joka voi vähentää materiaalikustannuksia sekä valmiin piirilevyn kokoa entisestään.

Tehoaste tarjoaa kehittäjille ylä- ja alapuolen MOSFET- tai IGBT-komponentit, joilla jännite kytketään moottorin eri käämeihin. Mielenkiintoista piirilevyn rakenteessa on se, että alustat on tarkoitettu joko DPAK- tai PowerFlat-koteloille, joten kehittäjät voivat halutessaan muokata kehitysalustaa ja valita haluamansa MOSFET- tai IGBT-komponentin.

Virtalähde voi tuottaa tulojännitteeksi 50–280 volttia tasa- tai vaihtovirtaa. Kortilla oleva flyback-muunnin voi myös tuottaa sovellusta varten +15 ja +3,3 voltin jännitteen.

Kehitysalustan kokeilua varten siihen on liitettävä BLDC-moottori, kuten Trinamic Motion Control GmbH:n QBL4208-41-04-006 (kuva 4). BLDC-moottorin jokainen vaihe liitetään EVSPIN32F0601S1-korttiin oikeiden lähtöruuvinapojen kautta.

Kuvassa Trinamic Motion Control GmbH:n BLDC-moottori QBL4208-41-04-006Kuva 4: BLDC-moottori QBL4208-41-04-006 pyörii nopeudella 4000 RPM ja sitä voidaan käyttää yhdessä EVSPIN32F0601S1-kehitysalustan kanssa erilaisten sovellusten kehittämiseen. (Kuvan lähde: Trinamic Motion Control GmbH)

Vaikka EVSPIN32F0601S1-kehitysalusta sisältää kaiken tarvittavan laitteiston BLDC-moottorin ohjaamiseen, kolmivaihemoottori vaatii myös ohjelmistoa. Moottorin ohjausta varten kehittäjät voivat hyödyntää STMicroelectronicsin X-CUBE-MCSDK-kehityssarjaa moottorinohjausohjelmistolle. Tätä kirjastoa voidaan käyttää esimerkiksi ST32CubeIDE- ja ST32CubeMx-ohjelmistopakettien kanssa, ne tekevät moottorinohjausratkaisun konfiguroimisesta helppoa.

BLDC-moottorin ohjaaminen ohjelmistolla

X-CUBE-MCSDK-ohjelmistopaketissa on kaksi korkean tason sovellusta: MotorControl Workbench ja Motor Profiler. MotorControl Workbenchin avulla kehittäjä voi luoda moottorinohjausprojektin, jolla moottorin ohjaaminen on helppoa. Moottorin ohjaukseen voidaan käyttää erilaisia algoritmeja, esimerkkinä FOC, sekä erilaisia takaisinkytkentää käyttäviä topologioita, kuten

  • yhtä sivuvastusta
  • yhtä sivuvastusta
  • kahta eristettyä virta-anturia.

Motor Profilerissa kehittäjä voi syöttää moottorin yleiset parametrit ja suorittaa sitten moottorille täyden profiloinnin. Tämä profilointi tuottaa moottorille parametrit, joita sellaiset algoritmit kuten FOC tarvitsevat voidakseen ohjata moottoria.

Projektin luonti Motor Control Workbenchissa on helppoa. Kehittäjän pitää vain avata Motor Control Workbench ja valita uusi projekti. Sitten hän voi syöttää parametrit kuvan 5 mukaisesti:

  • sovelluksen tyyppi
  • ohjattavien moottorien lukumäärä
  • moottoreiden ohjaus- ja tehonsyöttökonfiguraatiot
  • moottorien parametrit, kuten navat, nopeus, jännite ja nimellisvirta.

Kuva Motor Control Workbench -projektistaKuva 5: Motor Control Workbenchin projektikonfiguraatiossa kehittäjä voi muokata projektin asetukset vastaamaan käytettyä laitteistoa. (Kuvan lähde: Beningo Embedded Group)

Kun projektin tiedot on valittu, kehittäjä voi klikata OK ja siirtyä Motor Control Workbenchiin (kuva 6). Kehittäjät voivat muokata työpöydässä sovelluksen käyttäytymistä. Tähän sisältyy mahdollisuus konfiguroida seuraavia:

  • laiteohjelmiston asetukset, kuten käynnistysprofiili, ohjauksen asetukset ja tunnistusvalinnat
  • digitaaliset I/O-asetukset, kuten anturien rajapinta, hall-anturit, sarjamuotoinen tiedonsiirto sekä käynnistys- ja pysäytyspainikkeet
  • digitaali-analogiamuuntimen (DAC) toiminta
  • analoginen tulo sekä suojausasetukset takaisinkytkennälle vaihevirrasta, väyläjännitteestä, lämpötilasta ja PFC-vaiheesta.

Kuvassa Motor Control WorkbenchKuva 6: Motor Control Workbench antaa kehittäjälle mahdollisuuden muokata laiteohjelmistoa ja säätää MCU-yksikköä sekä kellotaajuuksia ja digitaalisia I/O-linjoja, DAC-muunninta ja analogitulon suojausta. (Kuvan lähde: Beningo Embedded Group)

Kehittäjät voivat jopa ottaa käyttöön tai poistaa käytöstä muun muassa seuraavia asetuksia pelkästään rastittamalla valintaruudun:

  • väyläjännitteen tunnistus
  • lämpötilan mittaus
  • virran tunnistus ja ylivirtasuojaus
  • nopeuden tunnistus.

Kehittäjä voi konfiguroida moottorinohjaussovelluksen näkemättä yhtäkään API-rajapintaa ja kirjoittamatta riviäkään koodia.

Yhteenveto

Kehittäjät ja moottorinohjausjärjestelmien suunnittelijat kohtaavat kasvavia paineita laskea kustannuksia sekä tehdä elektroniikasta tehokkaampaa ja pienempää. Kuten artikkelissa näytetään, kolmivaihe-BLDC-moottoreiden ohjaukseen tarkoitettu STSPIN32F060x SiP vähentää materiaalikustannuksia, piirilevyn tilankäyttöä ja järjestelmän monimutkaisuutta. Sen mukana tulee myös tehokas ekosysteemi, johon sisältyy kehitysalusta sekä ohjelmisto, jolla kehittäjät voivat aloittaa moottorinohjaussovellusten luomisen nopeasti ja helposti.

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.

Tietoja kirjoittajasta

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.

Tietoja tästä julkaisijasta

DigiKeyn kirjoittajat Pohjois-Amerikassa