cosa è un dac?
DESCRIPTION
Vcc. Vref. output analogico (Vout). D[n-1]. Convertitore D/A. D[n-2]. D[0]. gnd. Cosa è un DAC?. Digital-to-Analog converter dispositivo “mixed signal”: Input digitale (parola a n bit) Output analogico: tensione o corrente. Vcc. Vref. output analogico (Vout). D[n-1]. - PowerPoint PPT PresentationTRANSCRIPT
Cosa è un DAC?
Digital-to-Analog converter dispositivo “mixed signal”:
o Input digitale (parola a n bit)
o Output analogico: tensione o corrente
output analogico (Vout)D[n-1]
VrefVcc
...D[n-2]
D[0]
gnd
Convertitore D/A
La tensione di output è
refnout VnD
V2
]0..1[
output analogico (Vout)D[n-1]
VrefVcc
...D[n-2]
D[0]
gnd
Convertitore D/A
Cosa fa esattamente un DAC?
Per un DAC a 3 bit ci sono 8 possibili codici di input
D[2..0] Vout
000 0V 001 1V 010 2V 011 3V 100 4V 101 5V 110 6V 111 7V
output analogico (Vout)D[2]
Vref (8V)Vcc
D[1]
D[0]
gnd
Convertitore D/A
Il DAC sulla scheda di laboratorio
REFA, REFB, REFC, REFDTensioni di riferimento fissate a 2.5 V
DACA, DACB, DACC, DACDTensioni di output
VDDLDACDACADACBDACCDACDLOAD
4 DAC in un singolo chip:
1234567
1413121110 9 8
GNDREFAREFBREFCREFDDATADCLK
VDDLDACDACADACBDACCDACDLOAD
1234567
1413121110 9 8
GNDREFAREFBREFCREFDDATADCLK
DATA, LDAC, LOAD, DCLKSegnali di Input per programmare il DAC
configurazione
FPGA
Sono controllati dalla FPGA
DCLK
DATA A1 A0 RNG D7 D6 D5 D4 D3 D2 D1 D0
Il codice digitale a 8 bit viene trasmesso dalla FPGA al DAC in modo seriale tramite la linea DATA assieme a un treno di impulsi di sincronizzazione lungo la linea DCLK
Protocollo di configurazione (circuito da implementare nella FPGA)
Identificatore del DAC:A1A0 = 00 DAC0A1A0 = 01 DAC1A1A0 = 10 DAC2A1A0 = 11 DAC3
Codice digitale (è trasmesso prima il MSB)
RNGVD
V refnout 12
]0..7[La tensione di output è
11 impulsi
DCLK
DATA A1 A0 RNG D7 D6 D5 D4 D3 D2 D1 D0
Il codice digitale a 8 bit viene trasmesso dalla FPGA al DAC in modo seriale tramite la linea DATA assieme a un treno di impulsi di sincronizzazione lungo la linea DCLK
Le linee LDAC e LOAD sono usate dal DAC per caricare i bit ricevuti lungo la linea DATA in un registro interno e per aggiornare la tensione di output
LDAC
LOAD
Sempre basso
La tensione di output viene aggiornata con questo impulso
DAC_interface
DCLKDATA
LDAC
LOAD
clk
res
SW0
Una macchina a stati parte quanto SW0 viene premuto (segnale di inizio configurazione)
oGenera un treno di 11 impulsi DCLKoSuccessivamente genera un impulso LOAD
La linea LDAC è tenuta sempre bassa
La parola in ingresso D[7..0] deve essere serializzata: su ogni fronte di salita di DCLK viene messo un nuovo bit (il primo trasmesso è il MSB)
D[7..0]DAC_interface
A[1..0]
Cosa è un ADC?
Analog-to-Digital Converter dispositivo “mixed signal”:
o Input analogico (tensione o corrente)
o Output digitale: parola a n bit
Input analogico (Vin)
Out[n-1]
VrefVcc
...Out[n-2]
Out[0]
gnd
Convertitore A/D
Può essere considerato un partitore
o L’output ci dice: che frazione di Vref è l’input Vin?
o Output:
Vref
VinnOut n2]0..1[
Input analogico (Vin)
Out[n-1]
VrefVcc
...Out[n-2]
Out[0]
gnd
Convertitore A/D
Cosa fa esattamente un ADC?
Per un ADC a 3 bit ci sono 8 possibili codici di output
Input analogico (Vin)
Out[2]
Vref(8V)Vcc
Out[1]
Out[0]
gnd
Convertitore A/D
Vin Out[2..0]
0-1 000 1-2 001 2-3 010 3-4 011 4-5 100 5-6 101 6-7 110 7-8 111
Esempio: se Vin=5.5 V e Vref=8 V Out[2..0] = 101
Risoluzione
L’ADC risolve due tensioni diverse se differiscono per più di 1 V producendo due codici diversi
La risoluzione dell’ADC è 1 V (Vref/23)
Input analogico (Vin)
Out[2]
Vref(8V)Vcc
Out[1]
Out[0]
gnd
Convertitore A/D
Vin Out[2..0]
0-1 000 1-2 001 2-3 010 3-4 011 4-5 100 5-6 101 6-7 110 7-8 111
Il bit meno significatico (LSB) rappresenta 1 V
La risoluzione di un ADC dipende dal numero di bit e da Vref:
Fissata Vref, maggiore è il numero di bit, migliore è la risoluzione. Se n=8 (anzichè n=3) la risoluzione sarebbe 8/28~31 mV
n
Vref
2
La tensione Vref determina il range dinamico dell’ADC
A parità di bit, minore è la tensione Vref, più fine è la suddivisione dell’intervallo Vref(=Vin max)-0 per cui la risoluzione migliora.
Ad esempio, se Vref=0.8 (anzichè 8 V) la risoluzione sarebbe 100 mV. Il miglioramento va però a scapito del range dinamico.
formulazione alternativa: (fissata Vref) la risoluzione di un ADC è il numero di bit.
Risoluzione e range dinamico
ADC trackingDescrizione a grandi linee: il codice a 8 bit di un contatore viene convertito da un DAC in una tensione analogica che viene quindi confrontata con la tensione di input. Il contatore viene incrementato fino a quando la tensione del DAC raggiunge quella in input. A questo punto il conteggio raggiunto dal contatore è il codice richiesto.
Contatore a 8 bit
FPGA
DAC interface
count[7..0]
DCLKDATA
LDAC
LOAD
Vanno ai DAC
DACVanalog
Vanalog
Vincomp
sm_ADC
CNT_EN
CNT_EN
Start_conv
comparatore
ADC tracking: implementazione
comp
Tensione in ingresso da convertire
Il comparatore (analogico) confronta due tensioni e produce in output un segnale logico:
Se Vin > Vanalog comp = 0Se Vin < Vanalog comp = 1
Collegamento comparatore-ADC
Soluzione alternativa: aspetta che l’interfaccia del DAC asserisca il segnale LOAD che va al DAC
si ripete il ciclo
ADC[7..0] è collegato a due cifre del display
Per un’eventuale nuova conversione
Le macchine a stati vanno disegnate usando verilog
Altri dettagli
Si deve impiegare il terzo DAC (CMREF) corrispondente ad A[1..0]=10
Vref dei DAC fissa Vref dell’ADC.Nella scheda Vref = 2.5 V
Il comparatore è un amplificatore operazionale (più dettagli in seguito)
Vin (COM_IN) può provenire da un generatore di tensione tramite un connettore LEMO
Limitazioni dell’ADC tracking
La limitazione principale è che è lento:Poichè il contatore parte sempre da zero, Il tempo di conversione è variabile
Maggiore è Vin maggiore è il tempo di conversione: se Vin = Vref è necessario ripetere il ciclo di incremento del contatore 256 volte!
START_CONV: inizio conversione.
Nel SAR viene caricata la parola 10000000 (solo il MSB = 1)
Se Vin >VD il controllore mantiene MSB a 1 e carica un altro 1 nel bit immediatamente successivo.
Se, invece Vin < VD il controllore pone MSB a 0 e carica un 1 nel bit immediatamente successivo.
La nuova parola viene caricata nel SAR e l'uscita del DAC viene aggiornata.
L’algoritmo descritto per il bit MSB viene ripetuto in modo identico per tutti gli altri bit.
ADC ad approssimazioni successive
Visualizzazione della conversione sul display
Visualizzazione della tensione in decimale
Può essere implementata con una ROM:Input a 8 bit (256 righe di memoria)Output a 12 bit
La variabile temporale
In generale i segnali del mondo reale hanno una qualche dipendenza dal tempo
Nel processo di conversione A/D ci interessa ricostruire questa dipendenza dal tempo
Campionamento del segnale
Input analogico
Sample and Hold
L’input analogico non va direttamente all’ADC. Entra prima in un circuito che campiona il segnale a un certo istante e quindi lo tiene congelato per tutto il tempo richiesto dalla conversione
Il campionamento trasforma il tempo da continuo a discreto
ADC
Output digitale
L’ADC trasforma il segnale analogico quantizzato nel tempo in un codice digitale (segnale quantizzato)
Nei sistemi più semplici l’input analogico è collegato direttamente all’ADC
ADC
Output digitale
Questo va bene se il segnale varia nel tempo molto più lentamente del tempo richiesto dall’ADC per effettuare la conversione
Input analogico
In ogni caso, è il tempo di conversione che quantizza il tempo
Rumore del segnale di input
Il segnale di input può essere affetto da un certo rumore:Consideriamo ad esempio un sensore a pixel (diodo a semiconduttore p-n)
Una fotone che attraversa il semiconduttore cede parte della sua energia a degli elettroni che vengono eccitati in banda di conduzione.
Il moto delle coppie elettrone-buca nel campo elettrico presente all’interno del semiconduttore produce un segnale elettrico.
In generale il numero di coppie prodotto da fotoni aventi la stessa energia e attraversanti lo stesso spessore di silicio fluttua
I vari elementi di circuito attraverso cui il segnale passa possono introdurre altro rumore.
Errore di quantizzazione della tensione
Al crescere della tensione di input cresce anche l’errore fino a quando cambia il codice
Aggiungiamo un offset pari a 1/2LSB all’input
Abbiamo un errore pari a ±1/2LSB
_
Segnale dopo il S/H
Errore di quantizzazione in un segnale variabile
Output digitale
Errore di quantizzatione
L’errore di quantizzazione appare come un rumore casuale.
La quantizzazione aumenta l’errore casuale del segnale
Il rumore associato alla quantizzazione è la deviazione standard di questa distribuzione
Consideriamo un gran numero di segnali di input variabili nel tempo in modo diverso.
La differenza fra il valore del segnale di input e il valore corrispondente al codice a n bit (trasformato in valore analogico da un DAC ad esempo) segue una distribuzione uniforme fra zero e la tensione corrispondente a un LSB (Vref/2n) .
Dobbiamo considerare una distribuzione con densità di probabilità
0
)(c
xp nrefVLSBx
2 10
altrove
La condizione di normalizzazione fissa c:
ref
nV
VLSBcdxxp
nref 2
1
11)(
2/
0
Il valor medio è
LSBV
xdxV
dxxxpx
nref
V
ref
nV nref
nref
2
1
22
1
2)(
2/
0
2/
0
La varianza è
2
22
22/
0
2222
12
1
24
1
23
1
22
1)(
LSBVV
Vdxxpxxx
nref
nref
nref
V nref
La deviazione standard è
LSB12
1
Riassunto delle caratteristiche di questo rumore:oDistribuito uniformemente nell’intervallo 0-LSB (o ±1/2LSB)oDeviazione standard 1/sqrt(12)LSB=0.29LSB
Esempio:
Segnale analogico di ampiezza massima 1 V con rumore casuale di 1.0 mV
Conversione A/D a 8 bit 1mV = 0.255 LSB
Rumore di quantizzazione = 0.29 LSB
Rumore totale dell’output digitale LSB386.029.0255.0 22
Aumento del 50% del rumore già presente nel segnale
L’errore di quantizzazione diminuisce aumentando il numero di bit
La conversione di un segnale anaogico con un ADC a
o8 bit aggiunge un errore rms 0.29/256 ~ 1/900 del valore di fondo scala
o12 bit aggiunge un errore rms 0.29/4096 ~ 1/14000 del valore di fondo scala
o16 bit aggiunge un errore rms 0.29/65536 ~ 1/227000 del valore di fondo scala
Il numero di bit determina la precisione dei dati. La decisione sul numero di bit necessari dipende da:
oQuanto rumore è già presente nei dati
oQuanto rumore può essere tollerato nel segnale digitale
Quando l’errore di quantizzazione non può essere trattato statisticamente:
Segnale che in diversi campionamenti dà sempre lo stesso output digitale la differenza non fluttua ma appare come un effetto sistematico
Il teorema di campionamento
Criterio di Nyquist o Shannon: per avere una corretta ricostruzione del segnale, la frequenza di campionamento deve essere almeno due volte la frequenza massima del segnale
Un criterio simile vale per il campionamento nello spazio:Consideriamo un sensore che ricostruisce un’immagine