EUR | USD

Implementare rapidamente progetti di controllo motori utilizzando un CI di pilotaggio con microcontroller integrato

Di Jacob Beningo

Contributo di Editori nordamericani di Digi-Key

Applicazioni come quelle per automobili, robotica, controllo industriale e velivoli si servono sempre più diffusamente dei motori. Tuttavia, a causa delle alte tensioni di pilotaggio coinvolte, l'elettronica dei motori è tradizionalmente pesante, ingombrante, inefficiente e difficile da gestire. Dato che ai progettisti viene chiesto sempre più insistentemente di ridurre i costi della distinta base, incrementare l'efficienza, contenere l'ingombro dell'elettronica, aumentare la flessibilità e accelerare il time-to-market, servono un maggior grado di integrazione e una maggiore facilità d'uso.

Questo articolo presenterà la famiglia di controller per motori trifase SiP (System-in-Package) di STMicroelectronics, STSPIN32F32F060x. Verrà spiegato come utilizzare questi dispositivi dotati di microcontroller incorporati per superare agevolmente gli ostacoli di progettazione, ridurre i costi e il time-to-market.

Come pilotare un motore trifase

Per riuscire a pilotare un motore trifase, occorre integrare nel progetto diversi blocchi hardware:

  • Un microcontroller
  • Un comando motore in CI
  • MOSFET o IGBT (responsabili della commutazione effettiva) ad alta tensione

Nel progetto di un tradizionale controller per motori, di solito una sezione della scheda è dedicata a tutti e tre i blocchi. In genere, il microcontroller invia segnali modulati della larghezza di impulso (PWM) al CI di comando motore, che li controlla attentamente, oltre alla corrente e alla tensione di uscita che vengono generate all'uscita del controller per pilotare i MOSFET. Il microcontroller spesso comunica anche con il CI di comando motore attraverso un bus I2C o SPI per rendere possibili funzioni personalizzate, oppure può usare alcuni segnali GPIO discreti per controllare il comportamento del ponte.

Nel ciclo di sviluppo odierno, però, un circuito di pilotaggio con ponte esterno aggiunge costi e complessità e occupa spazio prezioso sulla scheda. Inoltre, i segnali di ingresso e di uscita (I/O) sul microcontroller potrebbero essere usati per altri scopi. La nuova classe di microcontroller integrati e circuiti a ponte semplifica le applicazioni di controllo motori, riducendo contemporaneamente i costi della distinta base e l'ingombro sulla scheda.

Perché usare STSPIN32F060x?

Questa classe è rappresentata dalla serie SiP di dispositivi STSPIN32F060x di STMicroelectronics che comprende un microcontroller STM32F031x6x7 basato su Arm® Cortex®-M0 con un gate driver a triplo semiponte a 600 V (Figura 1). Ogni semiponte può essere utilizzato per pilotare un MOSFET o un IGBT su ogni fase di un motore c.c. brushless (BLDC).

Schema di STM32F060x di STMicroelectronics che integra un Arm Cortex-M0 STM32F031 (Fare clic per ingrandire)Figura 1: STM32F060x integra un Arm Cortex-M0 STM32F031 con un gate driver a triplo semiponte a 600 V per risparmiare su costi, spazio su scheda e piedinatura del contenitore. (Immagine per gentile concessione di STMicroelectronics)

La serie fornisce alcune caratteristiche e protezioni molto interessanti. Fra i componenti vi sono:

  • Un comparatore con una funzione di spegnimento intelligente avanzato (smartSD) che garantisce una protezione rapida ed efficace da sovraccarico e sovracorrente
  • Diodi bootstrap ad alta tensione integrati
  • Protezione dalla conduzione incrociata
  • Protezione dai tempi di fermo
  • Protezione UVLO

Il microcontroller integrato funziona a 48 MHz e comprende 32 kB di flash con 4 kB di RAM, un valore ottimale per implementare il controllo a orientamento di campo (FOC).

La famiglia STM32F060x attualmente include due componenti: STSPIN32F0601 e STSPIN32F0602. Il modello 0601 supporta correnti di pilotaggio del gate fino a 0,35 A, mentre il modello 0602 può arrivare a 1,0 A. Questa è la differenza principale tra i due.

