P10 – CONVERTITORI A/D E D/A
P10.1 – Calcolare l’intervallo di quantizzazione LSB, la risoluzione R e
l’errore massimo di quantizzazione ε di un convertitore A/D con n = 8 bit di
uscita e valore massimo della tensione d’ingresso Vmax = 4 V. Stabilire inoltre
come si modificano i risultati nei due casi in cui si raddoppi il valore
rispettivamente di Vmax o di n. Valutare infine il rapporto segnale/rumore di
quantizzazione del convertitore in esame.
Soluzione
La figura seguente mostra il simbolo funzionale del convertitore in esame, nel
quale è evidenziato anche il valore Vmax , detto anche valore di fondo scala, che
viene generalmente fornito al convertitore su un apposito ingresso indicato con
con Vref (Reference input voltage).
ADC
Vi
D7
..
.
..
.
D2
D1
Vref
D0
Vmax
Nel processo di quantizzazione lineare, il valore di fondo scala è diviso in 2n
intervalli uguali, detti intervalli di quantizzazione, di ampiezza:
LSB =
Vmax
4
= 8 = 15,625 mV
n
2
2
La risoluzione del convertitore è data, per definizione, dal valore di LSB
normalizzato rispetto a Vmax:
R=
LSB 1
= 8 = 3,9 ⋅10 −3
Vmax 2
mentre l’errore di quantizzazione massimo è pari alla metà di LSB:
ε =±
LSB
15,625
=±
= ±7,813mV
2
2
o anche, direttamente [v. formula (18.2)]:
ε =±
Vmax
4
= ± 9 = ±7,813 mV
n +1
2
2
Se si raddoppia il valore di fondo scala, raddoppiano anche i valori di LSB e
di ε, mentre se si raddoppia il numero di bit del codice di uscita si ha una
drastica riduzione di LSB e di ε, nel rapporto di 2n. Nel primo caso si ha dunque:
LSB ' =
ε '= ±
2Vmax 2 × 4
= 8 = 31,25 mV
2n
2
LSB'
31,25
=±
= ±15,625 mV
2
2
e nel secondo caso:
LSB" =
ε"=
Vmax 15,625
=
= 61 µV
2 2n
216
LSB" 61
=
= 30,5 µV
2
2
Per quanto riguarda il rapporto segnale/rumore di quantizzazione, esso vale,
in base alla (18.3):
S / N q = 6 × 8 = 48 dB
nel caso di codice a 8 bit, e sale a 48 × 2 = 96 dB se si raddoppia il numero di bit
del codice di uscita, indipendentemente dal valore della tensione di fondo scala.
______________________________________________________________
P10.2 – Determinare il numero binario all’uscita di un convertitore A/D con
n = 8 bit e valore di fondo scala Vmax = 2 V, quando il segnale analogico in
ingresso vale Vi = 1,3 V.
Soluzione
Il valore del numero N in uscita, nell’ipotesi di codice binario naturale a 8
bit, è determinato dal rapporto tra il valore della tensione Vi d’ingresso e il valore
dell’intervallo di quantizzazione LSB. In formula:
 V 
N = INT ≅  i 
 LSB 
dove la notazione INT ≅ (x) indica il numero intero più vicino a x.
Nel nostro caso si ha:
LSB =
Vmax
2
= 8 = 7,8125mV
n
2
2
e quindi:
1,3


N = INT ≅ 
 = 166 = (10100110) 2
−3
 7,8125 ⋅10 
