Utilizzare microcontroller scalabili per la flessibilità di progettazione

Di Kenton Williston

Contributo di Editori nordamericani di DigiKey

Più le funzioni avanzate come l'intelligenza artificiale (IA) e le interfacce uomo-macchina (HMI) complesse e ricche di grafica si fanno comuni nelle applicazioni, più i progettisti di prodotti sono alla ricerca di unità microcontroller (MCU) più potenti. Tuttavia, ai progettisti viene anche chiesto di creare prodotti ottimizzati dal punto di vista dei costi, rinunciando a queste caratteristiche appariscenti. Queste pressioni concorrenti rendono indispensabile la scelta di un MCU facilmente scalabile per soddisfare le diverse esigenze del mercato.

La crescente velocità dell'innovazione sta aumentando questa pressione. I requisiti delle applicazioni possono cambiare inaspettatamente, quindi è essenziale avere un facile accesso a MCU alternativi. Occorre inoltre considerare la possibilità di riutilizzo e di protezione per il futuro. Si possono realizzare notevoli risparmi di tempo e di costi quando gli elementi progettati possono essere riutilizzati per altri progetti.

Un modo per affrontare queste sfide è scegliere una famiglia di MCU con un'ampia gamma di opzioni. STM32H7 di STMicroelectronics ne è un buon esempio. La serie spazia da MCU a 32 bit entry-level ottimizzati dal punto di vista del rapporto prezzo-prestazioni a MCU dual-core con un ricco set di funzionalità.

Questo articolo evidenzia i criteri da considerare nella scelta di una famiglia di MCU, utilizzando come esempio le caratteristiche della famiglia STM32H7. Presenta inoltre le schede di sviluppo e gli strumenti disponibili per gli MCU STM32H7 e spiega come iniziare a progettare con questa infrastruttura.

Fattori che rendono flessibile e scalabile una famiglia di MCU

Nella ricerca di una famiglia di MCU flessibili occorre considerare molti fattori. È particolarmente importante avere la scelta tra un'ampia gamma di prestazioni e livelli di potenza. La famiglia di MCU preferita dovrebbe includere opzioni con molteplici velocità di clock e core ottimizzati per diversi obiettivi. Ad esempio, ARM® Cortex®-M4 per i bassi consumi e ARM Cortex-M7 per le alte prestazioni.

La famiglia dovrebbe comprendere MCU con capacità di elaborazione di base e opzioni con capacità estese. Molte applicazioni richiedono protezione dei dati e comunicazioni sicure. Caratteristiche come la crittografia basata su hardware, l'avvio sicuro e gli acceleratori crittografici sono essenziali per questi casi d'uso. Analogamente, un processore di segnali digitali (DSP) e istruzioni in virgola mobile sono fondamentali per le applicazioni ad alta intensità di dati.

La famiglia di MCU dovrebbe inoltre offrire molte scelte in fatto di memoria RAM e flash, per adattarsi a tutte le applicazioni, da quelle più semplici a quelle che richiedono un'ampia struttura software o la memorizzazione di dati. Gli MCU dovrebbero disporre di interfacce di memoria esterna per le applicazioni che superano le capacità di memoria interna, per garantire la necessaria scalabilità.

Infine, le famiglie di MCU con più opzioni di periferiche possono gestire una più ampia varietà di applicazioni. È essenziale assicurarsi che la famiglia di MCU includa opzioni con I/O avanzati come USB, Ethernet, Bluetooth e Wi-Fi, poiché queste interfacce possono essere difficili da aggiungere come aggiornamento in progetti successivi. In linea teorica, la famiglia selezionata offrirà la compatibilità di piedinatura in tutta la sua gamma di prodotti per supportare gli aggiornamenti o la retrocompatibilità dell'hardware senza dover riprogettare le schede a circuiti stampati (PCB).

Gli strumenti di sviluppo devono supportare l'intera famiglia di MCU dal punto di vista software. Per accelerare lo sviluppo, è necessario disporre di un'interfaccia di programmazione delle applicazioni (API) coerente e di un solido insieme di librerie, middleware e sistema operativo in tempo reale (RTOS).

STM32H7: un esempio di versatilità

La serie STM32H7 di STMicroelectronics è un esempio di una famiglia di MCU che soddisfa questi criteri. Come illustra la Tabella 1, è altamente scalabile, con una gamma costruita attorno al core ARM Cortex-M7 che comprende MCU di base e avanzati. La serie è composta da quattro linee, ciascuna ottimizzata per diverse applicazioni.