Tenere presente che all'interno del CI, il microcontroller STM32F031 è collegato al gate driver attraverso diverse linee GPIO interne al contenitore. GPIO PA11 è utilizzato per abilitare il gate driver, mentre GPIO PB12 è usato per rilevare un eventuale guasto nel ponte. I GPIO PA8 - PA10 sono utilizzati per gli ingressi high-side del gate driver, mentre i GPIO PB13 - 15 sono utilizzati per quelli low-side. Questo evita di dover utilizzare pin GPIO esterni per controllare un gate driver e fa risparmiare spazio sulla scheda per la posa delle tracce verso un CI separato. L'integrazione di entrambi i componenti semplifica l'hardware e la complessità di progettazione e può ridurre in modo significativo i costi della distinta base.

Accelerare lo sviluppo con la scheda di sviluppo EVSPIN32F0601S1

STSPIN32F060x è supportato dalla scheda di sviluppo EVSPIN32F0601S1, uno starter kit completo per inverter trifase con tutta l'elettronica necessaria per la realizzazione di un motore BLDC con il controller STSPIN32F0601 (Figura 2). EVSPIN32F0601S1 è suddiviso in cinque sezioni primarie:

  • STSPIN32F0601
  • Un debugger STLINK rimovibile
  • Una rete di retroazione
  • Uno stadio di potenza
  • Un alimentatore

Immagine della scheda di sviluppo EVSPIN32F0601S1 di STMicroelectronicsFigura 2: La scheda di sviluppo EVSPIN32F0601S1 offre tutta l'elettronica necessaria per la realizzazione di un motore BLDC utilizzando il controller STSPIN32F0601. (Immagine per gentile concessione di STMicroelectronics)

Il debugger STLINK della PCB può essere rimosso dalla scheda di sviluppo. Ciò consente agli sviluppatori di ridurre le dimensioni della scheda per poterla utilizzare nei prototipi e negli involucri proof of concept (PoC). Gli sviluppatori possono collegare comunque un STLINK-V3SET esterno (Figura 3) attraverso le basette SWD sulla scheda di sviluppo.

Immagine del debugger STLINK-V3SET di STMicroelectronicsFigura 3: Il debugger STLINK-V3SET è esterno e può essere usato per programmare ed eseguire il debug delle applicazioni scritte utilizzando un microcontroller STM32. (Immagine per gentile concessione di STMicroelectronics)

La scheda di sviluppo include anche una rete di retroazione che può essere utilizzata per algoritmi di controllo motori che richiedono l'uso di sensori per la retroazione di tensione e corrente. In molti progetti attuali, queste reti di retroazione possono essere eliminate e si può utilizzare un algoritmo FOC. Si tratta di un algoritmo di controllo motori senza sensori in grado di ridurre ulteriormente i costi della distinta base e le dimensioni della scheda risultante.

Lo stadio di potenza fornisce agli sviluppatori MOSFET o IGBT high-side e low-side che vengono utilizzati per commutare la tensione attraverso i vari avvolgimenti del motore. L'aspetto interessante della progettazione della scheda è il fatto che l'ingombro è dedicato ai contenitori DPAK o PowerFlat, per cui gli sviluppatori possono modificare la scheda di sviluppo per usare il proprio MOSFET o IGBT.

Infine, l'alimentatore può fornire un ingresso tra 50 e 280 V c.c./c.a. Il trasformatore flyback su scheda può anche generare +15 V e +3,3 V da utilizzare nell'applicazione.

Per fare esperimenti con la scheda di sviluppo, è necessario collegare un BLDC, come QBL4208-41-04-006 di Trinamic Motion Control GmbH (Figura 4). Ogni fase del motore BLDC è collegata a EVSPIN32F0601S1 attraverso gli appositi terminali a vite in uscita.

Immagine del motore BLDC QBL4208-41-04-006 di Trinamic Motion Control GmbHFigura 4: Il motore BLDC QBL4208-41-04-006 funziona a 4000 giri/min e può essere usato con la scheda di sviluppo EVSPIN32F0601S1 per realizzare un'ampia serie di applicazioni. (Immagine per gentile concessione di Trinamic Motion Control GmbH)

Anche se la scheda di sviluppo EVSPIN32F0601S1 ha tutto l'hardware necessario per pilotare un motore BLDC, un motore trifase richiede anche del software. Per pilotare correttamente un motore, gli sviluppatori possono avvalersi del kit di sviluppo software per il controllo motori X-CUBE-MCSDK di STMicroelectronics. Questa libreria può essere utilizzata con pacchetti software come ST32CubeIDE e ST32CubeMx per configurare facilmente una soluzione di controllo motori.

