Salta al contenuto
Note per Studenti 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 15convertitore D-A, sinusoide numerica e DAC a traliccio R-2R (temi d'esame febbraio 2026 e esempio d'appello 2020-21)

Esame
In questa pagina 3

Testo (tema d'esame febbraio 2026 problema P4; esempio d'appello 2020-21 problema 3).

(i) Un convertitore D/A a 12 bit, FSR=3,3FSR=3{,}3 V, aggiornato a fc=50f_c=50 kHz. Determinare la tensione di uscita per i codici 0x318\texttt{0x318}, 0xA6F\texttt{0xA6F}, 0x800\texttt{0x800}, 0x001\texttt{0x001} e il valore di 1 LSB. Alla sequenza z(k)=0x600⋅sin⁡(ωkTc)+0x800z(k)=\texttt{0x600}\cdot\sin(\omega kT_c)+\texttt{0x800}, con ω=2πf\omega=2\pi f, indicare: i valori di picco e di valle in volt; la frequenza massima fmaxf_{max} del segnale se si vogliono 200 campioni per periodo; la massima variazione tra due campioni successivi (espressa in LSB) a f=fmaxf=f_{max}.

(ii) Si consideri un DAC a traliccio R-2R con nn bit e resistenza di retroazione RR (vedi schema nella teoria). Ricavare la relazione ingresso-uscita in funzione dello stato logico dei deviatori e dire se la corrente assorbita dal generatore VrefV_{ref} dipende dallo stato dei deviatori. Calcolare per n=8n=8, Vref=5V_{ref}=5 V il valore di VoV_o per il codice 0xA5\texttt{0xA5} e il valore di 1 LSB.


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 →, 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) DAC a 12 bit

LSB=FSR212=3,34096=0,806 mVLSB=\frac{FSR}{2^{12}}=\frac{3{,}3}{4096}=\mathbf{0{,}806\ mV} e VDAC=FSR⋅C4096V_{DAC}=FSR\cdot\frac{C}{4096}:

  • 0x318=792→792⋅0,806 mV=0,638 V\texttt{0x318}=792\to792\cdot0{,}806\ \text{mV}=\mathbf{0{,}638\ V};
  • 0xA6F=2671→2,152 V\texttt{0xA6F}=2671\to\mathbf{2{,}152\ V};
  • 0x800=2048→1,65 V\texttt{0x800}=2048\to\mathbf{1{,}65\ V} (metà del fondo scala: è il punto centrale del campo);
  • 0x001=1→0,806 mV\texttt{0x001}=1\to\mathbf{0{,}806\ mV} (un solo LSB).

Sinusoide. z(k)=0x600sin⁡(ωkTc)+0x800z(k)=\texttt{0x600}\sin(\omega kT_c)+\texttt{0x800} con 0x600=1536\texttt{0x600}=1536 e 0x800=2048\texttt{0x800}=2048:

  • valore di picco: 0x800+0x600=0xE00=3584→3584⋅0,806 mV=2,8875 V\texttt{0x800}+\texttt{0x600}=\texttt{0xE00}=3584\to3584\cdot0{,}806\ \text{mV}=\mathbf{2{,}8875\ V};
  • valore di valle: 0x800−0x600=0x200=512→0,4125 V\texttt{0x800}-\texttt{0x600}=\texttt{0x200}=512\to\mathbf{0{,}4125\ V} (oscillazione di 1,23751{,}2375 V attorno a 1,651{,}65 V: ampiezza 15361536 LSB);
  • frequenza massima per 200 campioni per periodo: 1fmax=200 Tc⇒fmax=fc200=50 kHz200=250 Hz\frac1{f_{max}}=200\,T_c\Rightarrow f_{max}=\frac{f_c}{200}=\frac{50\text{ kHz}}{200}=\mathbf{250\ Hz};
  • massima variazione tra due campioni successivi (pendenza massima per il passo TcT_c): Δzmax=1536⋅ωTc=1536⋅2π⋅ffc=1536⋅2π200=48,25 LSB\Delta z_{max}=1536\cdot\omega T_c=1536\cdot2\pi\cdot\frac{f}{f_c}=1536\cdot\frac{2\pi}{200}=48{,}25\ \text{LSB} cioè 0,03890{,}0389 V (≈49\approx49 LSB nella soluzione ufficiale, che arrotonda la derivata): è l'errore massimo del mantenimento a gradini rispetto alla sinusoide ideale, che un filtro di ricostruzione (passa-basso) deve attenuare.