Core e clock MCU Flash/RAM massima Caratteristiche principali
Linea Value 280 ~ 550 MHz
ARM Cortex-M7
128 kB di Flash
1 MB di RAM
Basso costo, Ethernet, QSPI, TFT
Linea Single-Core 280 ~ 550 MHz
ARM Cortex-M7
2 MB di Flash
1,4 MB di RAM
TFT, Ethernet, Q-SPI, basso consumo
Linea Dual-Core 480 MHz
ARM Cortex-M7 +
240 MHz
ARM Cortex-M4
2 MB di Flash
1 MB di RAM
Alimentatore a commutazione (SMPS), TFT-LCD, MIPI-DSI, JPEG
Linea BootFlash 600 MHz
ARM Cortex-M7
Flash esterna, 620 kB di RAM GPU NeoChrom, I3C, XiP, USB PHY

Tabella 1: Caratteristiche salienti delle quattro linee della serie STM32H7. (Tabella per gentile concessione dell'autore, utilizzando materiale di STMicroelectronics)

La linea Value è disponibile con velocità da 280 a 550 MHz e offre 128 kB di memoria flash integrata e 1 MB di RAM. Supporta una serie di interfacce di comunicazione ed estensioni di memoria esterna, risultando in una soluzione economica per i sistemi orientati alle prestazioni. STM32H750VBT6 è uno di questi MCU ed è disponibile in un formato 100-LQFP da 14 x 14 mm.

Anche la linea Single-Core funziona con velocità da 280 a 550 MHz. Offre fino a 2 MB di memoria flash e fino a 1,4 MB di RAM, per soddisfare le applicazioni che richiedono interfacce utente ricche e controllo in tempo reale. Un esempio è il modello STM32H743IIK6, disponibile in un contenitore 201-UFBGA da 10 x 10 mm.

La linea Dual-Core offre un core ARM Cortex-M4 secondario ottimizzato per l'efficienza. Un alimentatore a commutazione (SMPS) embedded migliora l'efficienza energetica. Altre periferiche avanzate includono TFT-LCD, MIPI-DSI e un codec JPEG hardware. Un esempio tipico è STM32H747AII6, offerto in un contenitore 169-UFBGA da 7 x 7 mm.

La linea BootFlash si distingue per le sue elevate prestazioni, raggiungendo velocità fino a 600 MHz. È progettata per facilitare le applicazioni execute-in-place (XiP) in tempo reale ed è dotata di 64 kB di flash di avvio e 620 kB di RAM. Inoltre, alcuni modelli di questa linea sono dotati di una GPU NeoChrom opzionale per una maggiore accelerazione grafica. Il cavallo di battaglia di questa linea è il modello STM32H7R3Z8J6 con il suo contenitore 144-UFBGA da 10 x 10 mm.

I vantaggi della compatibilità con le famiglie STM32F4 e STM32F7

STM32H7 fa parte di una gamma più ampia di MCU di STMicroelectronics e ha una piedinatura compatibile con le famiglie STM32F4 e STM32F7 per i contenitori più comuni. Questi MCU sono tutti basati su core ARM Cortex-M e condividono periferiche e layout dei pin GPIO simili. I punti in comune facilitano la migrazione dei progettisti tra gli MCU senza dover apportare modifiche significative all'hardware. Questa compatibilità può ridurre i tempi e i costi di sviluppo quando si aggiorna un prodotto o si progettano nuovi prodotti basati sulle diverse capacità di ciascuna famiglia.

Inoltre, gli MCU sono tutti supportati dallo stesso ecosistema di sviluppo software, che comprende STM32CubeMX per la configurazione e la generazione del codice di inizializzazione e STM32CubeIDE per lo sviluppo e il debug. Questa compatibilità garantisce che i componenti software, il middleware e il codice applicativo possano essere riutilizzati nei progetti che si rivolgono all'una o all'altra famiglia, accelerando ulteriormente i cicli di sviluppo.

Primi passi con gli MCU serie STM32H7

Per iniziare a utilizzare gli MCU STM32H7 sono necessari alcuni passaggi chiave e l'uso efficace di schede di sviluppo e strumenti. La seguente guida illustra passo-passo come iniziare a sviluppare con questi potenti microcontroller.

1. Scegliere una scheda di sviluppo

Ideali per l'esplorazione iniziale, i kit Discovery sono dotati di un debugger/programmatore integrato e di solito presentano vari LED utente, tasti, sensori e opzioni di connettività. Le schede Nucleo, come NUCLEO-F767ZI (Figura 1), offrono un buon equilibrio tra flessibilità e convenienza. Sono compatibili con Arduino Uno per una facile espansione e dispongono di un'interfaccia STLINK per l'utilizzo con debugger/programmatori.

Immagine della scheda di sviluppo NUCLEO-F767ZI di STMicroelectronicsFigura 1: La scheda di sviluppo NUCLEO-F767ZI è un punto di partenza semplice ma flessibile per la sperimentazione. (Immagine per gentile concessione di STMicroelectronics)

Le schede di valutazione offrono la serie più completa di periferiche e opzioni di connettività per un'esplorazione completa. Ad esempio, i kit Discovery come STM32H745I-DISCO (Figura 2) e STM32H750B-DK consentono di valutare rapidamente varie interfacce con caratteristiche quali:

  • LCD da 4,3" RGB con pannello tattile
  • Conformità Ethernet con IEEE-802.3-2002
  • Power over Ethernet (PoE)
  • USB OTG FS
  • Codec audio SAI
  • Un microfono digitale ST-MEMS
  • 2 memorie Flash NOR Octo‑SPI da 512 Mb
  • 128 Mb di SDRAM
  • 4 GB di eMMC su scheda
  • 2 CAN FD
  • Compatibile con shield Arduino
  • Debugger/programmatore STLINK-V3E su scheda con capacità di ri-enumerazione USB: archiviazione di massa, porta COM virtuale e porta di debug

Immagine della scheda di valutazione STM32H745I-DISCO di STMicroelectronicsFigura 2: La scheda di valutazione STM32H745I-DISCO offre una ricca serie di risorse hardware. (Immagine per gentile concessione di STMicroelectronics)

2. Impostare gli strumenti software

STMicroelectronics offre un ambiente di sviluppo integrato (IDE) per gli MCU (Figura 3). Include un compilatore, un debugger e un configuratore per la generazione del codice di inizializzazione e la configurazione delle periferiche.

Immagine dell'IDE STM32H7 di STMicroelectronicsFigura 3: IDE STM32H7. (Immagine per gentile concessione di STMicroelectronics)

3. Imparare e sperimentare

Successivamente, è consigliabile leggere la documentazione. Un ottimo punto di partenza è il manuale d'uso della scheda di sviluppo e il relativo manuale di riferimento STM32H7. Questi documenti forniscono informazioni fondamentali sulle architetture MCU, sulla configurazione delle periferiche, sui Pin-Mux e sulle caratteristiche hardware.

Sperimentare con progetti di esempio è un modo efficace per imparare a utilizzare gli strumenti. STMicroelectronics offre una serie di progetti di esempio per diversi MCU STM32. Questi esempi possono essere un ottimo punto di partenza per capire come utilizzare le diverse funzioni dell'MCU.

Infine, la comunità degli sviluppatori può fornire ulteriore supporto. L'utilizzo di risorse come la ST Community, i tutorial e i video possono fornire soluzioni a problemi comuni e ispirazione per possibili progetti.

4. Sviluppare ed eseguire il debug

L'IDE fornisce tutto il necessario per iniziare a scrivere, compilare ed eseguire il debug del codice. Il configuratore contenuto nell'IDE può essere utilizzato per l'inizializzazione delle periferiche e la configurazione del middleware. L'interfaccia debugger/programmatore STLINK integrata nella scheda di sviluppo consente il debug in tempo reale. I problemi possono essere identificati utilizzando punti di interruzione, osservando le variabili ed eseguendo il codice passo dopo passo.

5. Espandere un progetto

Le schede di espansione possono aggiungere funzionalità come connettività o sensori alle schede Discovery e Nucleo. Una volta stabilita la funzionalità desiderata tramite le schede di sviluppo, è possibile progettare una PCB personalizzata utilizzando come riferimento gli schemi della scheda di sviluppo. Un esempio di scheda personalizzata è la piattaforma OpenMV4 CAM H7 (Figura 4) di Seeed Technology Co., Ltd. che utilizza il single core STM32H743.

Immagine di OpenMV4 CAM H7 di Seeed Technology, destinato ai sistemi di visioneFigura 4: OpenMV4 CAM H7 è destinato ai sistemi di visione. (Immagine per gentile concessione di Seeed Technology Co., Ltd.)

Un altro esempio è ABX00051 Nicla Vision (Figura 5) di Arduino, che utilizza il dual core STM32H747.

Immagine di ABX00051 Nicla Vision di ArduinoFigura 5: ABX00051 Nicla Vision aiuta gli sviluppatori a valutare diversi sensori di immagine. (Immagine per gentile concessione di Arduino)

Conclusione

La scelta dell'MCU nella progettazione di un prodotto è fondamentale, data la concorrenza tra le richieste di funzioni avanzate e l'ottimizzazione dei costi. La serie STM32H7 di STMicroelectronics è un potente esempio di come la scelta della giusta famiglia di MCU possa fornire una soluzione scalabile e flessibile per rispondere alle esigenze attuali e future.

DigiKey logo

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 DigiKey o le sue politiche.

Informazioni su questo autore

Image of Kenton Williston

Kenton Williston

Kenton Williston ha conseguito un B.S. in ingegneria elettrica nel 2000 e ha iniziato la carriera come analista di benchmark dei processori. Da allora ha lavorato come redattore presso il gruppo EE Times e ha contribuito a lanciare e condurre numerose pubblicazioni e conferenze al servizio del settore dell'elettronica.

Informazioni su questo editore

Editori nordamericani di DigiKey