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

Slides:



Advertisements
Presentazioni simili
MULTIVIBRATORI BISTABILI
Advertisements

PROGETTO DI UN SISTEMA DI ACQUISIZIONE DATI
Dalla macchina alla rete
Capitolo 4 Logica sequenziale
SISTEMA DI ACQUISIZIONE E DISTRIBUZIONE DATI
Introduzione ai circuiti elettronici digitali
Convertitori D/A e A/D Enzo Gandolfi.
Circuiti Aritmetico-Logici
Progettazione e realizzazione di un circuito 3-STATE didattico
Circuiti sequenziali Capitolo 5.
Calcolatori Elettronici Parte IV
STRUMENTI TERMINALI DIGITALI
Digital Data Acquisition
Il Convertitore Digitale – Analogico ( DAC )
Convertitori Analogico/Digitali
SAMPLE & HOLD.
MASOERO FEDERICA Progetto web cooperativo:
Introduzione ai circuiti sequenziali
Circuiti di memorizzazione elementari: i Flip Flop
CONVERSIONE ANALOGICO-DIGITALE, A/D
CARATTERISTICHE DEI CONVERTITORI DIGITALI-ANALOGICI (DAC)
ESEMPI DI ARCHITETTURE DI DAC
CONVERTITORI A/D ad ELEVATE PRESTAZIONI
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
Spettro di frequenza dei segnali
Cosa è un DAC? Digital-to-Analog converter dispositivo “mixed signal”: Input digitale (parola a n bit) Output analogico: tensione o corrente.
Disegni organizzati gerarchicamente Ciascun elemento del disegno ha: –Uninterfaccia ben definita –Una precisa specifica del comportamento usando o: Una.
Flip-flop e Registri.
Conversione Analogico/Digitale
Come aumentare le linee di I/O?
Convertitore A/D e circuito S/H
La conversione analogico-digitale, campionamento e quantizzazione
Laboratorio di El&Tel Elaborazione numerica dei segnali: analisi delle caratteristiche dei segnali ed operazioni su di essi Mauro Biagi.
Salvatore Loffredo 18 maggio 2007
IL MODEM Che cos’è? A cosa serve? Che problemi risolve? Come comunica?
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Cos’è una sequenza? Una sequenza è una successione finita di valori, dove ogni valore ha una durata prefissata e costante (T). I valori della sequenza.
Rete Sincrona Una rete sequenziale sincrona, è dotata di un ingresso E, di un segnale di Clock e uno di reset. Ad ogni fronte del Clock, deve essere campionato.
Convertitori Analogico-Digitali
Convertitori Digitale-Analogico
Fondamenti di elettronica
Contatore: esempio di circuito sequenziale
FACOLTA’ DI INGEGNERIA
A. Cardini / INFN Cagliari
I Flip-Flop sono dei particolari Letch, la differenza stà che nel Flip-Flop abbiamo l’impulso di clock. Infatti ad ogni impulso il Flip-Flop cambia il.
PPI 8255 PROGRAMMABLE PERIPHERAL INTERFACE
Sistemi di acquisizione
GRANDEZZE ANALOGICHE E DIGITALI
PREFAZIONE Per poter eseguire il progetto Schematico occorre installare la libreria libreria.cat e i relativi file Sch e Sym presenti nella cartella librerie,
TC 8253 TIMER COUNTER Prof. Marco Solarino.
PERIFERICHE DI TIMING.
Convertitore Analogico / Digitale
Traformazioni fra Bistabili e Registri
Tecniche di progettazione Fault Tolerant
V.1. Considerazioni generali V.2. Flip-Flop V.3 Esempi applicativi
Analisi e Sintesi di un contatore BCD con Quartus II
ADC – SCHEMA GENERALE I convertitori AD sono disponibili come circuiti integrati in diversi modelli, che differiscono fra loro per prezzo, prestazioni.
LATCH. Circuiti Sequenziali I circuiti sequenziali sono circuiti in cui lo stato di uscita del sistema dipende non soltanto dallo stato di ingresso presente.
Circuiti di memorizzazione elementari: i Flip Flop
DAC A RESISTORI PESATI.
Segnali analogici : variano in modo continuo nel tempo e possono assumere tutti i valori compresi in un certo intervallo Segnali digitali: possono assumere.
Data Acquisition System I° Modulo(DAS) Corso di Elettronica1.
Conversione Analogico/Digitale Le grandezze fisiche che vogliamo misurare variano con continuità in un dato intervallo ed in funzione del tempo: sono descrivibili.
Calcolatori Elettronici
CONVERTITORI TENSIONE/FREQUENZA FREQUENZA/TENSIONE
Logica di base e Conversione analogico-digitale Lezione 3 / Prima parte Gaetano Arena e.mail: 1.
Laboratorio II, modulo Conversione Analogico/Digitale ( cfr.
Transcript della presentazione:

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 è 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, REFD Tensioni di riferimento fissate a 2.5 V DACA, DACB, DACC, DACD Tensioni di output VDD LDAC DACA DACB DACC DACD LOAD 4 DAC in un singolo chip: GND REFA REFB REFC REFD DATA DCLK

VDD LDAC DACA DACB DACC DACD LOAD GND REFA REFB REFC REFD DATA DCLK DATA, LDAC, LOAD, DCLK Segnali di Input per programmare il DAC configurazione FPGA Sono controllati dalla FPGA

DCLK DATA A1A0RNG D7 D6D5D4D3D2D1D0 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 DAC0 A1A0 = 01 DAC1 A1A0 = 10 DAC2 A1A0 = 11 DAC3 Codice digitale (è trasmesso prima il MSB) La tensione di output è 11 impulsi

DCLK DATA A1A0RNG D7 D6D5D4D3D2D1D0 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 DCLK DATA LDAC LOAD clk res SW0 Una macchina a stati parte quanto SW0 viene premuto (segnale di inizio configurazione) oGenera un treno di 11 impulsi DCLK oSuccessivamente 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]

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

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 lenable del contatore (CNT_EN) è asserito nello stato S0, a quale valore del conteggio il contatore deve generare Cout?

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]

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

