cosa è un dac? digital-to-analog converter dispositivo mixed signal: o input digitale (parola a n...

64

Upload: velia-bini

Post on 02-May-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 2: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 3: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 4: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 5: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 6: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 7: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 8: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 9: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 10: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

VDDLDACDACADACBDACCDACDLOAD

1234567

1413121110 9 8

GNDREFAREFBREFCREFDDATADCLK

DATA, LDAC, LOAD, DCLKSegnali di Input per programmare il DAC

configurazione

FPGA

Sono controllati dalla FPGA

Page 11: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 12: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 13: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 14: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 15: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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]

Page 16: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 17: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

False partenze:1. non va bene generare un segnale largo 11 cicli di clock e usarlo in AND col segnale di clock della FPGA

Questo si chiama “gating” del clock e in generale è meglio evitarlo

Page 18: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 19: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Diagramma degli stati corretto ed “elegante” che genera un treno di impulsi attraverso un loop o ciclo

Il numero di cicli è controllato da un contatore che genera un segnale Cout quando ha raggiunto il giusto numero di conteggi (cicli)

Se l’enable del contatore (CNT_EN) è asserito nello stato S0, a quale valore del conteggio il contatore deve generare Cout?

Page 20: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 21: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Cambiamo i nomi degli input: DAC[7..0] corrisponde a D[7..0] DAC[8] corrisponde a RNG DAC[10..9] corrisponde a A[1..0]

Page 22: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Esternamente (nel foglio dove posizioniamo il simbolo DAC_INTERFACE) possiamo fare questi collegamenti

Page 23: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Abbiamo ancora il problema che DAC[10..0] deve essere serializzataSu ogni fronte di salita di DCLK deve essere messo un bit lungo la linea DATA

Convertitore parallelo/seriale

DCLK

DATA A1 A0 RNG D7 D6 D5 D4 D3 D2 D1 D0

DAC[10] DAC[9] DAC[8] DAC[7] DAC[6] DAC[5] DAC[4] DAC[3] DAC[2] DAC[1] DAC[0]

Page 24: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Stesso contatore usato dallaMacchina a stati

Page 25: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

I bit cambiano sul fronte di discesa di DCLK anzichè su quello si salita

Page 26: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

II soluzione:Il clock del contatore che incrementa SEL è DCLK

Qui i bit cambiano su ogni fronte di salita di DCLK

Il problema è che sul primo fronte SEL diventa 1 e appare quindi DAC[9] mentre DAC[9] dovrebbe apparire sul secondo

Page 27: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

III soluzione:Cerchiamo di usare uno shift register e facciamo scorrere i bit con DCLK

Questo potrebbe funzionare se i bit DAC[10..0] sono preventivamente caricati nei Flip-Flop prima che arrivi il treno di impulsi DCLK

Problema: come faccio a caricare i FF con i bit?

Quanti FF ci vogliono?

Page 28: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Devo mettere davanti a ogni FF dello shift register un blocco di logica combinatoria con un input LOAD_SHREG che serve a caricare il FF

Per caricare il FF è necessario anche un impulso sull’input di clock del FF?

Come posso fare?

LOAD_SHREG potrebbe essere generato modificando la macchina a stati.

Come?

Page 29: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Caricamento dei FF tramite l’input PRES dei FF

Un inconveniente è che PRES (come RES) è un input asincrono attivo indipendentemente dal segnale di clock

Page 30: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Vediamo che problemi si potrebbero verificare con input asincroni (N.B. questo è illustrato per i segnali CNT_RES e LOAD, non per il caricamento dei FF)

Assegnamo a ciascuno dei 4 stati il codice indicato nelle bolle

Page 31: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

La macchina a stati parte con START_DAC. Nel diagramma temporale sono indicati i due bit dello stato

Nella transizione da STATE[1..0]=01 (S0) a STATE[1..0]=10 (S1) entrambi i bit cambiano, ma non simultaneamente

Per un breve transiente lo stato è STATE[1..0]=11 (S2) e CNT_RES e LOAD vengono asseriti (creando problemi)

Page 32: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Possibile soluzione: facciamo passare CNT_RES e LOAD attraverso un FF.

Poichè il FF campiona il suo input solo sul fronte di salita del clock, il glitch non viene campionato (è filtrato)Ma N.B. L’impulso generato dopo è ritardato così di un ciclo di clock

Page 33: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Altra soluzione: usiamo un codice per gli stati in modo tale che da una transizione all’altra cambi solo un bit per volta

In questo modo non è possibile generare glitch

In ogni caso potrebbe essere sempre preferibile cercare dei codici in cui cambi un solo bit per volta il più possibile

Codice Gray a 2 bit00 0111 10

Page 34: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Tornando al caricamento dei FF è preferibile un caricamento sincrono

Serve un MUX in cui la linea di selezione è LOAD_SHREG

Page 35: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 36: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 37: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 38: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 39: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 40: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 41: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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.

Page 42: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 43: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 44: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 45: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Soluzione alternativa: aspetta che l’interfaccia del DAC asserisca il segnale LOAD che va al DAC

Page 46: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

si ripete il ciclo

Page 47: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

ADC[7..0] è collegato a due cifre del display

Page 48: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Per un’eventuale nuova conversione

Le macchine a stati vanno disegnate usando verilog

Page 49: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 50: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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!

Page 51: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 52: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Visualizzazione della conversione sul display

Page 53: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 54: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Visualizzazione della tensione in decimale

Page 55: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Può essere implementata con una ROM:Input a 8 bit (256 righe di memoria)Output a 12 bit

Page 56: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output
Page 57: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 58: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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)

Page 59: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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

Page 60: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Errore di quantizzazione della tensione

Al crescere della tensione di input cresce anche l’errore fino a quando cambia il codice

Page 61: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

Aggiungiamo un offset pari a 1/2LSB all’input

Abbiamo un errore pari a ±1/2LSB

Page 62: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

_

Segnale dopo il S/H

Errore di quantizzazione in un segnale variabile

Output digitale

Errore di quantizzatione

Page 63: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

L’errore di quantizzazione appare come un rumore casuale.

La quantizzazione aumenta l’errore casuale del segnale

Caratteristiche di questo rumore:oDistribuito uniformemente nell’intervallo ±1/2LSBoDeviazione 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

Page 64: Cosa è un DAC? Digital-to-Analog converter dispositivo mixed signal: o Input digitale (parola a n bit) o Output analogico: tensione o corrente output

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