(ii) DAC R-2R

Struttura. Una scala di resistenze di valore RR (in serie) e 2R2R (rami in parallelo): ciascun ramo da 2R2R ha un deviatore comandato da un bit DiD_i che lo collega alla massa virtuale dell'amplificatore operazionale (bit = 1) oppure alla massa (bit = 0). Poiché la massa virtuale è anch'essa a 0 V, in entrambi i casi il ramo ha la stessa tensione ai capi e il circuito visto da VrefV_{ref} non cambia.

Correnti. La resistenza vista da ogni nodo della scala, guardando verso destra, è sempre 2R2R (si verifica a partire dall'ultimo nodo: 2R∥2R=R2R\parallel2R=R, più RR in serie =2R=2R e così via). Quindi la tensione nei nodi si dimezza a ogni passo: Vref, Vref2, Vref4,…V_{ref},\ \frac{V_{ref}}2,\ \frac{V_{ref}}4,\dots e le correnti nei rami da 2R2R sono In−1=Vref2R, In−2=Vref4R,…, I0=Vref2nRI_{n-1}=\frac{V_{ref}}{2R},\ I_{n-2}=\frac{V_{ref}}{4R},\dots,\ I_0=\frac{V_{ref}}{2^nR}. Solo i rami con Di=1D_i=1 iniettano la loro corrente nel nodo di somma: Itot=∑i=0n−1Di Vref2R 2i−(n−1)=VrefR C2n,C=∑iDi2i,I_{tot}=\sum_{i=0}^{n-1}D_i\,\frac{V_{ref}}{2R}\,2^{i-(n-1)}=\frac{V_{ref}}{R}\,\frac{C}{2^n},\quad C=\sum_iD_i2^i, e con retroazione RR l'uscita è Vo=−R Itot=−Vref C2n=−Vref(Dn−12+Dn−24+⋯+D02n).\boxed{V_o=-R\,I_{tot}=-V_{ref}\,\frac{C}{2^n}=-V_{ref}\Big(\frac{D_{n-1}}2+\frac{D_{n-2}}4+\dots+\frac{D_0}{2^n}\Big)}. Corrente assorbita da VrefV_{ref}: la resistenza vista da VrefV_{ref} è sempre RR (indipendentemente dai deviatori, perché ogni ramo da 2R2R è collegato a 0 V in entrambi gli stati): la corrente assorbita è VrefR\frac{V_{ref}}R costante, non dipende dai bit (vantaggio rispetto al DAC a resistenze pesate, la cui corrente dipende dal codice).

Numeri. n=8n=8, Vref=5V_{ref}=5 V: LSB=5256=19,5 mVLSB=\frac{5}{256}=\mathbf{19{,}5\ mV}; C=0xA5=165C=\texttt{0xA5}=165: Vo=−5⋅165256=−3,223 VV_o=-5\cdot\frac{165}{256}=\mathbf{-3{,}223\ V} (negativa perché lo schema è invertente).

Errori comuni

  • Scrivere V=FSR⋅C2n−1V=FSR\cdot\frac C{2^n-1}: con 2n2^n l'ultimo gradino è FSR⋅2n−12nFSR\cdot\frac{2^n-1}{2^n} (il fondo scala vero non si raggiunge).
  • Dimenticare che lo schema R-2R con operazionale è invertente.
  • Confondere la variazione massima tra campioni (pendenza ⋅Tc\cdot T_c) con l'errore di quantizzazione (±12\pm\frac12 LSB).
  • Dire che nel DAC R-2R la corrente dipende dai bit.

Versione ripasso

Testo. DAC a 12 bit, 3,3 V, 50 kHz: tensioni da codice, sinusoide 0x600sin⁡+0x800\texttt{0x600}\sin+\texttt{0x800}; DAC R-2R (febbraio 2026; esempio 2020-21).

Teoria collegata