Abbiamo ancora il problema che DAC[10..0] deve essere serializzata Su ogni fronte di salita di DCLK deve essere messo un bit lungo la linea DATA Convertitore parallelo/seriale DCLK DATA A1A0RNG D7 D6D5D4D3D2D1D0 DAC[10]DAC[9]DAC[8]DAC[7]DAC[6]DAC[5]DAC[4]DAC[3]DAC[2]DAC[1]DAC[0]

Stesso contatore usato dalla Macchina a stati

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

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

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?

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 sullinput di clock del FF? Come posso fare? LOAD_SHREG potrebbe essere generato modificando la macchina a stati. Come?

Caricamento dei FF tramite linput PRES dei FF Un inconveniente è che PRES (come RES) è un input asincrono attivo indipendentemente dal segnale di clock

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

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)

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. Limpulso generato dopo è ritardato così di un ciclo di clock

Altra soluzione : usiamo un codice per gli stati in modo tale che da una transizione allaltra 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 bit

Tornando al caricamento dei FF è preferibile un caricamento sincrono Serve un MUX in cui la linea di selezione è LOAD_SHREG

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 Loutput ci dice: che frazione di Vref è linput Vin? o Output: 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] Esempio: se Vin=5.5 V e Vref=8 V Out[2..0] = 101

Risoluzione LADC risolve due tensioni diverse se differiscono per più di 1 V producendo due codici diversi La risoluzione dellADC è 1 V (Vref/2 3 ) Input analogico (Vin) Out[2] Vref(8V)Vcc Out[1] Out[0] gnd Convertitore A/D Vin Out[2..0] 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/2 8 ~31 mV La tensione Vref determina il range dinamico dellADC A parità di bit, minore è la tensione Vref, più fine è la suddivisione dellintervallo 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 tracking Descrizione 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] DCLK DATA LDAC LOAD Vanno ai DAC DAC Vanalog Vin comp sm_ADC 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 = 0 Se Vin < Vanalog comp = 1 Collegamento comparatore- ADC

Soluzione alternativa: aspetta che linterfaccia del DAC asserisca il segnale LOAD che va al DAC

si ripete il ciclo

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

Per uneventuale 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 dellADC. 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 dellADC 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 (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. Lalgoritmo 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 Linput analogico non va direttamente allADC. 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 LADC trasforma il segnale analogico quantizzato nel tempo in un codice digitale (segnale quantizzato)

Nei sistemi più semplici linput analogico è collegato direttamente allADC ADC Output digitale Questo va bene se il segnale varia nel tempo molto più lentamente del tempo richiesto dallADC per effettuare la conversione Input analogico In ogni caso, è il tempo di conversione che quantizza il tempo

Errore di quantizzazione della tensione Al crescere della tensione di input cresce anche lerrore fino a quando cambia il codice

Aggiungiamo un offset pari a 1/2LSB allinput Abbiamo un errore pari a ±1/2LSB

_ Segnale dopo il S/H Errore di quantizzazione in un segnale variabile Output digitale Errore di quantizzatione

Lerrore di quantizzazione appare come un rumore casuale. La quantizzazione aumenta lerrore casuale del segnale Caratteristiche di questo rumore: oDistribuito uniformemente nellintervallo ±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 = LSB Rumore di quantizzazione = 0.29 LSB Rumore totale delloutput digitale Aumento del 50% del rumore già presente nel segnale

Lerrore 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/ 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