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