Utilizza un microcontroller a 8 bit ottimizzato per semplificare la progettazione di dispositivi con risorse limitate

Aggiornamento: 25 aprile 2024

Per i progettisti di dispositivi con vincoli di potenza e di spazio come utensili elettrici, prodotti per l'igiene personale, giocattoli, elettrodomestici e controlli dell'illuminazione, tradizionalmente è sufficiente un'unità microcontrollore (MCU) a 8 bit. Tuttavia, man mano che le applicazioni si evolvono, richiedono velocità più elevate, opzioni periferiche più potenti e strumenti di sviluppo software più robusti. La migrazione a un'alternativa a 16 o 32 bit può essere d'aiuto, ma spesso al costo di dimensioni del pacchetto più grandi e maggiore potenza.

Per risolvere questi problemi, i progettisti possono trarre vantaggio dagli MCU basati sull'architettura 8051 che portano molti dei vantaggi dei processori a 16 e 32 bit nel dominio a 8 bit. Lo fanno in un pacchetto piccolo quanto 2 x 2 millimetri (mm) offrendo allo stesso tempo un ambiente di sviluppo moderno.

Questo articolo descrive brevemente l'architettura 8051 e la sua idoneità per applicazioni con risorse limitate. Successivamente presenta una famiglia di MCU basati su 8051 di Silicon Labs, descrive i principali sottosistemi e mostra come ciascuno di essi affronta le sfide di progettazione critiche. L'articolo si conclude discutendo del supporto hardware e software.

Perché utilizzare l'architettura 8051?

Quando si seleziona un MCU per un'applicazione con vincoli di spazio elevati, i processori a 8 bit come l'affermato 8051 offrono molti vantaggi, tra cui un ingombro ridotto, un basso consumo energetico e un design semplice. Tuttavia, molti processori 8051 hanno periferiche relativamente semplici, il che ne limita l'idoneità a casi d'uso specifici. Ad esempio, i convertitori analogico-digitali (ADC) a bassa risoluzione non sono sufficienti per applicazioni ad alta precisione come i dispositivi medici.

Anche gli orologi relativamente lenti possono essere un problema. Il tipico MCU 8051 funziona a frequenze di clock comprese tra 8 megahertz (MHz) e 32 MHz e i progetti più vecchi richiedono più cicli di clock per elaborare le istruzioni. Questa bassa velocità può limitare la capacità degli MCU a 8 bit di supportare operazioni in tempo reale come il controllo preciso del motore.

Inoltre, i tradizionali ambienti di sviluppo software per i processori 8051 non sono allineati con le aspettative degli sviluppatori software moderni. Se combinato con le limitazioni intrinseche di un'architettura a 8 bit, ciò può portare a un processo di codifica lento e frustrante.

Le limitazioni dei tradizionali processori a 8 bit potrebbero indurre gli sviluppatori a prendere in considerazione la migrazione a MCU a 16 o 32 bit. Sebbene questi MCU offrano ampia potenza di calcolo, periferiche ad alte prestazioni e ambienti software moderni, sono anche relativamente grandi. Ciò rende più difficile integrarli in progetti con vincoli di spazio, il che potrebbe ritardare lo sviluppo o aumentare le dimensioni del progetto.

Anche le maggiori dimensioni del codice e il consumo energetico associati agli MCU a 16 e 32 bit possono portare a progetti non ottimali. Questi inconvenienti sono particolarmente problematici per le numerose applicazioni che non coinvolgono matematiche complesse e quindi non beneficiano delle capacità avanzate di questi processori.

L'equilibrio ideale di questi compromessi potrebbe non essere evidente all'inizio di un progetto e il passaggio da un processore all'altro durante la progettazione può ritardare lo sviluppo o compromettere le dimensioni o la funzionalità del prodotto. Pertanto, molti progetti con vincoli di spazio possono trarre vantaggio da un MCU basato su 8051 più capace che porta molti dei vantaggi dei processori a 16 e 32 bit nel dominio compatto e a basso consumo a 8 bit.

EFM8BB50 offre maggiori funzionalità agli MCU a 8 bit

Silicon Labs ha costruito il EFM8BB50 famiglia di MCU a 8 bit tenendo presente queste considerazioni (Figura 1). Questi MCU offrono prestazioni migliorate, periferiche avanzate e un moderno ambiente di sviluppo software.

