I microcontroller a 8 bit sono ancora un'ottima scelta in termini di basso consumo e facilità d'uso

Negli anni '90 (quello che io considero il periodo d'oro per i microcontroller) i compilatori C stavano iniziando a guadagnare terreno, ma per la programmazione embedded era ancora necessario ricorrere al linguaggio assembly. Era la norma per noi ingegneri delle applicazioni in visita presso i clienti, trovarci di fronte a una platea di ingegneri che ci ascoltavano con interesse, tessere le lodi dell'ultima gamma di microcontroller sul mercato.

All'epoca i produttori di semiconduttori non sfornavano nuovi prodotti ogni mese, come oggi. In genere uscivano uno o due nuovi microcontroller ogni tre mesi. Alcune cose però non cambieranno mai. La ventina di ingegneri che intrattenevo quel giorno con le mie presentazioni in PowerPoint facevano parte di un gruppo che produceva controller per il settore automotive, quelle semplici scatolette che funzionavano secondo il principio dell'in/out, cioè i segnali entravano nella scatola e i segnali di controllo dell'attuatore ne uscivano. Niente di eccessivamente complesso per un microcontroller a 8 bit con ottime capacità di GPIO.

Era un giorno come gli altri, quindi, almeno fino a quando in fondo alla sala qualcuno alzò la mano.

E si sentì una voce affermare senza mezzi termini: "La direzione ha deciso che per i controller dobbiamo iniziare a usare microcontroller a 32 bit". Nella stanza si alzò un mormorio di sorpresa che mi fece pensare quindi che la direzione non avesse deciso niente del genere e che forse quella persona aveva semplicemente un secondo scopo, ad esempio un fornitore preferito, che purtroppo non ero io.

In un universo parallelo avrei risposto: "Non le serve un microcontroller a 32 bit, e non credo a una parola di quello che dice". Nel nostro universo, invece, per il bene della mia carriera, mi limitai a ribattere: "Mi potrebbe dire quali caratteristiche dell'architettura a 32 bit le servono per i vostri controller di prossima generazione?"

Seguì una pausa e lui rispose semplicemente, con tono di sfida: "Ci servono 32 bit". Nella sua voce però questa volta si poteva percepire l'esitazione. Gli altri ingegneri, intuendo la sua debolezza, si girarono con curiosità verso di me, aspettando la mia risposta.

Spiegai chiaramente i vantaggi dell'architettura a 32 bit rispetto a quella a 8 bit. Avevano bisogno di più velocità per il clock? Il prodotto di prossima generazione eseguiva operazioni matematiche più complesse? Il firmware sarebbe stato multithread e avrebbe avuto bisogno di un sistema operativo in tempo reale (RTOS)? Le dimensioni del firmware sarebbero aumentate a tal punto da richiedere maggiore capacità di indirizzamento della memoria? Erano tutte (e lo sono tuttora) buone ragioni per passare da un core a 8 bit a uno a 32 bit (nel mezzo, in realtà, c'è anche il 16 bit, ma è un'altra storia).

Seguì una piacevole discussione davanti a delle ottime ciambelle sulle differenze tra l'architettura a 8 bit e a 32 bit. L'architettura con microcontroller a 8 bit è più semplice e ha un modello di programmazione di più facile comprensione. In genere richiede una sola fonte di alimentazione. Sebbene si sentano pareri contrari, le moderne architetture a 8 bit consumano meno rispetto a quelle a 32 bit, perché i componenti interni gestiscono meno segnali del bus.

Esempio reale di microcontroller a 8 bit

Microchip Technology da anni è fiera della propria offerta di microcontroller a 8 bit. Il popolare core a 8 bit megaAVR di Microchip Technology (chiamato anche ATMega) ha un'architettura Harvard convenzionale in grado di indirizzare fino a 256 kB di memoria di programma. Utilizza una semplice architettura basata su registro, compatibile con C, con 32 registri a 8 bit per uso generale (Figura 1).

