Glossario dei sistemi embedded

86 parole che incontri quando inizi con i microcontrollori, ognuna spiegata in due o tre frasi semplici, con la lezione che ne parla.

A

ACK e NACK

Dopo ogni byte I2C chi riceve porta SDA a livello basso per confermarlo (ACK). Se dopo un indirizzo la linea resta alta (NACK), nessun dispositivo ha risposto a quell’indirizzo: indirizzo sbagliato, collegamento sbagliato o alimentazione assente.

Lezione: UART, I2C e SPI

ADC (convertitore analogico-digitale)

Una periferica che fotografa una tensione e trasforma ogni istantanea in un numero. Un ADC a 12 bit dà da 0 a 4095, quindi a 3,3 V ogni gradino vale circa 0,8 mV.

Lezione: ADC: leggere il mondo analogico

Aggiornamento OTA (over the air)

Installare un nuovo firmware via Wi-Fi, Bluetooth o un’altra radio. I progetti sicuri tengono due spazi per il firmware, così un aggiornamento fallito non può mai lasciare il dispositivo incapace di avviarsi.

Lezione: La strada verso senior

Analizzatore logico

Uno strumento che registra molti segnali digitali insieme e decodifica bus come I2C, SPI e UART in byte, così vedi cosa è stato davvero trasmesso.

Lezione: La strada verso senior

Arduino

Una piattaforma aperta di schede (come la Uno, con il chip ATmega328P), una semplice libreria C++ e un editor. Le sue funzioni, come digitalWrite() e analogRead(), oggi girano su molti chip, compresi ESP32 e RP2040.

Piedinatura Arduino Uno

B

Basso consumo e deep sleep

Le modalità di sospensione spengono quasi tutto il chip e lo risvegliano con un timer o un interrupt su un pin. L’MCU dorme quasi sempre: in deep sleep un ESP32 consuma microampere invece di decine di milliampere, ed è così che una batteria dura mesi o anni.

Lezione: PWM, macchine a stati e altro

Baud rate

La velocità di un collegamento UART in simboli al secondo, per esempio 9600 o 115200. I due lati devono usare la stessa; se non coincidono, nel monitor seriale compaiono caratteri senza senso.

Lezione: UART, I2C e SPI

Bootloader

Un piccolo programma che parte per primo dopo il reset. Può caricare un nuovo firmware (via USB, seriale o radio) e poi avvia il programma principale. Chip come ESP32, RP2040 e STM32 ne hanno uno integrato nella ROM.

Lezione: La strada verso senior

Breadboard

Una basetta di plastica con contatti a molla per montare circuiti senza saldare. I cinque fori di ogni fila corta sono collegati tra loro; le lunghe linee sui lati di solito portano alimentazione e massa.

Lezione: Basi di hardware per chi viene dal software

Brownout

Un calo della tensione di alimentazione troppo basso perché il chip funzioni in modo affidabile, spesso quando il Wi-Fi o un motore assorbono un picco di corrente. Il rilevatore di brownout riavvia il chip; di solito si risolve con un alimentatore più robusto o un condensatore vicino alla scheda.

Lezione: Basi di hardware per chi viene dal software

Bus CAN

Un bus a due fili molto robusto nato nelle auto e oggi diffuso nell’industria. Ogni messaggio ha un identificatore che ne stabilisce anche la priorità; ogni nodo ha bisogno di un chip transceiver come il TJA1050 o l’SN65HVD230.

Lezione: La strada verso senior

C

Cavetto jumper (Dupont)

Un filo corto con un pin o una presa a ogni estremità, per collegare una scheda a una breadboard o a un modulo. Un jumper allentato o rotto causa molti problemi di “sensore non trovato”.

Lezione: Basi di hardware per chi viene dal software

Chip select (CS)

Il filo dell’SPI che dice a un dispositivo “sto parlando con te”. Di solito è attivo basso: i dispositivi con CS a HIGH ignorano il bus.

Lezione: UART, I2C e SPI

Clock della periferica

Le periferiche partono spente per risparmiare energia. Prima di usare una porta o un bus devi accenderne il clock in un registro (RCC su un STM32); dimenticarlo è l’errore più comune dei principianti.

