Esercizio 14sensore 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)
In questa pagina 5
Testo (temi d'esame gennaio 2022 problema P2.1; gennaio 2025 problema P1; febbraio 2025 problema P5; settembre 2026 problema P4).
(i) Il convertitore A/D di un µC produce dati a 12 bit in formato frazionario senza segno rispetto a V. Un sensore misura la temperatura di un fluido con [V], V/°C, °C. Determinare: (a) quando all'ingresso ci sono V; (b) il valore binario nel registro ADDR; (c) il valore esadecimale nel registro della CPU dopo l'allineamento a 16 bit in normalizzazione frazionaria pura (Q16); (d) il valore in °C del fondo scala; (e) la durata della conversione se il SAR lavora a 1 MHz.
(ii) ADC a 10 bit con V, formato frazionario senza segno. Con V in ingresso: (a) il valore binario in ADDR; (b) il valore esadecimale del registro CPU allineato a 16 bit (Q16). Il sensore è un trasduttore di pressione con coefficiente V/bar: (c) il valore effettivo della pressione; (d) il fondo scala in bar; (e) la durata della conversione (SAR a 4 MHz); (f) la durata massima per un'eventuale elaborazione dello stesso dato con frequenza di campionamento 40 kHz.
(iii) ADC a 12 bit con V. Letture , , : (a) a quali tensioni corrispondono; con ingresso 0 V si legge : (b) a quale tensione corrisponde; (c) le letture corrette dall'offset.
(iv) Un ADC a 12 bit ( V) acquisisce , , : tensioni all'ingresso. Il segnale proviene da un sensore di temperatura con fondo scala 5 V e costante di trasduzione °C/mV; l'adattamento fa coincidere i fondoscala (lettura = fondo scala di temperatura): fondo scala di temperatura e temperatura per la lettura .
Teoria usata: ADC e DAC - risoluzione, SNR, ENOB ed erroriUn convertitore a $n$ bit con fondo scala $FSR$ ha risoluzione $LSB=FSR/2^n$; il codice vale $C=\mathrm{round}(V/LSB)$ e la tensione corrispondente è $V=C\cdot LSB$ con incertezza $\pm\frac12LSB$ (errore di quantizzazione). Con un modello a rumore uniforme di potenza $LSB^2/12$ il SNR di una sinusoide a fondo scala è $6{,}02,n+1{,}76$ dB; dal SNR misurato si ricava il numero di bit efficaci $ENOB=\frac{SNR-1{,}76}{6{,}02}$. Gli errori reali (offset, guadagno, INL, DNL, missing code) abbassano l'accuratezza. Accuratezza ≠ precisione: alta accuratezza implica alta precisione, non viceversa.ADC e DAC - risoluzione, SNR, ENOB ed errori →, Quantizzazione, fattori di scala e cicli limiteUn algoritmo di filtro o regolatore pensato per un processore ideale va adattato alla realtà: temporizzazionedistribuzione nel tempo delle operazioni di un algoritmo (l'algoritmo nella ISR dell'ADC, durata minore di $T_c$), acquisizione (condizionamento del segnale per sfruttare tutto il fondo scala dell'ADC), fattori di scala (normalizzazione intera o 1.15; evitare overflow), quantizzazione di ingresso, uscita, coefficienti e prodotti (sposta i poli, genera errori a regime e cicli limite). Una frequenza di campionamento troppo alta rende più critica la quantizzazione dei coefficienti: va scelta coerente con la lunghezza di parola.Quantizzazione, fattori di scala e cicli limite →, 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 →.
(i) Sensore di temperatura
(a) .
(b) .
(c) Il dato a 12 bit allineato a sinistra su 16 bit (normalizzazione frazionaria pura 0.16 U): . I 4 bit meno significativi sono nulli: la risoluzione numerica è quella dell'ADC (1 LSB del fondo scala).
(d) Il fondo scala della conversione corrisponde a V: .
(e) SAR a 12 bit: cicli a 1 MHz: .
(ii) Sensore di pressione
(a) (10 bit). (b) Allineamento a sinistra su 16 bit: . (c) . (d) bar. (e) SAR a 10 bit a 4 MHz: . (f) Il periodo di campionamento è µs: il tempo che resta per elaborare ogni dato dopo la conversione è (l'elaborazione, nella ISR di fine conversione, deve concludersi prima del campione successivo: Quantizzazione, fattori di scala e cicli limiteUn algoritmo di filtro o regolatore pensato per un processore ideale va adattato alla realtà: temporizzazionedistribuzione nel tempo delle operazioni di un algoritmo (l'algoritmo nella ISR dell'ADC, durata minore di $T_c$), acquisizione (condizionamento del segnale per sfruttare tutto il fondo scala dell'ADC), fattori di scala (normalizzazione intera o 1.15; evitare overflow), quantizzazione di ingresso, uscita, coefficienti e prodotti (sposta i poli, genera errori a regime e cicli limite). Una frequenza di campionamento troppo alta rende più critica la quantizzazione dei coefficienti: va scelta coerente con la lunghezza di parola.Quantizzazione, fattori di scala e cicli limite →).
(iii) Offset
(a) : V; V; V. (b) L'offset è codici . (c) Si sottrae l'offset da ogni lettura: ( V); ( V); ( V).
(iv) Temperatura da un sensore
Tensioni: V; V; V. Il sensore ha fondo scala 5 V e C/mV C/V: (l'adattamento fa sì che 5 V all'uscita del sensore diventino 3,3 V all'ingresso dell'ADC, codice ). La lettura vale (con si ha : la differenza è dell'ordine di un LSB).
Errori comuni
- Usare per il LSB: il passo è .
- Allineare a destra invece che a sinistra (il testo dice "frazionaria pura Q16": MSB sull'MSB, quindi shift a sinistra di ).
- Dimenticare nell'espressione del sensore () e nel fondo scala.
- Fare l'elaborazione senza sottrarre l'offset: l'errore si propaga all'uscita.
- Confondere la durata della conversione con il periodo di campionamento.
Versione ripasso
Testo. Sensore (temperatura, pressione) e ADC a 12 e 10 bit con FSR 3,3 V: temperatura da tensione, ADDR, allineamento Q16, fondo scala, durate, offset (gennaio 2022, gennaio e febbraio 2025, settembre 2026).
- (i) °C; ADDR ; Q16 ; FS °C; µs.
- (ii) ADDR ; Q16 ; bar; FS 5 bar; µs; tempo di calcolo µs.
- (iii) ; ; V; offset 40,3 mV; corrette
9CE,3BE,6F3. - (iv) ; ; V; FS 100 °C;
CF0°C. - Errori: LSB con ; allineamento a destra; dimenticata; offset non sottratto (ADC e DAC - risoluzione, SNR, ENOB ed erroriUn convertitore a $n$ bit con fondo scala $FSR$ ha risoluzione $LSB=FSR/2^n$; il codice vale $C=\mathrm{round}(V/LSB)$ e la tensione corrispondente è $V=C\cdot LSB$ con incertezza $\pm\frac12LSB$ (errore di quantizzazione). Con un modello a rumore uniforme di potenza $LSB^2/12$ il SNR di una sinusoide a fondo scala è $6{,}02,n+1{,}76$ dB; dal SNR misurato si ricava il numero di bit efficaci $ENOB=\frac{SNR-1{,}76}{6{,}02}$. Gli errori reali (offset, guadagno, INL, DNL, missing code) abbassano l'accuratezza. Accuratezza ≠ precisione: alta accuratezza implica alta precisione, non viceversa.ADC e DAC - risoluzione, SNR, ENOB ed errori →).