Figura 1: è mostrato un diagramma a blocchi dell'MCU EFM8BB50. (Fonte immagine: Silicon Labs)

Il cuore dell'MCU è il core CIP-51 8051, un'implementazione Silicon Labs dell'architettura 8051 ottimizzata per prestazioni migliorate, consumo energetico ridotto e funzionalità migliorate. La performance è particolarmente degna di nota. Nell'EFM8BB50, il core raggiunge velocità fino a 50 MHz e il 70% delle istruzioni viene eseguito in uno o due cicli di clock. Ciò conferisce agli MCU prestazioni considerevolmente più elevate rispetto ai tradizionali processori a 8 bit, offrendo agli sviluppatori margine di manovra per applicazioni più complesse.

Gli MCU si distinguono anche per le loro dimensioni ridotte. Le varianti a 16 pin della famiglia, come EFM8BB50F16G-A-QFN16, sono disponibili in contenitori di soli 2.5 mm x 2.5 mm. Le versioni a 12 pin come EFM8BB50F16G-A-QFN12 sono ancora più piccoli, con dimensioni della confezione fino a 2 mm x 2 mm.

Nonostante le dimensioni ridotte, gli MCU EFM8BB50 sono ricchi di una serie impressionante di funzionalità, tra cui:

  • Un ADC a 12 bit, essenziale per le applicazioni che richiedono dati accurati dei sensori
  • Un sensore di temperatura integrato che consente all'MCU di monitorare la propria temperatura interna o la temperatura ambiente senza la necessità di componenti esterni
  • Un array di contatori programmabili (PCA) a tre canali con modulazione di larghezza di impulso (PWM) in grado di generare segnali PWM per il controllo dell'uscita variabile in applicazioni quali controllo motore e dimmerazione LED
  • Un motore PWM a tre canali con inserimento tempo morto (DTI) per un maggiore controllo dell'elettronica di potenza, come driver di motori o convertitori di potenza

Altri ingressi/uscite (I/O) includono una varietà di interfacce di comunicazione seriale, un set di timer a 8 e 16 bit e quattro unità logiche configurabili. Tutti i pin della famiglia MCU supportano la tensione di 5 V e l'I/O digitale può essere assegnato in modo flessibile per sfruttare al massimo il numero limitato di pin.

Gestione energetica avanzata

L'EFM8BB50 incorpora diverse funzionalità di gestione dell'energia per ottimizzare il consumo energetico e prolungare la durata della batteria. Questi iniziano con più modalità di alimentazione, inclusa una modalità Idle che riduce la velocità del clock del core mantenendo attive le periferiche. La modalità Stop va oltre arrestando il core e la maggior parte delle periferiche preservando la RAM e il contenuto dei registri. Alcune periferiche possono essere impostate per riattivare il core dalla modalità Stop, a vantaggio delle applicazioni guidate da eventi che rimangono prevalentemente in uno stato di basso consumo.

Le opzioni di clock flessibili aiutano ulteriormente il risparmio energetico. Un oscillatore interno di precisione elimina la necessità di oscillatori a cristallo esterni in molti scenari, riducendo il consumo energetico complessivo. L'MCU supporta anche il clock gating, che disabilita selettivamente gli orologi su varie periferiche, consentendo agli sviluppatori di disattivare quelle non in uso.

Le periferiche sono inoltre progettate pensando all'efficienza energetica. In particolare, l'unità logica configurabile (CLU) può eseguire semplici funzioni logiche in modo indipendente, riducendo la necessità che il core si riattivi dalle modalità a basso consumo per attività semplici. Inoltre, il Low Energy UART (LEUART) può funzionare in modalità di potenza in cui l'oscillatore primario è disabilitato, consentendo la comunicazione seriale in stati di basso consumo.

Supportare lo sviluppo software intuitivo

Gli sviluppatori possono creare software per la famiglia EFM8BB50 nella Simplicity Studio Suite di Silicon Labs. Questo ambiente viene utilizzato per l'EFM8BB8 a 50 bit, gli MCU a 32 bit dell'azienda e i suoi sistemi wireless su chip (SoC). Di conseguenza, gli sviluppatori ottengono un ambiente moderno con le funzionalità che si aspetterebbero da processori più potenti. Ad esempio, offre un profiler energetico che fornisce la profilazione energetica del codice in tempo reale (Figura 2).