Lezione: GPIO: pin in ingresso e in uscita

Coda (queue)

Un oggetto dell’RTOS che passa dati in modo sicuro da un task (o da un interrupt) a un altro, in ordine. Più sicuro di una variabile globale condivisa.

Lezione: RTOS: tanti lavori su un solo chip

Cross-compilatore

Un compilatore che gira sul tuo computer ma produce codice per un processore diverso, come un ARM Cortex-M o il core Xtensa di un ESP32.

Lezione: Il quadro completo

D

DAC (convertitore digitale-analogico)

L’opposto di un ADC: trasforma un numero in una tensione su un pin. L’ESP32 originale ha due DAC a 8 bit; molti microcontrollori non ne hanno e usano al loro posto il PWM con un filtro.

Lezione: ADC: leggere il mondo analogico

Datasheet

Il documento del produttore di un chip o di un modulo: tensione di alimentazione, pin, interfaccia, registri, tempi e limiti. La prima pagina dà l’essenziale; saper leggere i datasheet è una competenza base dell’embedded.

Lezione: Basi di hardware per chi viene dal software · Lezione: ADC: leggere il mondo analogico

Debounce (antirimbalzo)

I pulsanti veri rimbalzano: per qualche millisecondo il contatto oscilla tra 0 e 1. Il debounce filtra questo effetto, nel software (aspettando che il livello sia stabile) o con un piccolo condensatore, così una pressione conta una volta sola.

Lezione: GPIO: pin in ingresso e in uscita

Debugger

Una sonda hardware più un software che mettono in pausa il chip per guardare variabili e registri, riga per riga. Molte schede ne hanno uno integrato, come l’ST-LINK sulle schede NUCLEO.

Lezione: Il quadro completo

DMA (accesso diretto alla memoria)

Un blocco hardware che sposta dati (campioni dell’ADC, byte della UART, pixel dello schermo) tra periferiche e memoria in background mentre la CPU fa altro, e poi genera un interrupt quando ha finito.

Lezione: PWM, macchine a stati e altro

Duty cycle

La parte di ogni periodo PWM in cui il pin resta acceso. Il 25% su un pin a 3,3 V dà in media circa 0,8 V.

Lezione: PWM, macchine a stati e altro

E

Endianness (ordine dei byte)

L’ordine dei byte in un numero più grande di un byte. I chip ARM Cortex-M, ESP32 e AVR sono little-endian (prima il byte meno significativo), mentre molti sensori inviano prima quello più significativo, quindi spesso si combinano i byte come (alto << 8) | basso.

Lezione: Il C per l’embedded

ESP32

Una famiglia di microcontrollori Espressif con Wi-Fi e Bluetooth integrati, molto usata per i progetti connessi. I suoi pin sopportano al massimo 3,3 V.

Piedinatura ESP32 DevKit

esptool

Lo strumento a riga di comando di Espressif che parla con il bootloader in ROM dell’ESP32 via seriale: identifica il chip e legge, scrive e cancella la flash. BoardPilot lo usa per fare il backup e programmare le schede ESP32.

Piedinatura ESP32 DevKit

F

Firmware

Il programma che gira su un microcontrollore. È salvato nella memoria flash e parte ogni volta che il dispositivo si accende.

Lezione: Il quadro completo

Flashing (programmazione)

Scrivere un programma compilato nella memoria flash del microcontrollore, con un programmatore o un debugger (per esempio un ST-LINK) oppure tramite il bootloader del chip via USB o seriale.

Lezione: Il quadro completo

Frequenza di campionamento

Quante volte al secondo un ADC fa una lettura. Se campioni troppo lentamente, i cambiamenti veloci si perdono o sembrano un segnale più lento (aliasing).

Lezione: ADC: leggere il mondo analogico

G

GPIO

General-purpose input/output: un pin controllato dal tuo codice. Come uscita mette 3,3 V (5 V su schede come Arduino Uno) o 0 V sul filo; come ingresso legge se la tensione che arriva da fuori è alta o bassa.

Lezione: GPIO: pin in ingresso e in uscita

H

HAL (hardware abstraction layer)

Una libreria che nasconde i registri dietro chiamate di funzione come HAL_ADC_GetValue(). Più facile da leggere e da portare su un altro chip; l’accesso diretto ai registri è più piccolo e veloce.

