| "Descrizione" by RS232 (2002 pt) | 2026-Jan-29 17:26 |
MCU - Microcontroller
Definizione
Un MICROCONTROLLER (spesso abbreviato MCU) è un sistema completo su singolo chip che integra: CPU, memoria non volatile (per firmware), memoria volatile (per dati temporanei) e numerose periferiche di INPUT/OUTPUT. A differenza di una classica CPU o di un MICROPROCESSORE (spesso abbreviato MPU), che richiedono tipicamente memorie e periferiche esterne per costruire un sistema funzionante, un MICROCONTROLLER nasce per essere “stand-alone” e controllare direttamente sensori, attuatori e interfacce, con costi, consumi e ingombri ridotti.

Concetto chiave: “computer in miniatura”
Un MICROCONTROLLER racchiude in un unico die ciò che, in un sistema basato su MPU, è distribuito su più componenti:
CPU: esegue istruzioni e gestisce interrupt e flussi di controllo.
Memoria permanente (non volatile): tipicamente FLASH o ROM, contiene il firmware.
Memoria volatile: tipicamente RAM, contiene variabili, stack e buffer runtime.
INPUT/OUTPUT: linee GPIO e periferiche integrate (timer, seriali, conversioni analogiche, ecc.).
Questo rende la MCU ideale per compiti di controllo, automazione e acquisizione.
Architettura interna tipica
All’interno di una MCU trovi quasi sempre:
Clock e reset: oscillatore interno/esterno, PLL (su molte famiglie), circuiti di reset e watchdog.
Bus interni: collegano CPU, memorie e periferiche (spesso con priorità e arbitraggi).
Controller di interrupt: gestione eventi asincroni (timer, pin, seriale, ADC, ecc.).
Periferiche digitali: TIMER, PWM, contatori, capture/compare.
Periferiche di comunicazione: UART, SPI, I2C, talvolta CAN, USB, ETHERNET (dipende dalla classe).
Periferiche analogiche (se presenti): ADC, DAC, comparatori, riferimenti interni.
Gestione energia: sleep/deep sleep, clock gating, domini di alimentazione, brown-out detector.
Memorie: permanente vs volatile
Memoria non volatile (FLASH/ROM): conserva il programma anche a dispositivo spento. È la “memoria permanente” dove risiede il firmware.
Memoria volatile (RAM): perde i dati a dispositivo spento. Serve per variabili, stack, buffer di comunicazione e dati temporanei.
Altre memorie possibili: EEPROM (o emulazione EEPROM in FLASH) per parametri che devono persistere ma essere riscritti saltuariamente (calibrazioni, ID, configurazioni).
INPUT/OUTPUT: cosa significa davvero
I canali di INPUT/OUTPUT non sono solo “pin che leggono o scrivono 0/1”. In una MCU moderna, la maggior parte dei pin è multiplexata: lo stesso pin può diventare GPIO oppure linea di una periferica (es. TX/RX di UART, MOSI/MISO/SCK di SPI, ingresso ADC, uscita PWM). Questo permette flessibilità ma richiede configurazione accurata dei registri di porta e delle funzioni alternate.
Perché una MCU è diversa da CPU/MPU “classica”
Una MCU è orientata al controllo in tempo reale, spesso con interrupt frequenti e periferiche strettamente integrate.
Una MPU è orientata a prestazioni generali e sistemi complessi (tipicamente con RAM esterna, memoria di massa, interfacce ad alta velocità, e spesso un OS completo).
La MCU tende a usare firmware “bare metal” o RTOS leggeri; la MPU tende a usare sistemi operativi più pesanti (Linux-like), quando serve.
Schizzo dei collegamenti più importanti
┌──────────────────────────────────┐ │ MICROCONTROLLER (MCU) │ │ │ │ ┌─────────┐ ┌──────────────┐ │ Alimentazione ───► │ Clock/ │ │ CPU Core │ │ Reset/WDG ───► │ Reset │ │ + Interrupt │ │ │ └─────────┘ └──────┬───────┘ │ │ │ │ │ ┌──────────────┐ │ │ │ │ FLASH / ROM │◄────┘ │ │ └──────────────┘ │ │ ┌──────────────┐ │ │ │ RAM │◄────────────────┘ │ └──────────────┘ │ │ Periferiche: │ GPIO ──► sensori/attuatori digitali │ TIMER/PWM ──► motori, LED, power control │ UART/SPI/I2C ──► moduli, sensori, display │ ADC/DAC ──► segnali analogici (se presenti) └──────────────────────────────────┘
Vantaggi tipici
Integrazione: meno componenti esterni, schema più semplice.
Consumi ridotti: modalità sleep e periferiche ottimizzate per low-power.
Costo e ingombro: BOM più corta e PCB più semplice.
Affidabilità: meno connessioni esterne e meno punti di guasto.
Determinismo: gestione interrupt e timer adatti al controllo real-time.
Limiti tipici
Risorse limitate: RAM e FLASH spesso contenute rispetto a sistemi con MPU + RAM esterna.
Prestazioni: CPU spesso meno potente di una MPU dedicata (dipende dalla classe).
Vincoli di periferiche: numero di canali e velocità fissati dal chip scelto.
Aggiornamenti e debug: richiedono toolchain e interfacce (SWD/JTAG) coerenti con la famiglia.
Tabella 1 – Blocchi tipici in un MICROCONTROLLER
| Blocco | Ruolo |
|---|---|
| CPU | Esecuzione istruzioni, gestione interrupt, controllo del sistema |
| FLASH/ROM | Firmware permanente |
| RAM | Dati runtime, stack, buffer |
| GPIO | INPUT/OUTPUT digitali generici |
| TIMER/PWM | Timing, conteggio, generazione impulsi, controllo motori/LED |
| UART/SPI/I2C | Comunicazioni seriali con periferiche esterne |
| ADC/DAC | Interfacce analogiche (se presenti) |
| Watchdog | Recupero da blocchi software e supervisione |
| Power management | Sleep, clock gating, riduzione consumi |
Tabella 2 – Confronto sintetico: MICROCONTROLLER vs MICROPROCESSORE
| Aspetto | MICROCONTROLLER (MCU) | MICROPROCESSORE (MPU) |
|---|---|---|
| Integrazione | CPU + memorie + I/O nello stesso chip | CPU, spesso con memorie e I/O esterni |
| Memoria | FLASH/ROM e RAM interne (tipicamente) | RAM esterna frequente, storage esterno |
| Uso tipico | Controllo real-time, embedded, automazione | Sistemi complessi, GUI, networking “pesante”, OS completo |
| Consumi | Spesso molto bassi (sleep profondi) | In genere più elevati (dipende dalla classe) |
| Complessità HW | Più bassa | Più alta (bus esterni, DRAM, PHY, ecc.) |
| Complessità SW | Bare metal o RTOS leggero | Spesso OS completo (Linux-like) |
Esempi di applicazioni
Un MICROCONTROLLER è tipico in: elettrodomestici, termostati, sensori IoT, centraline di controllo, gestione motori, strumentazione, dispositivi medicali embedded, tastiere/telecomandi, sistemi automotive (a seconda dei requisiti), e in generale dove serve controllo affidabile con risorse contenute.
| Evaluate |