Pilotare un motore BLDC tramite software

Il pacchetto software X-CUBE-MCSDK comprende due applicazioni di alto livello: MotorControl Workbench e Motor Profiler. MotorControl Workbench permette a uno sviluppatore di creare un progetto di controllo motori per facilitarne il funzionamento. Per azionare il motore si possono utilizzare vari algoritmi, tra cui FOC, così come varie topologie di retroazione, ad esempio:

  • Un resistore di shunt
  • Tre resistori di shunt
  • Due sensori di corrente isolati

Motor Profiler permette di inserire i parametri generali del motore e quindi di profilare completamente il motore. Questa profilazione fornisce i parametri generali del motore richiesti da algoritmi come FOC per pilotarlo correttamente.

Creare un progetto all'interno di Motor Control Workbench è semplice. Occorre aprire Motor Control Workbench e selezionare un nuovo progetto. Quindi inserire i parametri come mostrato nella Figura 5:

  • Tipo di applicazione
  • Il numero di motori che saranno controllati
  • Le rispettive configurazioni di controllo e di potenza
  • I parametri del motore come poli, velocità, tensione e corrente nominale

Immagine del progetto in Motor Control WorkbenchFigura 5: La configurazione del progetto in Motor Control Workbench permette a uno sviluppatore di personalizzare le impostazioni del progetto relative all'hardware. (Immagine per gentile concessione di Beningo Embedded Group)

Dopo aver selezionato le informazioni per il progetto, gli sviluppatori possono fare clic su OK per entrare in Motor Control Workbench (Figura 6). Dal workbench, possono personalizzare il comportamento dell'applicazione, compresa la possibilità di configurare:

  • Impostazioni del firmware come il profilo di avviamento, le impostazioni di pilotaggio e le opzioni di rilevamento
  • Impostazioni di I/O digitali come l'interfaccia dell'encoder, i sensori Hall, la comunicazione seriale e i pulsanti di avvio e di arresto
  • Funzionalità del convertitore digitale/analogico (DAC)
  • Impostazioni di ingresso analogico e protezione per la retroazione dalla corrente di fase, dalla tensione del bus, dalla temperatura e dallo stadio PFC.

Immagine di Motor Control WorkbenchFigura 6: Motor Control Workbench permette di personalizzare il firmware, regolare MCU e frequenze del clock, oltre a I/O digitale, DAC e protezione dell'ingresso analogico. (Immagine per gentile concessione di Beningo Embedded Group)

Gli sviluppatori possono anche abilitare e disabilitare le impostazioni con un clic su una casella di controllo, ad esempio:

  • Rilevamento della tensione del bus
  • Rilevamento della temperatura
  • Rilevamento della corrente con protezione da sovracorrente
  • Rilevamento della velocità

Lo sviluppatore non ha nemmeno bisogno di vedere una singola API o linea di codice per configurare completamente un'applicazione di controllo motori.

Conclusione

Gli sviluppatori e i progettisti di sistemi di controllo motori devono affrontare la crescente pressione di ridurre i costi, incrementare l'efficienza e realizzare l'elettronica con un ingombro minore. Come è stato dimostrato, il SiP STSPIN32F060x per applicazioni di controllo motori BLDC trifase riduce non solo i costi della distinta base, ma anche lo spazio su scheda e la complessità del sistema. Inoltre, è dotato di un ecosistema efficace che comprende una scheda di sviluppo e un software progettati per permettere agli sviluppatori di realizzare applicazioni di controllo motori in modo rapido e semplice.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di Digi-Key Electronics o le sue politiche.

Informazioni su questo autore

Jacob Beningo

Jacob Beningo è un consulente software embedded e attualmente lavora con clienti in più di una decina di paesi per trasformare radicalmente le loro attività migliorando la qualità dei prodotti, i costi e il time-to-market. Ha pubblicato più di 200 articoli sulle tecniche di sviluppo di software embedded, è un relatore e un istruttore tecnico e ha conseguito tre lauree, tra cui un master in ingegneria presso University of Michigan. Risponde all'indirizzo jacob@beningo.com, ha un sito web personale www.beningo.com e produce una Newsletter mensile Embedded Bytes cui è possibile iscriversi.

Informazioni su questo editore

Editori nordamericani di Digi-Key