Lezione: ADC: leggere il mondo analogico · Lezione: La strada verso senior

Hard fault

L’eccezione che un ARM Cortex-M genera quando qualcosa va storto in modo grave, come un puntatore sbagliato o uno stack overflow. Trovarne la causa dai registri salvati è una competenza chiave da senior.

Lezione: La strada verso senior

I

I2C

Un bus a due fili (SDA per i dati, SCL per il clock) in cui molti dispositivi condividono gli stessi fili e ognuno ha un indirizzo. Si usa per sensori e piccoli display. Entrambe le linee vogliono resistenze di pull-up.

Lezione: UART, I2C e SPI · Componenti I2C e i loro indirizzi

Indirizzo I2C

Un numero a 7 bit, scritto come 0x76, a cui risponde ogni dispositivo sul bus I2C. Molti moduli hanno un pin o un ponticello da saldare per scegliere tra due indirizzi, così due sensori uguali possono stare sullo stesso bus.

Lezione: UART, I2C e SPI

Ingresso flottante

Un ingresso non collegato a niente. Raccoglie disturbi e legge valori casuali. Una resistenza di pull-up o pull-down gli dà un livello definito.

Lezione: Basi di hardware per chi viene dal software · Lezione: GPIO: pin in ingresso e in uscita

Interrupt

Un segnale dall’hardware (un pin che cambia, un timer, un byte ricevuto) che mette in pausa il tuo codice, esegue una breve funzione di gestione e poi riprende esattamente da dove si era fermato. Per chi viene dal software: una callback su evento, attivata dall’hardware.

Lezione: Timer e interrupt

Inversione di priorità

Un task a bassa priorità tiene un mutex che serve a un task ad alta priorità, e nel frattempo continua a girare un task a priorità media. L’ereditarietà della priorità lo risolve alzando la priorità del task basso finché tiene il blocco.

Lezione: RTOS: tanti lavori su un solo chip

ISR (routine di servizio dell’interrupt)

La funzione che viene eseguita quando scatta un interrupt. Deve essere breve: azzera il flag dell’interrupt, imposta una variabile ed esce. Le variabili che condivide con il codice principale devono essere volatile.

Lezione: Timer e interrupt

J

JTAG e SWD

Interfacce di debug che il debugger usa per programmare il chip, fermarlo e leggerne la memoria. SWD è la versione a due fili di ARM (SWDIO e SWCLK), usata sui chip STM32, RP2040 e nRF52.

Lezione: Il quadro completo

L

Legge di Ohm

V = I × R: la tensione è uguale alla corrente per la resistenza. Conosci due valori su tre e ricavi il terzo, per esempio la resistenza che serve a un LED.

Lezione: Basi di hardware per chi viene dal software

Level shifter (traslatore di livello)

Un piccolo circuito o modulo che traduce i segnali tra logica a 5 V e a 3,3 V. Quelli bidirezionali, spesso fatti con transistor BSS138, funzionano con l’I2C.

Lezione: Basi di hardware per chi viene dal software · Modulo level shifter BSS138

Linker script

Un file che dice al linker dove si trovano la flash e la RAM e dove va ogni parte del programma. Si modifica quando si esce dalle impostazioni predefinite, per esempio per fare spazio a un bootloader.

Lezione: La strada verso senior

Livello logico (HIGH e LOW)

La tensione che vale 1 (HIGH) o 0 (LOW). Su una scheda a 3,3 V una tensione vicina a 3,3 V si legge HIGH e una vicina a 0 V si legge LOW; le schede a 5 V come Arduino Uno usano 5 V. Le tensioni intermedie non danno una lettura garantita.

Lezione: Basi di hardware per chi viene dal software

M

Macchina a stati

Un modo di progettare la logica di un dispositivo: il dispositivo è sempre in un solo stato (inattivo, riscaldamento, errore) e gli eventi lo spostano in un altro. In C di solito è un enum con uno switch.

Lezione: PWM, macchine a stati e altro

Mappa di memoria

L’elenco di quali indirizzi contengono la flash, la RAM e i registri di ogni periferica. Su un STM32F4, per esempio, la flash parte da 0x0800 0000, la RAM da 0x2000 0000 e le periferiche da 0x4000 0000.

