Entrambe le parti precedenti la revisioneRevisione precedente | Prossima revisioneEntrambe le parti successive la revisione |
sezione_23b [2016/01/10 17:53] – modifica esterna 127.0.0.1 | sezione_23b [2016/09/06 10:51] – admin |
---|
Supponiamo che una sequenza di //n// bit codifichi il numero intero naturale D. Il codice binario((i termini indicati con //b// sono cifre binarie che posso assumere solo i valori 0 o 1; b<sub>n-1</sub> è la cifra più significativa (MSB) e b<sub>0</sub> quella meno significativa (LSB) )): | Supponiamo che una sequenza di //n// bit codifichi il numero intero naturale D. Il codice binario((i termini indicati con //b// sono cifre binarie che posso assumere solo i valori 0 o 1; b<sub>n-1</sub> è la cifra più significativa (MSB) e b<sub>0</sub> quella meno significativa (LSB) )): |
| |
$$b_(n-1)b_(n-2) ... b_1 b_0$$ | `b_(n-1)b_(n-2) ... b_1 b_0` |
| |
corrisponde al numero intero: | corrisponde al numero intero: |
| |
$$D=b_0 2^0+b_1 2^1+b_2 2^2+ ... + b_(n-1) 2^(n-1)= sum_(i=0)^(n-1) b_i 2^i$$ | `D=b_0 2^0+b_1 2^1+b_2 2^2+ ... + b_(n-1) 2^(n-1)= sum_(i=0)^(n-1) b_i 2^i` |
| |
Il convertitore digitale/analogico (DAC) traduce il codice binario in una tensione analogica proporzionale al numero D che può essere espressa così: | Il convertitore digitale/analogico (DAC) traduce il codice binario in una tensione analogica proporzionale al numero D che può essere espressa così: |
| |
$$V_o = Q cdot D = Q sum_(i=0)^(n-1) b_i 2^i$$ | `V_o = Q cdot D = Q sum_(i=0)^(n-1) b_i 2^i` |
| |
La costante Q che compare nell'espressione precedente è detta **quanto** della conversione e il suo valore è legato alla risoluzione del convertitore perché coincide con la minima variazione dell'uscita o col valore corrispondente al bit meno significativo (LSB). | La costante Q che compare nell'espressione precedente è detta **quanto** della conversione e il suo valore è legato alla risoluzione del convertitore perché coincide con la minima variazione dell'uscita o col valore corrispondente al bit meno significativo (LSB). |
Spesso nei datasheet dei convertitori D/A la risoluzione non è indicata con il quanto di conversione ma con il numero di bit //n// del DAC e dalla tensione tensione di fondo scala V<sub>FS</sub>((esistono tre modi per indicare la risoluzione: il valore del quanto, il numero di bit e la risoluzione relativa Q/V<sub>FS</sub>=2<sup>-n</sup>)). Il quanto è comunque calcolabile come: | Spesso nei datasheet dei convertitori D/A la risoluzione non è indicata con il quanto di conversione ma con il numero di bit //n// del DAC e dalla tensione tensione di fondo scala V<sub>FS</sub>((esistono tre modi per indicare la risoluzione: il valore del quanto, il numero di bit e la risoluzione relativa Q/V<sub>FS</sub>=2<sup>-n</sup>)). Il quanto è comunque calcolabile come: |
| |
$$Q=V_(FS)/2^n$$ | `Q=V_(FS)/2^n` |
| |
La tensione di fondo scala V<sub>FS</sub> è suddivisa in 2<sup>n</sup> intervalli larghi Q e la tensione V<sub>o</sub> in uscita può assumere 2<sup>n</sup> valori compresi tra 0 e V<sub>FS</sub> - Q. Per chiarire questi concetti esaminiamo la //figura 3// che mostra la caratteristica di trasferimento di un DAC a 3 bit: nelle ascisse è presente il dato digitale - un codice di tre bit associato ad un numero intero D - e in quella delle ordinate la tensione in unscita V<sub>o</sub>, che può assumer 2<sup>3</sup> valori multipli del quanto Q compresi tra 0 e V<sub>FS</sub> - Q((a rigore la caratteristica è definita solo in corrispondenza dei numeri interi D e i segmenti orizzontali non dovrebbero essere presenti)). | La tensione di fondo scala V<sub>FS</sub> è suddivisa in 2<sup>n</sup> intervalli larghi Q e la tensione V<sub>o</sub> in uscita può assumere 2<sup>n</sup> valori compresi tra 0 e V<sub>FS</sub> - Q. Per chiarire questi concetti esaminiamo la //figura 3// che mostra la caratteristica di trasferimento di un DAC a 3 bit: nelle ascisse è presente il dato digitale - un codice di tre bit associato ad un numero intero D - e in quella delle ordinate la tensione in unscita V<sub>o</sub>, che può assumer 2<sup>3</sup> valori multipli del quanto Q compresi tra 0 e V<sub>FS</sub> - Q((a rigore la caratteristica è definita solo in corrispondenza dei numeri interi D e i segmenti orizzontali non dovrebbero essere presenti)). |
In alcuni DAC la tensione di fondo scala può essere variata attraverso un pin indicato come V<sub>REF</sub>. Questi DAC vengono chiamati moltiplicatori perché, fattore 2<sup>-n</sup> a parte, forniscono in uscita una tensione pari al prodotto tra la tensione V<sub>REF</sub> e il dato numerico digitale D: | In alcuni DAC la tensione di fondo scala può essere variata attraverso un pin indicato come V<sub>REF</sub>. Questi DAC vengono chiamati moltiplicatori perché, fattore 2<sup>-n</sup> a parte, forniscono in uscita una tensione pari al prodotto tra la tensione V<sub>REF</sub> e il dato numerico digitale D: |
| |
$$V_o=V_(REF)/2^n D$$ | `V_o=V_(REF)/2^n D` |
| |
Se la tensione V<sub>REF</sub> può assumere anche valori negativi si parla di DAC a due quadranti((esistono soluzioni ancora più complesse che prevedono codici binari negativi e permettono di realizzare DAC a quattro quadranti)). Questi ultimi possono essere usati anche come **attenuatori digitali**: se consideriamo la tensione V<sub>REF</sub> come il segnale da attenuare e il valore digitale come fattore di attenuazione, la tensione in uscita potrà variare tra zero e V<sub>REF</sub> - Q (con un guadagno compreso tra 0 e 1 - 2<sup>-n</sup> ). Questa applicazione da "potenziometro digitale" è piuttosto diffusa, ad esempio per controllare il volume negli hi-fi. | Se la tensione V<sub>REF</sub> può assumere anche valori negativi si parla di DAC a due quadranti((esistono soluzioni ancora più complesse che prevedono codici binari negativi e permettono di realizzare DAC a quattro quadranti)). Questi ultimi possono essere usati anche come **attenuatori digitali**: se consideriamo la tensione V<sub>REF</sub> come il segnale da attenuare e il valore digitale come fattore di attenuazione, la tensione in uscita potrà variare tra zero e V<sub>REF</sub> - Q (con un guadagno compreso tra 0 e 1 - 2<sup>-n</sup> ). Questa applicazione da "potenziometro digitale" è piuttosto diffusa, ad esempio per controllare il volume negli hi-fi. |
Con questa configurazione la tensione V<sub>0</sub> in uscita vale: | Con questa configurazione la tensione V<sub>0</sub> in uscita vale: |
| |
$$V_0 = -R_(f) (V_0/R_0 + V_1/R_1 + V_2/R_2 + V_3/R_3)=-R_(f)/R (V_0/8 + V_1/4 + V_2/2 + V_3/1)$$ | `V_0 = -R_(f) (V_0/R_0 + V_1/R_1 + V_2/R_2 + V_3/R_3)=-R_(f)/R (V_0/8 + V_1/4 + V_2/2 + V_3/1)` |
| |
Se esprimiamo le tensioni in ingresso come prodotto tra il valore logico Q<sub>i</sub>((NB si rischia di fare confusione perché il testo usa il simbolo Q sia per il quanto che per il valore logico dei bit)) associato al bit e la tensione V<sub>H</sub> corrispondente al livello alto: | Se esprimiamo le tensioni in ingresso come prodotto tra il valore logico Q<sub>i</sub>((NB si rischia di fare confusione perché il testo usa il simbolo Q sia per il quanto che per il valore logico dei bit)) associato al bit e la tensione V<sub>H</sub> corrispondente al livello alto: |
| |
$$V_i=Q_i cdot V_H$$ | `V_i=Q_i cdot V_H` |
| |
la tensione in uscita si può esprimere come: | la tensione in uscita si può esprimere come: |
| |
$$V_0 = -(R_(f)V_H)/R(Q_0/8 + Q_1/4 + Q_2/2 + Q_3/1)=-(R_(f)V_H)/(8R) (8Q_3 + 4Q_2 + 2Q_1 + Q_0)$$ | `V_0 = -(R_(f)V_H)/R(Q_0/8 + Q_1/4 + Q_2/2 + Q_3/1)=-(R_(f)V_H)/(8R) (8Q_3 + 4Q_2 + 2Q_1 + Q_0)` |
| |
Allora, a meno di una costante, la V<sub>0</sub> coincide col numero codificato in binario come Q<sub>3</sub>Q<sub>2</sub>Q<sub>1</sub>Q<sub>0</sub>. Il circuito converte una sequenza di 4 bit in un segnale analogico e si comporta come un convertitore con: | Allora, a meno di una costante, la V<sub>0</sub> coincide col numero codificato in binario come Q<sub>3</sub>Q<sub>2</sub>Q<sub>1</sub>Q<sub>0</sub>. Il circuito converte una sequenza di 4 bit in un segnale analogico e si comporta come un convertitore con: |
* quanto $$Q=-(R_(f)V_H)/(8R)$$ | * quanto `Q=-(R_(f)V_H)/(8R)` |
* tensione di fondo scala((si ricorda dal paragrafo 5 che il valore massimo di V<sub>0</sub> è V<sub>FS</sub> - Q)) $$V_(FS)= 2^4 cdot Q$$ | * tensione di fondo scala((si ricorda dal paragrafo 5 che il valore massimo di V<sub>0</sub> è V<sub>FS</sub> - Q)) `V_(FS)= 2^4 cdot Q` |
| |
Il circuito di //figura 5// è un esempio applicativo di un DAC a 4 bit dove il valore digitale da convertire è fornito da un contatore binario che, con un opportuno clock, genera ciclicamente valori da 0000 a 1111. | Il circuito di //figura 5// è un esempio applicativo di un DAC a 4 bit dove il valore digitale da convertire è fornito da un contatore binario che, con un opportuno clock, genera ciclicamente valori da 0000 a 1111. |
Il principio di funzionamento è quello già esposto nel paragrafo 4: la combinazione di valori logici in ingresso, pilotando gli interruttori che collegano la tensione di riferimento V<sub>R</sub>, determina una corrente sul carico che è la somma di tante correnti proporzionali alle potenze del due, convertita successivamente in tensione. Semplificando la rete con Thevenin((vedi scheda integrativa 23B.2)) si ottiene il circuito di //figura 9b//. La tensione del generatore di Thevenin vale: | Il principio di funzionamento è quello già esposto nel paragrafo 4: la combinazione di valori logici in ingresso, pilotando gli interruttori che collegano la tensione di riferimento V<sub>R</sub>, determina una corrente sul carico che è la somma di tante correnti proporzionali alle potenze del due, convertita successivamente in tensione. Semplificando la rete con Thevenin((vedi scheda integrativa 23B.2)) si ottiene il circuito di //figura 9b//. La tensione del generatore di Thevenin vale: |
| |
$$V_T= V_R/2^n sum_(i=0)^(n-1)b_i 2^i$$ | `V_T= V_R/2^n sum_(i=0)^(n-1)b_i 2^i` |
| |
ed è proporzionale al dato digitale D. In genere la rete R-2R è collegata ad un amplificatore invertente. In questo caso conviene usare una tensione di riferimento negativa -V<sub>R</sub> in modo che la tensione in uscita valga: | ed è proporzionale al dato digitale D. In genere la rete R-2R è collegata ad un amplificatore invertente. In questo caso conviene usare una tensione di riferimento negativa -V<sub>R</sub> in modo che la tensione in uscita valga: |
| |
$$V_o= R_f/R V_R/2^n sum_(i=0)^(n-1)b_i 2^i$$ | `V_o= R_f/R V_R/2^n sum_(i=0)^(n-1)b_i 2^i` |
| |
Questa espressione corrisponde a quella teorica vista nel paragrafo 3, ma con quanto di conversione che vale: | Questa espressione corrisponde a quella teorica vista nel paragrafo 3, ma con quanto di conversione che vale: |
| |
$$Q= R_f/R V_R/2^n $$ | `Q= R_f/R V_R/2^n ` |
==== Extra ==== | ==== Extra ==== |
| |
Nel funzionamento a due quadranti (vedi //figura 15//) il DAC si comporta come il circuito equivalente di //figura 14// e la tensione in uscita vale: | Nel funzionamento a due quadranti (vedi //figura 15//) il DAC si comporta come il circuito equivalente di //figura 14// e la tensione in uscita vale: |
| |
$$V_(OUT)=-V_(REF) N/4096$$ | `V_(OUT)=-V_(REF) N/4096` |
| |
Il funzionamento a quattro quadranti prevede l'impiego di una tensione di riferimento negativa (vedi //figura 17//); il DAC su comporta come il circuito equivalente di //figura 16// e la tensione in uscita vale: | Il funzionamento a quattro quadranti prevede l'impiego di una tensione di riferimento negativa (vedi //figura 17//); il DAC su comporta come il circuito equivalente di //figura 16// e la tensione in uscita vale: |
| |
| |
$$V_(OUT)=V_(REF) (N/4096 - 1)$$ | `V_(OUT)=V_(REF) (N/4096 - 1)` |
| |
Nel funzionamento a due quadranti i 12 bit codificano un numero positivo da 0 a 4096 che corrisponde a una tensione compresa tra 0 e V<sub>REF</sub>, in quello a quattro quadranti un numero tra -2048 e 2047 che corrisponde a una tensione compresa tra -V<sub>REF</sub> e V<sub>REF</sub>((in realtà in entrambi i casi il valore maggiore andrebbe diminuito di un quanto)). | Nel funzionamento a due quadranti i 12 bit codificano un numero positivo da 0 a 4096 che corrisponde a una tensione compresa tra 0 e V<sub>REF</sub>, in quello a quattro quadranti un numero tra -2048 e 2047 che corrisponde a una tensione compresa tra -V<sub>REF</sub> e V<sub>REF</sub>((in realtà in entrambi i casi il valore maggiore andrebbe diminuito di un quanto)). |