Figura 2: Simplicity Studio include un profilatore energetico che fornisce la profilazione energetica del codice in tempo reale. (Fonte immagine: Silicon Labs)

Gli strumenti sono costruiti attorno a un ambiente di sviluppo integrato (IDE) con editor di codice, compilatori, debugger standard del settore e un motore di interfaccia utente (UI) per sviluppare interfacce moderne e reattive. Questo ambiente di sviluppo fornisce l'accesso a risorse Web e SDK specifiche del dispositivo, nonché strumenti di configurazione software e hardware specializzati.

Simplicity Studio supporta anche Silicon Labs Secure Vault. Secure Vault, una suite di sicurezza altamente avanzata con certificazione PSA di livello 3, consente ai progettisti di rafforzare i dispositivi Internet of Things (IoT) e proteggere la loro superficie di attacco dalle crescenti minacce informatiche, allineandosi al tempo stesso alle normative in evoluzione sulla sicurezza informatica.

Iniziare rapidamente con i kit di valutazione

Gli sviluppatori interessati a sperimentare con l'EFM8BB50 possono prendere in considerazione il kit Explorer BB50-EK2702A mostrato nella Figura 3. Questo kit dal fattore di forma ridotto è allineato alle dimensioni della breadboard per un facile collegamento ai sistemi prototipo e all'hardware del laboratorio. È dotato di un'interfaccia USB, un debugger SEGGER J-Link integrato, un LED e un pulsante per l'interazione con l'utente. Il kit è completamente supportato da Simplicity Studio Suite e può essere utilizzato con l'utilità Energy Profiler. Vengono forniti esempi di software per ogni periferica e demo che esercitano il LED, il pulsante e l'UART.

Figura 3: è mostrato il kit Explorer BB50-EK2702A. (Fonte immagine: Silicon Labs)

Il kit comprende una presa mikroBUS e un connettore Qwiic. Questo supporto aggiuntivo hardware consente agli sviluppatori di creare e prototipare rapidamente applicazioni utilizzando schede standard di vari fornitori.

Gli sviluppatori interessati a un punto di partenza più completo possono utilizzare il kit BB50-PK5208A Pro mostrato nella Figura 4. Progettato per valutazioni e test approfonditi, questo kit contiene sensori e periferiche che dimostrano molte delle funzionalità dell'MCU.

Figura 4: Viene mostrato il kit BB50-PK5208A Pro per una valutazione e un test approfonditi. (Fonte immagine: Silicon Labs)

Il Pro Kit include la connettività USB e una memoria da 128 x 128 pixel a bassissimo consumo LCD, un joystick analogico a otto direzioni, un LED e un pulsante utente. Dispone inoltre di un sensore di umidità relativa e temperatura Si7021 di Silicon Labs e di molteplici fonti di alimentazione, tra cui USB e una batteria a bottone.

Per l'espansione, la scheda offre un header da 20 mm a 2.54 pin. Fornisce inoltre pad di breakout per l'accesso diretto ai pin I/O. Come con l'Explorer Kit, il Pro Kit supporta Energy Profiler e viene fornito con esempi di software per ogni periferica.

Opzioni del debugger EFM8BB50

Silicon Labs offre più debugger per supportare i suoi MCU. Per il debug generico, l'azienda offre DEBUGADPTR1-USB, un adattatore di debug USB a 8 bit con un semplice connettore a 10 pin.

Funzionalità più specializzate sono disponibili nel debugger Simplicity Link SI-DBG1015A. Questo si collega all'interfaccia Mini Simplicity inclusa in entrambi i kit sopra menzionati. Oltre alle funzionalità di base, Simplicity Link offre funzionalità aggiuntive, tra cui un debugger SEGGER J-Link, un'interfaccia di tracciamento dei pacchetti, una porta COM virtuale e breakout pad per un facile rilevamento dei singoli segnali.

Conclusione

I moderni MCU 8051 come l'EFM8BB50 portano funzionalità tipicamente associate ai dispositivi a 16 e 32 bit nel dominio a 8 bit. Grazie alle elevate velocità di clock, alle periferiche ad alte prestazioni e al robusto ambiente di sviluppo software, questa famiglia di MCU offre agli sviluppatori il giusto mix di funzionalità per un numero crescente di applicazioni in cui spazio e potenza sono limitati ma sono necessarie prestazioni e flessibilità maggiori.