Lezione: Che cos’è un microcontrollore?

Maschere di bit

Cambiare o controllare un solo bit senza toccare gli altri: REG |= (1 << n) lo porta a 1, REG &= ~(1 << n) lo porta a 0, REG ^= (1 << n) lo inverte e REG & (1 << n) lo controlla.

Lezione: Il C per l’embedded

MCU e MPU (microprocessore)

Un microprocessore (MPU) è quasi solo una CPU: la memoria e molte periferiche sono chip separati e di solito esegue un sistema operativo completo come Linux, come un Raspberry Pi 4. Un microcontrollore ha tutto su un chip, ha kilobyte di memoria e si avvia in microsecondi.

Lezione: Che cos’è un microcontrollore?

Memoria flash

Memoria che conserva i dati anche senza alimentazione. In un microcontrollore contiene il programma e a volte le impostazioni salvate. Scrivere un programma al suo interno si chiama flashing.

Lezione: Che cos’è un microcontrollore? · Lezione: Il quadro completo

Microcontrollore (MCU)

Un solo chip che contiene un piccolo computer intero: una CPU, memoria flash per il programma, RAM per le variabili e periferiche come GPIO, timer, ADC, UART, I2C e SPI.

Lezione: Che cos’è un microcontrollore?

Multimetro

Uno strumento portatile che misura tensione, corrente, resistenza e continuità. È il primo attrezzo per verificare che un’alimentazione sia davvero 3,3 V o che due punti siano davvero collegati.

Lezione: Basi di hardware per chi viene dal software

Mutex

Un blocco che protegge una risorsa condivisa, come la UART, così due task non la usano nello stesso momento. I mutex con ereditarietà della priorità evitano l’inversione di priorità.

Lezione: RTOS: tanti lavori su un solo chip

O

Open-drain (open-collector)

Un’uscita che può solo portare una linea a massa o lasciarla libera. Una resistenza di pull-up la riporta a HIGH. L’I2C funziona così, per questo più dispositivi possono condividere un filo senza conflitti.

Lezione: UART, I2C e SPI

Oscilloscopio

Uno strumento che disegna una tensione nel tempo. Mostra quello che un analizzatore logico non vede: fronti lenti, rumore, oscillazioni e cali dell’alimentazione.

Lezione: La strada verso senior

P

Partitore di tensione

Due resistenze in serie che dividono una tensione nel rapporto dei loro valori: Vout = Vin × R2 / (R1 + R2). Con R1 = 1 kΩ e R2 = 2 kΩ, 5 V diventano circa 3,3 V, sicuri per un pin a 3,3 V.

Lezione: Basi di hardware per chi viene dal software

Periferica

Un blocco hardware dentro il microcontrollore che fa un lavoro da solo: GPIO, timer, ADC, UART, I2C, SPI, DMA. Lo controlli scrivendo nei suoi registri.

Lezione: Che cos’è un microcontrollore? · Lezione: UART, I2C e SPI

Piedinatura (pinout)

La mappa di cosa fa ogni pin di una scheda o di un chip: alimentazione, massa, numeri GPIO, pin dei bus e pin speciali da evitare.

Lezione: GPIO: pin in ingresso e in uscita · Piedinature di 13 schede

Pin di strapping

Un pin che il chip legge al reset per decidere come avviarsi. Sull’ESP32 sono i GPIO 0, 2, 5, 12 e 15; il GPIO 12 a HIGH al reset seleziona la tensione sbagliata per la flash e la scheda può non avviarsi.

Piedinatura ESP32: i pin da evitare

Polling

Controllare un registro o un pin di continuo in un ciclo per vedere se è successo qualcosa. È semplice, ma tiene occupata la CPU; l’alternativa sono gli interrupt.

Lezione: Timer e interrupt

Prescaler e auto-reload (PSC, ARR)

Il prescaler rallenta il clock che alimenta un timer; il valore di auto-reload è il punto in cui il contatore riparte da 0. Eventi al secondo = clock / (PSC + 1) / (ARR + 1): 16 MHz / 16000 / 1000 = 1.

Lezione: Timer e interrupt

PWM (modulazione a larghezza di impulso)

Accendere e spegnere un pin molto velocemente scegliendo per quanto tempo resta acceso. Un LED o un motore sentono la media, così il PWM regola la luminosità dei LED e la velocità dei motori. A commutare è un timer, non la CPU.

Lezione: PWM, macchine a stati e altro

R

RAM (SRAM)

Memoria di lavoro veloce per le variabili e lo stack. Perde il contenuto quando manca l’alimentazione. I microcontrollori ne hanno kilobyte, non gigabyte.

Lezione: Che cos’è un microcontrollore? · Lezione: Il quadro completo

Raspberry Pi Pico

Una piccola scheda a microcontrollore di Raspberry Pi con il chip RP2040 (la Pico 2 ha l’RP2350). A differenza delle altre schede Raspberry Pi non esegue Linux. Si programma in C/C++ con il Pico SDK, in MicroPython o con Arduino.

Piedinatura Raspberry Pi Pico

Registro

Un indirizzo di memoria che controlla l’hardware o ne riporta lo stato. Ogni bit accende una funzione o mostra un flag, come “questo pin è un’uscita” o “il dato è pronto”.

Lezione: Il C per l’embedded · Lezione: Che cos’è un microcontrollore?

Resistenza di limitazione

La resistenza in serie a un LED. Prende la tensione che il LED non fa cadere, così la corrente resta sicura: R = (alimentazione − tensione del LED) / corrente. Per un LED rosso a 3,3 V e 5 mA: (3,3 − 2,0) V / 0,005 A = 260 Ω, quindi si compra una da 270 Ω.

Lezione: Basi di hardware per chi viene dal software

Resistenza di pull-down

Una resistenza tra un pin e la massa, così il pin legge LOW quando niente lo pilota. L’opposto di una pull-up.

Lezione: Basi di hardware per chi viene dal software

Resistenza di pull-up

Una resistenza tra un pin e la tensione di alimentazione, così il pin legge HIGH quando niente lo pilota. Un pulsante o un dispositivo open-drain lo porta poi a LOW. Quasi tutti i chip hanno pull-up interne deboli (INPUT_PULLUP); l’I2C ne vuole di esterne.

Lezione: Basi di hardware per chi viene dal software · Lezione: GPIO: pin in ingresso e in uscita

Risoluzione dell’ADC

In quanti gradini l’ADC divide il suo intervallo: 10 bit danno 1024 gradini, 12 bit ne danno 4096. Più bit significa gradini più fini, non per forza una lettura più precisa: contano anche il rumore e la tensione di riferimento.

Lezione: ADC: leggere il mondo analogico

RTOS (sistema operativo real-time)

Un piccolo sistema operativo per microcontrollori, come FreeRTOS o Zephyr, che esegue più task in base alla priorità. Real-time non significa veloce ma prevedibile: il task importante viene sempre eseguito entro un tempo noto.

Lezione: RTOS: tanti lavori su un solo chip

S

Scheduler

La parte di un RTOS che esegue il task più importante tra quelli pronti, anche se deve metterne in pausa un altro. È guidato da un interrupt del timer (il tick).

Lezione: RTOS: tanti lavori su un solo chip

Schema elettrico

Un disegno di come sono collegati i componenti, non di dove si trovano. I fili che si incontrano con un punto sono collegati; le linee che si incrociano senza punto no. Le etichette con lo stesso nome (3V3, GND, SDA) sono collegate anche senza una linea.

Lezione: Basi di hardware per chi viene dal software

SDA e SCL

Le due linee dell’I2C: SDA porta i dati, SCL il clock del controller. Invertirle è uno degli errori di collegamento più comuni: a quel punto sul bus non risponde nessuno.

Lezione: UART, I2C e SPI

SDK

Software development kit: librerie, header, esempi e strumenti del produttore per un chip, come ESP-IDF per l’ESP32 o il Pico SDK per l’RP2040.

Lezione: Il quadro completo

Semaforo

Un segnale dell’RTOS con un contatore: un task o un interrupt lo rilascia, un altro task lo aspetta. Si usa per dire “il dato è pronto” o per limitare quanti task usano un gruppo di risorse.

Lezione: RTOS: tanti lavori su un solo chip

Sistema embedded

Un piccolo computer integrato in un dispositivo per fare un solo lavoro, come un termostato, una lavatrice o i freni di un’auto. Il suo cuore di solito è un microcontrollore.

Lezione: Che cos’è un microcontrollore? · Lezione: Il quadro completo

SPI

Un bus veloce con un clock condiviso (SCK), due linee dati (MOSI dal controller, MISO verso il controller) e un filo di chip select per ogni dispositivo. Si usa per schede SD, display e memorie flash.

Lezione: UART, I2C e SPI

Stack

Un’area della RAM dove le chiamate di funzione tengono le variabili locali e gli indirizzi di ritorno. Cresce e si riduce a ogni chiamata; se cresce troppo sovrascrive altri dati (stack overflow).

Lezione: Che cos’è un microcontrollore?

STM32

Una grande famiglia di microcontrollori ARM Cortex-M di STMicroelectronics, molto usata nell’industria. Le schede NUCLEO e Black Pill sono un modo economico per iniziare; gli esempi con i registri di queste lezioni sono scritti per un STM32.

Lezione: GPIO: pin in ingresso e in uscita · Lezione: Timer e interrupt · Piedinatura NUCLEO-F401RE

T

Tabella dei vettori

Una tabella all’inizio della flash che dice alla CPU dove inizia lo stack, dove si trova il codice di avvio e quale funzione gestisce ogni interrupt.

Lezione: Che cos’è un microcontrollore? · Lezione: Timer e interrupt

Task

In un RTOS, una funzione con il proprio ciclo infinito e il proprio stack, come un thread. È lo scheduler a decidere quale task gira.

Lezione: RTOS: tanti lavori su un solo chip

Timer

Un contatore hardware che conta i colpi di clock da solo mentre la CPU fa altro. Misura il tempo, genera un interrupt a intervalli esatti o produce il PWM.

Lezione: Timer e interrupt

Tipi a larghezza fissa (uint8_t, uint32_t)

Tipi C di <stdint.h> con la dimensione nel nome. Il codice embedded li usa perché un semplice int cambia dimensione da chip a chip, mentre un registro ha una dimensione esatta.

Lezione: Il C per l’embedded

Toolchain

L’insieme di strumenti che trasforma il tuo codice in un file firmware: compilatore, assembler, linker e librerie per il tuo chip, per esempio arm-none-eabi-gcc per STM32.

Lezione: Il quadro completo

U

UART (porta seriale)

Comunicazione seriale tra due dispositivi: il TX di ognuno va all’RX dell’altro e non c’è un clock comune, quindi entrambi devono usare la stessa velocità. Si usa per i messaggi di debug verso il computer, i GPS e molti moduli radio.

Lezione: UART, I2C e SPI

UF2

Un formato di file firmware per programmare trascinando: la scheda compare come chiavetta USB e ci copi sopra il file .uf2. Il Raspberry Pi Pico lo fa se tieni premuto BOOTSEL mentre lo colleghi.

Piedinatura Raspberry Pi Pico

V

Valori massimi assoluti

Limiti del datasheet da non superare mai, nemmeno per un istante, pena il danneggiamento del chip. Non sono condizioni di lavoro: l’uso normale deve restare nelle condizioni operative consigliate.

Lezione: Basi di hardware per chi viene dal software

volatile

Una parola chiave del C che dice al compilatore di rileggere il valore dalla memoria ogni volta, perché l’hardware può cambiarlo a sua insaputa. Obbligatoria per i registri e per le variabili condivise con gli interrupt; un volatile mancante spesso rompe solo le build ottimizzate.

Lezione: Il C per l’embedded · Lezione: Timer e interrupt

W

Watchdog

Un timer che riavvia il chip se il codice smette di “dargli da mangiare” in tempo. Un dispositivo bloccato si riprende da solo.

Lezione: PWM, macchine a stati e altro

Nell’app le lezioni prendono vita

Nell’app le lezioni hanno demo interattive ed esercitazioni pratiche verificate sulla tua scheda. Queste pagine sono la versione da leggere: le demo sono descritte a parole e le esercitazioni richiedono l’app.

Scarica BoardPilot Prova le lezioni nel browser

← Tutte le lezioni