Convertitori Digitale-Analogico Convertitori D/A D/A Ideale

Transcript

Convertitori Digitale-Analogico Convertitori D/A D/A Ideale
Convertitori D/A
Un convertitore D/A prende in ingresso un numero digitale (rappresentato da
una stringa di 1 e 0) e lo converte in un valore analogico (tipicamente una
tensione) proporzionale tramite una costante di riferimento.
Bin = b1 2-1 + b22-2 + … + bN2-N
Convertitori Digitale-Analogico
Vout = Vref Bin
La minima distanza fra due valori di uscita corrispondenti a codici diversi è:
Lucidi del Corso di Microelettronica
Parte 7
VLSB = Vref / 2N
Bin
Università di Cagliari
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
D/A Ideale. Caratteristica
29 Aprile 2006
Vout
VREF
29 Aprile 2006
La caratteristica di uscita di
un DAC ideale è mostrata
in figura: per ogni possibile
codice di ingresso (in
questo caso su 2 bit) si ha
un valore di uscita (in
questo caso una tensione).
La distanza fra due valori
di uscita adiacenti è proprio
pari alla tensione VLSB
(LSB
sta
per
Least
Significant Bit, ossia bit
meno significativo). I valori
di uscita sono allineati
lungo una retta che passa
per l’origine.
DAC
UE - Convertitori Digitale-Analogico
Massimo Barbaro
2
D/A: Misura Prestazioni
I parametri rispetto ai quali si misurano le prestazioni di un DAC
non ideale sono:
Vout / VREF
Risoluzione: Numero di bit in ingresso N (un DAC con
risoluzione N bit produce in uscita 2N possibili valori analogici)
3/4
Offset error: Il valore assunto dall’uscita in corrispondenza del
codice in ingresso che rappresenta lo zero
2/4
VLSB=VREF/2N
1/4
00
01 10
UE - Convertitori Digitale-Analogico
Gli errori di offset e gain sono lineari e quindi non gravi, in
quanto non introducono distorsione in uscita
11
Massimo Barbaro
Gain Error: Di quanto si discosta la pendenza della retta che
passa per i punti estremi della caratteristica di uscita dalla
pendenza ideale (in genere unitaria)
3
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
4
D/A: Misura Prestazioni
D/A: Misura Prestazioni
Gli errori di offset e gain sono lineari e quindi non gravi, in
quanto non introducono distorsione in uscita
DNL
(Differential
Nonlinearity):
E’
la
massima
deviazione degli step
fra due valori di uscita
corrispondenti a codici
adiacenti dal valore
ideale (VLSB)
INL
(Integral
Nonlinearity):
E’
la
massima
deviazione fra i valori
di uscita e la retta che
passa per i punti
estremi
della
caratteristica.
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
5
29 Aprile 2006
D/A: Misura Prestazioni
UE - Convertitori Digitale-Analogico
Massimo Barbaro
6
D/A: Misura Prestazioni
Settling Time (Tempo di Assestamento): E’ il tempo necessario perché il
segnale di uscita subisca una variazione di full-scale (dal valore minimo al
massimo) e si assesti intorno al valore finale a meno di un errore
determinato.
Monotonicità: Indica il fatto che, correttamente, a due
codici successivi corrispondano sempre valori di uscita
crescenti (la monotonicità è garantita quando DNL<1
LSB).
Glitch Impulse Area: E’ la massima area che compare nel segnale di uscita
in corrispondenza di glitch dovuti alle variazioni dell’ingresso, viene
chiamata anche “glitch energy” anche se non ha le dimensioni di un’energia.
Latency: E’ il tempo che intercorre fra un cambiamento
dell’ingresso e l’assestamento dell’uscita (oltre al settling
time può comprendere un certo numero di colpi di clock
nel caso di convertitori con struttura pipeline).
SNR: E’ il rapporto fra la potenza del segnale in ingresso
(tipicamente una sinusoide) è la potenza del rumore in
uscita.
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
7
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
8
D/A Decoder Based
Partitore Resistivo
L’approccio più semplice per realizzare un convertitore
D/A è basato sulla decodifica.
Si ottengono i 2N
segnali analogici in
uscita per mezzo di
un partitore resistivo
(richiede 2N resistori
“matched”).
Il tempo di risposta
dipende dal numero
di bit. Infatti, il ritardo
è dato dal tempo di
settling del buffer più
il ritardo dovuto alla
serie di resistenze di
interruttore
fra
il
nodo del partitore e il
morsetto
non
invertente del buffer.
Vengono generati 2N segnali (analogici) di riferimento e
si sceglie quale mettere in uscita attraverso una logica di
decodifica del codice binario in ingresso.
In pratica si implementa un multiplexer in cui in uscita si
portano valori analogici piuttosto che digitali.
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
9
29 Aprile 2006
Partitore Resistivo
UE - Convertitori Digitale-Analogico
Massimo Barbaro
10
Partitore Resistivo Folded
Per ridurre la capacità parassita al morsetto non invertente del buffer si
modifica il circuito in questo modo.
Si divide il decoder in due parti (come nel caso di una memoria, in cui i
bit sono organizzati a matrice). In tale modo sul morsetto non invertente
sono attaccati solo 2N/2 switch.
Si consideri che in questa figura il decoder deve lavorare nel modo
opportuno in modo da passare, all’incremento del codice, da un nodo del
partitore al successivo.
Con questa soluzione il
numero di resistori è lo
stesso ma il numero di
switch fra un nodo del
partitore e il buffer è
diminuito.
Le controindicazioni sono
dovute alla presenza di
una logica di decodifica più
complessa (ma digitale) ed
all’aumento della capacità
parassite sul morsetto non
invertente del buffer (vi
sono attaccate 2N capacità
di source).
In generale è comunque
uno schema più veloce del
precedente.
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
11
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
12
Partitore Resistivo Folded
Multiple Converters
b1
b2
Decoder 2x4
Il partitore resistivo viene
diviso in due parti.
b3
b4
29 Aprile 2006
Vout
Decoder 2x4
UE - Convertitori Digitale-Analogico
Massimo Barbaro
13
D/A: Binary Scaled
In questo esempio con 6
bit, i 3 bit più significativi
scelgono quali tensioni
dare come riferimento al
secondo
partitore
resisitivo. Tale intervallo
di
tensione
viene
ulteriormente suddiviso e
si sceglie quale valore
dare in uscita con gli altri
3 bit. Si è ottenuta una
riduzione del numero di
resistori (2N/2 contro 2N).
29 Aprile 2006
Massimo Barbaro
14
Il principale difetto dell’implementazione precedente è legato al fatto che si
hanno rapporti di resistenza che possono diventare molto grandi
all’aumentare del numero di bit. Ciò è poco pratico e poco preciso (le correnti
sono molto diverse le une dalle altre). Questa soluzione alternativa prevede
l’uso di resistenze molto simili (R o 2R).
N1
UE - Convertitori Digitale-Analogico
Massimo Barbaro
D/A Binary Scaled: Rete R-2R
I convertitori binary-scaled si basano sull’uso di N riferimenti ognuno la metà dell’altra
(pesati quindi con potenze di due) in modo da ottenere l’uscita come somma degli
opportuni riferimenti scelti in base al codice di ingresso (sommo se il corrispondente bit è
1 altrimenti non sommo).
La implementazione più semplice è mostrata in figura:
la resistenza 2iR è connessa a massa o al morsetto invertente a seconda che bi sia zero
o uno.
Itot = Σ (b i Vref ) / (2 i R)
Vout = Rf Itot = (Rf / R) Σ b i 2 - i Vref = (Rf / R) Vref Bin
29 Aprile 2006
UE - Convertitori Digitale-Analogico
15
29 Aprile 2006
N2
N3
N4
UE - Convertitori Digitale-Analogico
Massimo Barbaro
16
D/A Binary Scaled: Rete R-2R
Redistribuzione di Carica
Nel circuito della pagina precedente si può facilmente verificare che le
correnti nelle resistenze associate ai bit b1, b2, b3, etc. sono via via una la
metà dell’altra.
Infatti:
partendo dal nodo N4 si vede verso massa il parallelo di due resistenze pari
a 2R quindi la corrente che scorre sulla resistenza R che arriva in N4 sarà il
doppio della corrente che scorre nella resistenza associata a b4.
Nella resistenza R che arriva in N4 scorre la stessa corrente che scorre nella
resistenza associata a b3 (infatti da N3 verso sinistra si vede la serie di R
con una resistenza equivalente pari ancora a R quindi un totale di 2R che è
esattamente la resistenza associata a b3).
Lo stesso ragionamento si può ripetere andando a ritroso verso il nodo N1
verificando quindi che le correnti che scorrono nelle resistenze verticali sono
correttamente scalate di un fattore 2 l’una dall’altra.
Tali correnti vengono poi sommate o meno nella resistenza Rf di feedback
dando luogo al potenziale Vout.
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
Il convertitore binary-scaled può essere realizzato anche utilizzando rapporti
di capacità con una tecnica mutuata dalle capacità commutate.
N1
N2
17
29 Aprile 2006
D/A Binary Scaled: Current-Mode
UE - Convertitori Digitale-Analogico
Massimo Barbaro
Massimo Barbaro
18
D/A Binary Scaled: Glitch
I valori di riferimento scalati di potenze di due possono anche essere delle
correnti come nel caso seguente. In questo modo si ottengono convertitori più
veloci.
29 Aprile 2006
UE - Convertitori Digitale-Analogico
19
Quando in un convertitore di questo genere (binary scaled) il codice cambia
in ingresso in modo tale da fare variare la posizione di tutti gli switch (ad
esempio dal codice 0111 al 1000) in uscita posson comparire dei glitch
dovuti al fatto che non tutti i percorsi hanno lo stesso ritardo ed alcuni switch
possono aprirsi (o chiudersi) prima di altri.
Nel caso peggiore si può avere una situazione di questo genere:
29 Aprile 2006
UE - Convertitori Digitale-Analogico
Massimo Barbaro
20
D/A: Codice Termometrico
Utilizzando un codice termometrico al posto dl normale codice binario si
possono avere alcuni vantaggi.
Il codice termometrico rappresenta un numero binario con una sequenza di 1
pari al numero da rappresentare:
0
1
2
3
000
001
011
111
29 Aprile 2006
Ovviamente questo richiede più bit che nel classico codice
binario (2N-1 anzi che N).
L’uso di codici termometrici garantisce la monotonicità del
convertitore (per passare da un codice al successivo si
aggiunge sempre qualcosa) e riduce enormemente il
problema dei glitch (da un codice al suo adiacente cambia
un solo switch e mai tutti quanti insieme).
L’uso di un codice termometrico non fa aumentare l’area
della parte analogica perché pur richiedendo più
componenti questi sono più piccoli. Ad esempio nel
convertitore a redistribuzione di carica sono necessarie
(se N=4) 4 capacità pari a 8C, 4C, 2C e C (totale 15C) col
codice binario mentre nel caso termometrico ne servono
2N-1=15 pari tutte a C.
UE - Convertitori Digitale-Analogico
Massimo Barbaro
21