ADC e DAC - risoluzione, SNR, ENOB ed errori
In questa pagina 5
Un convertitore A/Ddispositivo che trasforma una tensione analogica in un codice binario (ADC) trasforma una tensione analogica in un codice binario; un convertitore D/A (DAC) fa l'operazione inversa. Nei µC e DSP per il controllo real-time l'ADC è sempre presente (Microcontrollori e DSP - definizioni e scelta del dispositivoUn microcontrollore (µC) è un microprocessore con memoria e periferiche (ADC, timer, PWM, porte seriali) sullo stesso chip, pensato per il controllo; un DSP è un processore ottimizzato per l'elaborazione numerica del segnale in tempo reale (moltiplicatore e istruzione MAC, accessi multipli alla memoria, indirizzamento circolare, DMA). Oggi le due famiglie si sovrappongono (DSC). La scelta del dispositivo si fa su costo, prestazioni, periferiche e tempo di sviluppo (time to market), non sulla sola frequenza di clock.Microcontrollori e DSP - definizioni e scelta del dispositivo →) e a valle di un S/H (Campionamento, aliasing e sample and holdCampionare vuol dire prendere i valori di $s(t)$ a istanti $kT_c$ ($T_c$ periodo, $f_c=1/T_c$). Teorema di Shannon: se lo spettro è nullo sopra $BW$, $s(t)$ si ricostruisce esattamente da campioni con $f_c\ge2BW$. Lo spettro campionato è la replica periodica (ogni $f_c$) dello spettro originale; se $f_c<2BW$ le repliche si sovrappongono: aliasing (una sinusoide a $f$ campionata a $1{,}25f$ appare a $0{,}25f$). Si previene con un filtro anti-aliasing sotto $f_c/2$ e col sovracampionamento. Il sample and holdcircuito che campiona il segnale e lo mantiene costante durante la conversione tiene il segnale costante durante la conversione.Campionamento, aliasing e sample and hold →). I parametri fondamentali sono: risoluzione (legata al numero di bit), velocità di conversione, accuratezza e consumo.
Risoluzione e quantizzazione
La limitata disponibilità di bit introduce un errore caratteristico, l'errore di quantizzazione. Con bit e fondo scalail massimo valore di ingresso convertibile, indicato con FSR (Full Scale Range) (Full Scale Range) il passo minimo ("1 LSBil passo minimo del convertitore: il valore di fondo scala diviso per 2 elevato a n") è Ogni configurazione di bit corrisponde a un intervallo di tensioni di ingresso largo 1 LSB; il massimo errore di quantizzazione è (per un ADC ideale con soli effetti di quantizzazionesostituzione di un valore continuo con uno dei livelli discreti disponibili). Nel profilo uniforme senza offseterrore costante per cui a ingresso nullo l'uscita non è zero usato negli esami le soglie sono a : il primo intervallo è largo , tutti gli altri 1 LSB. Quindi
Grafico interattivo: ADC ideale a 3 bit: tensione rappresentata (a gradini di 1/8 del fondo scala) contro tensione di ingresso (retta tratteggiata); il gradino si trova a metà del passo
Grafico interattivo: Errore di quantizzazione di un ADC a 3 bit: dente di sega tra -1/16 e +1/16 del fondo scala, cioè tra -1/2 LSB e +1/2 LSB
Esempio. , V: mV. Il codice corrisponde a V (a meno di mV). Un segnale V oscilla tra e V: i codici estremi sono e .
Sensore e fondo scala della grandezza. Se il sensore ha un coefficiente di trasduzionerapporto tra tensione di uscita del sensore e grandezza misurata [V/unità] e l'ADC ha , il fondo scala della grandezza fisica è (più eventuali offset): per V/bar e V, 5 bar.
SNR, bit efficaci
Si assimila l'errore di quantizzazione a un rumore incorrelato con il segnale e distribuito uniformemente in : la sua potenza (varianza) è Il rapporto segnale-rumore (SNRSignal to Noise Ratio: rapporto tra potenza del segnale e potenza del rumore) è il rapporto tra la massima potenza di un segnale sinusoidale (ampiezza , potenza ) e la potenza del rumore di quantizzazione: Un bit in più aggiunge 6 dB: conviene usare tutti i bit a disposizione (adattare il segnale a ). Tabella ( in % di ):
| 8 | 10 | 12 | 14 | 16 | |
|---|---|---|---|---|---|
| [% FSR] | 0,39 | 0,098 | 0,024 | 0,006 | 0,0015 |
| teorico [dB] | 49,9 | 62,0 | 74,0 | 86,0 | 98,1 |
Nella realtà il SNR misurato () è inferiore: si qualifica il convertitore col numero di bit efficaci (ENOBEffective Number Of Bits: numero di bit efficaci, ricavato dal SNR misurato): Esempi: dB → ; dB → bit (un ADC a 12 bit che si comporta come uno a 11).
Errori di un convertitore reale
Oltre alla quantizzazione, l'accuratezza assolutamassima differenza tra valore convertito e valore teoricamente atteso (massima differenza tra valore convertito e valore teorico) è limitata da:
- errore di offset: il codice a ingresso nullo non è 0 (per esempio codici a ): si corregge sottraendo l'offset da ogni lettura;
- errore di guadagno: la pendenza media della caratteristica non è quella ideale;
- non linearità: i centri degli intervalli non stanno su una retta. INL (integrale): distanza tra i centri del gradino reale e di quello teorico; DNL (differenziale): differenza tra la larghezza dell'-esimo gradino e 1 LSB. Si valutano rispetto alla retta tra e oppure rispetto alla migliore retta interpolante. Se i DNLDifferential NonLinearity: differenza tra la larghezza di un gradino e 1 LSB sommati superano 1 LSB si può avere un missing codecodice che il convertitore non produce mai, a causa di una non linearità differenziale troppo grande (un codice che non esce mai); nel DAC lo stesso difetto si chiama non monotonicità (pericoloso nei controlli).
- distorsione armonica: qualunque convertitore genera armoniche in risposta a una sinusoide, per le sue non linearità; tutti gli errori variano con la temperatura.
Accuratezza e precisione. La precisione (ripetibilità del risultato) non implica una buona accuratezza; un'alta accuratezza implica una alta precisione. I due termini si confondono spesso.
Esempio di correzione dell'offset. ADC a 12 bit, V. Letture , , → V, V, V. Con un ingresso nullo si legge ( mV): letture corrette , , , cioè V, V, V.
DAC
Il DAC converte un codice di bit in una tensione (ancora ), con gli stessi errori (offset, guadagno, INLIntegral NonLinearity: scostamento dei livelli reali dalla retta ideale, DNL). Per un'onda ricostruita da campioni la frequenza massima dipende dal numero di campioni per periodo: con di aggiornamento e punti per periodo, . Le architetture sono nella nota Architetture di ADC e DACADC flash: $2^n-1$ comparatori in parallelo, il più veloce (GS/s) ma costoso, $n<10$. A gradinata/a rampa: contatore + DAC (o rampa) + comparatore, $T_{conv}\le2^n$ cicli di clock (lentissimo). SAR: ricerca binaria con DAC e comparatore, $T_{conv}=(n+1)$ cicli: il più usato nei µC. Sigma-delta: ADC a 1 bit + DAC a 1 bit in retroazione e filtro digitale, sovracampionamento (molti bit, banda ridotta). Multistadio/pipeline: più ADC a pochi bit in serie; la pipeline triplica (con 3 stadi) la frequenza di conversione. DAC: a resistenze pesate, a traliccio R-2R ($V_o=-V_{ref},C/2^n$, corrente costante), a voltage scaling (monotono), seriale.Architetture di ADC e DAC →. Un fenomeno tipico dei DAC è il glitchimpulso indesiderato che compare in uscita al DAC durante le commutazioni: le commutazioni degli interruttori non sono perfettamente sincrone e generano transitori; si risolve con un S/H in uscita.
Errori comuni
- Usare al posto di per il .
- Dimenticare che l'errore massimo è mezzo LSB (non uno).
- Applicare a segnali non a fondo scala (il SNR scende: con ampiezza metà, dB).
- Confondere numero di bit nominali e efficaci.
- Non sottrarre l'offset prima di convertire in volt.
Versione ripasso
- LSB ; ; errore (profilo LSB).
- Esempio: 12 bit, 3,3 V: mV; V; : codici -. Grandezza a fondo scala: .
- SNR: rumore ; dB (+6 dB per bit); (64 dB → 10,34 bit).
- Errori: offset (si sottrae), guadagno, INL, DNL, missing code (DAC: non monotonicità); accuratezza ⇒ precisione.
- DAC: ; glitch risolto con S/H (Architetture di ADC e DACADC flash: $2^n-1$ comparatori in parallelo, il più veloce (GS/s) ma costoso, $n<10$. A gradinata/a rampa: contatore + DAC (o rampa) + comparatore, $T_{conv}\le2^n$ cicli di clock (lentissimo). SAR: ricerca binaria con DAC e comparatore, $T_{conv}=(n+1)$ cicli: il più usato nei µC. Sigma-delta: ADC a 1 bit + DAC a 1 bit in retroazione e filtro digitale, sovracampionamento (molti bit, banda ridotta). Multistadio/pipeline: più ADC a pochi bit in serie; la pipeline triplica (con 3 stadi) la frequenza di conversione. DAC: a resistenze pesate, a traliccio R-2R ($V_o=-V_{ref},C/2^n$, corrente costante), a voltage scaling (monotono), seriale.Architetture di ADC e DAC →).
- Errori: al posto di ; errore = LSB; SNR a segnale non pieno (Campionamento, aliasing e sample and holdCampionare vuol dire prendere i valori di $s(t)$ a istanti $kT_c$ ($T_c$ periodo, $f_c=1/T_c$). Teorema di Shannon: se lo spettro è nullo sopra $BW$, $s(t)$ si ricostruisce esattamente da campioni con $f_c\ge2BW$. Lo spettro campionato è la replica periodica (ogni $f_c$) dello spettro originale; se $f_c<2BW$ le repliche si sovrappongono: aliasing (una sinusoide a $f$ campionata a $1{,}25f$ appare a $0{,}25f$). Si previene con un filtro anti-aliasing sotto $f_c/2$ e col sovracampionamento. Il sample and holdcircuito che campiona il segnale e lo mantiene costante durante la conversione tiene il segnale costante durante la conversione.Campionamento, aliasing e sample and hold →).
Esercizi su questo argomento
- Esercizio 13 · convertitore A-D di tipo SAR, frequenza di Nyquist, ENOB e pipeline (temi d'esame gennaio 2026, luglio 2026 e gennaio 2023)
- Esercizio 14 · sensore e convertitore A-D, allineamento a 16 bit, offset e tempo di calcolo (temi d'esame gennaio 2022, gennaio 2025, febbraio 2025 e settembre 2026)
- Esercizio 15 · convertitore D-A, sinusoide numerica e DAC a traliccio R-2R (temi d'esame febbraio 2026 e esempio d'appello 2020-21)
- Esercizio 27 · comunicazione seriale asincrona e bus I2C, tempi di trasmissione e tolleranza di frequenza (temi d'esame febbraio 2023, luglio 2026 e settembre 2026)
- Esercizio 31 · sistema di controllo di un ascensore con microcontrollore a 8 bit (tema d'esame 18 luglio 2006)