Figura 1: Il microcontroller megaAVR si basa su 32 registri a 8 bit, da R0 a R31. I registri possono essere indirizzati anche a coppie, per avere sedici registri a 16 bit. (Immagine per gentile concessione di Microchip Technology)

I registri per uso generale possono essere accoppiati a formare sedici registri a 16 bit e, volendo, le ultime tre coppie di registri possono essere utilizzate come registri a 16 bit (X, Y e Z) per l'indirizzamento indiretto.

Oltre a questi registri per uso generale, il microchip megaAVR ha uno stack register a 16 bit e un registro di stato a 8 bit. Niente di più. La sua semplicità permette la programmazione con il linguaggio assembly.

Se per caso ve lo siete chiesto: no, non è possibile accedere al contatore di programma in megaAVR. Scordatevelo.

Un esempio tipico della famiglia megaAVR è il microcontroller ATMEGA1609 a 20 MHz. È semplice da utilizzare, con 16 kB di memoria flash, 2 kB di RAM e 256 byte di EEPROM. La maggior parte delle istruzioni è a ciclo singolo.

Figura 2: ATMEGA1609 di Microchip Technology è un microcontroller a 8 bit a basso consumo, flessibile e semplice, adatto per un'ampia gamma di ambienti. (Immagine per gentile concessione di Microchip Technology)

Ha un convertitore analogico/digitale (ADC) a 10 bit, cinque timer a 16 bit, un clock in tempo reale (RTC), diverse opzioni a basso consumo e un moltiplicatore hardware con/senza segno a 2 cicli.

Ha inoltre istruzioni bit set/clear a ciclo singolo, e bit test che richiedono da uno a tre cicli.

L'importanza delle istruzioni bit viene spesso sottovalutata dagli sviluppatori che prediligono il linguaggio C. In realtà, istruzioni bit native possono migliorare sensibilmente le prestazioni, ridurre la dimensione del codice, migliorarne la leggibilità e semplificare la vita dello sviluppatore in tutti i sensi.

Le necessità di alimentazione per ATMEGA1609 sono flessibili: da 1,8 a 5,5 V, con temperature da -40 a +125 °C. Gli ampi intervalli per l'alimentazione e le temperature di funzionamento non sono certo un caso. Questo microcontroller a 8 bit è stato infatti progettato appositamente per adattarsi a un'ampia gamma di ambienti e utilizzi. La facilità d'uso è sempre vincente.

A volte, per uno sviluppatore è importante semplicemente completare un progetto nel minor tempo possibile. I microcontroller a 8 bit sono semplici da usare, flessibili e non lasciano a piedi. Difficile ignorare queste caratteristiche.

Informazioni su questo autore

Image of Bill Giovino

Bill Giovino è un ingegnere elettronico con un BSEE ottenuto a Syracuse University, ed è uno dei pochi ad essere passati con successo da progettista, a ingegnere delle applicazioni sul campo, al marketing tecnologico.

Da oltre 25 anni, Bill promuove le nuove tecnologie per un pubblico tecnico e non tecnico a nome di molte aziende, tra cui STMicroelectronics, Intel e Maxim Integrated. In STMicroelectronics, Bill ha contribuito a guidare i primi successi dell'azienda nel settore dei microcontroller. Con Infineon, Bill ha orchestrato i primi successi di progettazione di microcontroller dell'azienda nel settore automotive statunitense. In qualità di consulente di marketing per la sua società CPU Technologies, Bill ha aiutato molte aziende a trasformare prodotti di secondo grado in storie di successo.

Bill è stato uno dei primi ad adottare l'Internet delle cose, compresa l'integrazione del primo stack TCP/IP completo su un microcontroller. Bill è fedele al motto "Le vendite guidate dall'educazione" e tiene molto alla crescente importanza di comunicazioni chiare e ben scritte nella promozione di prodotti online. È moderatore del famoso gruppo Sales & Marketing di LinkedIn Semiconductor e parla correntemente di B2E.

More posts by Bill Giovino
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum