Hello, Guest!
 
 

 
 
  Objects Tiiips Categories
MCU - Microcontroller
"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

BloccoRuolo
CPUEsecuzione istruzioni, gestione interrupt, controllo del sistema
FLASH/ROMFirmware permanente
RAMDati runtime, stack, buffer
GPIOINPUT/OUTPUT digitali generici
TIMER/PWMTiming, conteggio, generazione impulsi, controllo motori/LED
UART/SPI/I2CComunicazioni seriali con periferiche esterne
ADC/DACInterfacce analogiche (se presenti)
WatchdogRecupero da blocchi software e supervisione
Power managementSleep, clock gating, riduzione consumi


Tabella 2 – Confronto sintetico: MICROCONTROLLER vs MICROPROCESSORE

AspettoMICROCONTROLLER (MCU)MICROPROCESSORE (MPU)
IntegrazioneCPU + memorie + I/O nello stesso chipCPU, spesso con memorie e I/O esterni
MemoriaFLASH/ROM e RAM interne (tipicamente)RAM esterna frequente, storage esterno
Uso tipicoControllo real-time, embedded, automazioneSistemi complessi, GUI, networking “pesante”, OS completo
ConsumiSpesso molto bassi (sleep profondi)In genere più elevati (dipende dalla classe)
Complessità HWPiù bassaPiù alta (bus esterni, DRAM, PHY, ecc.)
Complessità SWBare metal o RTOS leggeroSpesso 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