Ricordiamo la regola pratica per ottenere l’espressione binaria di un numero
decimale: si procede per successive divisioni per 2 e si segna 1 in
corrispondenza dei risultati dispari, e 0 in corrispondenza di quelli pari:
166 83
0
1
(LSB)
41
1
20 10
0
0
5
1
2
0
1
1
(MSB)
P10.3 – Utilizzando l’integrato 8-Bit A/D Converter ADC0802, di cui è fornito
il data sheet pag.607 del testo, si vuole convertire in numerico un segnale
analogico avente uno spettro di frequenza compreso nella banda fonica f1 ÷ f2 =
300 ÷ 3400 Hz. Stabilire se è necessario anteporre al convertitore un circuito
Sample and Hold (campiona e mantieni) ed eventualmente valutare il relativo
tempo di acquisizione.
Soluzione
Dal data sheet si desume per il tempo di conversione un valore massimo Ts
= 100 µs. Con tale valore, la massima frequenza che il convertitore a 8 bit
assegnato può convertire senza l’impiego del circuito S&H è data, in base alla
(18.4), da:
f max =
1
2 ⋅ π ⋅ Ts
n
=
1
= 12,43 Hz
2 ⋅ π ⋅100 ⋅10 −6
8
Essendo f max << 3400 Hz, l’impiego del circuito S&H è assolutamente
necessario.
Il tempo di acquisizione massimo Ta di tale circuito (= tempo di carica del
condensatore di memoria, con una tolleranza prestabilita) deve essere minore del
tempo di conversione Ts , e può essere determinato in base alla seguente
relazione, derivata dalla (18.4):
Ta ≤
1
2 ⋅π ⋅ f 2
n
=
1
= 0,4 µS
2 ⋅ π ⋅ 3400
8
____________________________________________________________
P10.4 - Calcolare l’intervallo di quantizzazione LSB di un convertitore A/D
flash a n=3 bit, per un valore della tensione di fondo scala Vmax = 4V.
Dimensionare il partitore di tensione per il prelievo delle tensioni di soglia e
determinare i valori di tali livelli di tensione ricavati dalla tensione di
riferimento del convertitore.
Soluzione
L’intervallo di quantizzazione è dato dal prodotto della tensione Vmax per la
risoluzione del convertitore. Quest’ultima, per n=3bit, vale:
Ris =
1 1
= = 0,125
23 8
pertanto si ottiene:
LSB = Ris ⋅ Vmax = 0,125 × 4 = 0,5 V
Dalla tensione di fondo scala, coincidente con la tensione di riferimento del
convertitore, si ricavano, mediante un partitore composto da 8 resistori, le 7
tensioni di soglia con le quali viene confrontata la tensione analogica d’ingresso
Vi , tramite altrettanti comparatori.
Il partitore di tensione è formato da un resistore finale di resistenza R, da un
resistore iniziale di resistenza 3R e da sei resistori intermedi di resistenza 2R.
Scegliendo per il resistore finale:
R = 1 kΩ
il resistore iniziale e quelli intermedi devono valere rispettivamente 3 kΩ e
2 kΩ.
Per quanto riguarda i livelli di tensione ottenuti dal partitore, i rispettivi valori
sono dati in successione dalla relazione:
x Vref / 2 n+1 , con x = 1,3,5, ... , (2 n+1 − 3)
che fornisce un primo valore pari alla metà del passo di quantizzazione:
Vref / 2 3+1 = 4 / 16 = 0,25 ≡ LSB / 2
un secondo valore incrementato di 1 LSB;
3 Vref / 2 3+1 = 13 × 4 / 16 = 0,75 V
e così via fino al settimo livello:
(2 3+1 − 3) Vref / 2 3+1 = 13 × 4 / 16 = 3,25 V
P10.5 – Calcolare il rapporto segnale/rumore di quantizzazione di un
convertitore A/D parallelo e di un convertitore A/D sigma-delta, aventi
risoluzione pari rispettivamente a:
R flash = 4 ⋅10 −3 ; RΣ∆ = 1,5 ⋅10 −5
Soluzione
La risoluzione di un convertitore A/D è legata al numero di bit del codice in
uscita dalla relazione (18.1):
R = LSB / Vmax = 1 / 2 n
Per i due convertitori assegnati si ha pertanto:
n flash = log 2
1
R flash
= − log 2 R flash = − log 2 (4 ⋅10 −3 ) = 8 bit
nΣ∆ = − log 2 RΣ∆ = − log 2 (1,5 ⋅10 −5 ) = 16 bit
Corrispondentemente, applicando la formula approssimata (18.3), si
ottengono i seguenti valori del rapporto segnale/rumore di quantizzazione:
( S / N q ) flash = 6 × 8 = 48 dB
( S / N q ) Σ∆ = 6 ×16 = 96 bit
Si vede dunque che il raddoppio del numero di bit di uscita da 8 a 16, reso
possibile dall’introduzione della tecnica sigma-delta, comporta un aumento di 48
dB del rapporto segnale/rumore di quantizzazione, vale a dire una potenza del
rumore di quantizzazione oltre sessantamila volte più piccola.
P10.6 – Verificare se un segnale analogico variabile nel tempo con una
velocità massima (dvi/dt)max = 0,5 mV/µs può essere correttamente convertito in
digitale mediante un ADC a 12 bit, privo di circuito S&H, avente un tempo di
conversione di 10 µs ed una escursione d’ingresso di ±10 V.
Soluzione
Nei convertitori che accettano in ingresso segnali bipolari, in luogo del valore
di fondo scala va considerato il range di ingresso FSR (Full-Scale Range), per
determinare l’intervallo di quantizzazione:
1 LSB =
FSR Vi max − Vi min
=
2n
2n
Nel nostro caso si ottiene:
1 LSB =
10 − (−10) 20
= 12 = 4,88 mV
212
2
In assenza di un circuito di Sample and Hold , in grado di acquisire il valore
della tensione di ingresso in un determinato istante e mantenerlo invariato
sull’uscita fino ad un nuovo campionamento, la conversione A/D di un segnale
variabile nel tempo richiede che durante il tempo di conversione Ts il segnale
non subisca una variazione superiore in valore assoluto a 1 LSB.
Nel nostro caso la massima variazione della tensione in ingresso, espressa in
mV, vale;
∆Vi max = (dvi / dt ) max ⋅ Ts = 0,5 ×10 = 5 mV
Poiché risulta ∆Vi max > 1 LSB , l’ADC assegnato non è idoneo ad eseguire
correttamente la conversione richiesta.
P10.7 – Un convertitore D/A ad 8 bit ha una tensione di uscita compresa fra 0
e 5V. Calcolare i valori della risoluzione e del LSB del convertitore, e
determinare il valore della tensione ottenuta in uscita in corrispondenza del
codice in ingresso 01100110.
Soluzione
In figura è rappresentato il simbolo funzionale del convertitore D/A
assegnato, con l’indicazione dell’ingresso di riferimento.
DAC
0
B3
1
B2
1
B1
0
B4
0
B3
1
B2
1
B1
0
B 0 Vref
Vu
+5V
La risoluzione del convertitore dipende esclusivamente dal numero di bit del
codice d’ingresso e vale, in base alla (19.1):
1
1
= 8
= 3,92 ⋅ 10 −3
2 −1 2 −1
R=
n
ovvero percentualmente:
R% =
100
= 0,392 %
2n −1
Il passo di quantizzazione si ottiene moltiplicando la variazione massima
della tensione di uscita per il valore della risoluzione:
LSB = Vmax R = 5 × 3,92 ⋅10 −3 = 19,6 mV
Per determinare la tensione di uscita del DAC in corrispondenza di una
determinata combinazione del codice di ingresso, nell’ipotesi di codifica in
binario puro a 8 bit, basta moltiplicare per LSB il valore numerico della
combinazione di codice assegnata:
(01100110) 2 = (102)10
Quindi:
Vu = 102 ⋅ LSB = 102 × 19,6 ⋅10 −3 ≅ 2 V
Ricordiamo la regola pratica per convertire in decimale un numero binario: si
procede per successive moltiplicazioni per 2 dei singoli bit, a partire da quello
più significativo, aggiungendo ogni volta il bit successivo. Nel nostro caso:
0
1
1
0
0
1
1
0
→ 3→ 6→12→25→51→102
P10.8 – In un DAC a n = 4 bit del tipo a resistenze pesate con R = 2 kΩ, la
tensione di riferimento, generata internamente al convertitore, è Vr = 5 V.
Calcolare la tensione di uscita in corrispondenza della combinazione di codice
in ingresso:
B3 B2 B1 B0 = 0 1 0 1
Soluzione
In figura è riportato lo schema di principio del DAC in esame, con gli switch
elettronici posizionati secondo la combinazione di codice assegnata.
R
16 R
8R
2R
4R
+
Vu
GND
0
1
Vr
0
1
LSB
MSB
GND
Poiché l’ingresso invertente dell’amplificatore operazionale è a massa
virtuale, la corrente Ii che scorre nell’i-esimo ramo della rete di pesatura quando
il corrispondente bit è a 1, vale:
Ii =
Vr
Ri
Nel nostro caso sono percorsi da corrente i resistori 16R e 4R, relativi
rispettivamente ai bit B0 e B2; pertanto la corrente totale vale:
I=
Vr
V
V
5×5
+ r = r (1 + 4) =
= 0,781 mA
16 R 4 R 16 R
16 × 2 ⋅ 103
Si osservi che 16 R=2n R e che 1+4=5 corrisponde al valore decimale N della
combinazione di codice in ingresso:
(0101) 2 = (5)10
L’espressione della I può pertanto essere generalizzata nella formula
seguente:
I=
NVr
2n R
La tensione in uscita dall’AO in configurazione invertente risulta:
Vu = − IR = −0,781 ⋅ 10 −3 × 2 ⋅ 103 = −1,562 V
e può dunque essere espressa dalla formula:
Vu = −
NVr
2n
che fornisce infatti:
Vu = −
5×5
25
=−
= −1,562 V
4
2
16
P10.9 – In un DAC a 4 bit del tipo a rete R-2R, realizzato secondo lo schema in
figura, si ha Vr=5 V, R= 4kΩ. Calcolare la corrente Ir fornita dal generatore
della tensione di riferimento. Determinare inoltre la tensione Vu all’uscita del
convertitore in corrispondenza della combinazione di codice in ingresso:
B3 B2 B1 B0 = 0 1 1 1
I3
Vr
R
I3
R
I1
I2
R
I0
I1
I0
2R
2R
2R
2R
0
1
1
1
MSB
GND
Soluzione
I2
2R
R
GND
LSB
+
GND
Vu
Si ha Ir=2 I3 , con I3 =Vr/2R, indipendentemente dalla posizione degli
interruttori della rete R-2R, dato che l’ingresso invertente dell’AO è a massa
virtuale.La corrente erogata dal generatore dell tensione di riferimento vale
dunque:
Ir = 2
Vr Vr
5
=
=
= 1,25 mA
2 R R 4 ⋅ 103
Con la combinazione di codice assegnata, la corrente all’ingresso invertente
dell’AO è espressa da:
I = I 2 + I1 + I 0 =
Ir Ir Ir Ir
7
7 Vr
+ +
= (4 + 2 + 1) = I r =
4 8 16 16
16
16 R
e la tensione all’uscita del convertitore risulta:
Vu = − RI = −
7
7
Vr = − 5 = −2,1875
16
16
Osservando che i numeri 16 e 7 corrispondono rispettivamente a 2n e al
valore decimale N della combinazione di codice assegnata:
(0111) 2 = (7)10
l’espressione della Vu può essere generalizzata scrivendo:
Vu = −
NVr
2n
come nei convertitori a resistenze pesate.
Da tale relazione si vede che il valore R della rete R-2R non influenza
direttamente la risposta del convertitore. E’ necessario però che esso sia
rispettato da tutti i resistori della rete, con la stessa precisione e con lo stesso
coefficiente di temperatura.
P10.10 – Determinare la risposta analogica di un convertitore D/A ad 8 bit nel
caso in cui sull’ingresso di riferimento venga posto il segnale:
vr = 4 sen 2π ⋅ 103 t
mentre sugli ingressi binari è applicata la combinazione di codice 10100000.
Soluzione
La relazione generale che lega la risposta analogica di un DAC alla tensione
di riferimento (v. Problema precedente), è valida anche se quest’ultima ha valore
variabile nel tempo. Possiamo pertanto scrivere, riferendoci ai valori istantanei:
vu = −
ovvero, nel nostro caso:
vu = −
N vr
2n
160 vr
= −0,625 vr
28
essendo N=160 il valore decimale della combinazione di codice ad 8 bit
assegnata:
(10100000) 2 = (160)10
Sostituendo abbiamo:
vu = −0,625 × 4 sen 2π ⋅ 103 t = −2,5 sen 2π ⋅ 103 t
cioè l’uscita del convertitore è una tensione sinusoidale, come quella applicata
all’ingresso di riferimento, avente la stessa frequenza (1 kHz), di fase opposta e
con ampiezza moltiplicata per N/2n = 0,625.
I convertitori D/A integrati destinati a funzionare con tensione di riferimento
variabile vengono detti multiplying DAC, poiché la loro uscita risulta
proporzionale al prodotto fra la tensione di riferimento ed il numero N presente
sugli ingressi digitali. La loro applicazione tipica è nella realizzazione di
amplificatori a controllo digitale, nei quali il segnale da amplificare viene
applicato all’ingresso di riferimento del convertitore, ed il guadagno viene
regolato cambiando la combinazione di codice sugli ingressi digitali.