SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Progettazione di un convertitore analogico digitale a

           8 bit in architettura multistadio


                 Ing. Nelson Firmani

         Dipartimento di Ingegneria Elettrica
        Università di L’Aquila, AQ 67040, Italy




                                                        1
INDICE


PREMESSA .................................................................................................................................... 3

1      INTRODUZIONE ................................................................................................................. 4
1.1 STRUTTURE DI CONVERTITORI A/D ............................................................................................... 5
1.1.1 CONVERTITORE A/D A RAMPA LINEARE....................................................................................... 5
1.1.2 CONVERTITORE A/D A DOPPIA RAMPA ......................................................................................... 6
1.1.3 CONVERTITORE A/D AD APPROSSIMAZIONE SUCCESSIVA...................................................... 6
1.1.4 CONVERTITORE A/D TIPO FLASH .................................................................................................... 7
1.1.5 CONVERTITORE A/D TIPO HALF -FLASH ....................................................................................... 7
1.2 PRESTAZIONI E SPECIFICHE DEI CONVERTITORI A/D e D/A ................................................. 8
1.3 ERRORE DI QUANTIZZAZIONE .............................................................................................. 10


2     PROGETTO DI UN ADC 8 BITS A 4 STADI ............................................................... 12
2.1 PRINCIPIO DI FUNZIONAMENTO DI UN ADC MULTISTADIO ............................................... 12
2.2 PROGETTO DELL’ADC 8 BITS A 4 STADI...................................................................................... 14
2.2.1 Sub-ADC ................................................................................................................................................ 14
2.2.2 Sub-DAC ................................................................................................................................................ 15
2.2.3 Blocco tensioni di riferimento ................................................................................................................ 16
2.2.4 Blocco residuo-amplificazione ............................................................................................................... 17
2.3 SIMULAZIONI ..................................................................................................................................... 18


3     PARAMETRI STATICI DI UN ADC............................................................................ 21
3.1 CASSIFICAZIONE DEGLI ERRORI STATICI DI UN ADC .......................................................... 21
3.2 METODI PER VALUTARE GLI ERRORI STATICI DI UN ADC................................................. 23
3.2.1 PRIMO METODO: Misura dei punti di transizione e simulazione ..................................................... 23
3.2.2 SECONDO METODO : Code density test (histogram) e simulazione ................................................. 28
3.3 FUNZIONE DI TRASFERIMENTO DELL’ADC PROGETTATO ................................................ 34

CONCLUSIONI..................................................................................................................................... 36

APPENDICE ........................................................................................................................................... 38

BIBLIOGRAFIA ................................................................................................................................... 40




                                                                                                                                                               2
Simboli e abbreviazioni


ABBREVIAZIONE   DESCRIZIONE


A/D             Analog to Digital
ADC             Analog to Digital Converter
AMPS            Advanced Mobile Phone System
[b0…b7]         Bit d’uscita dell’ADC
CODE            Codice in uscita dell’ADC
D-AMPS          Digital AMPS
DC              Direct Current
DNL             Differential Non-Linearity
GSM             Global System for Mobile Comunication
INL             Integral Non-Linearity
LSB             Least Significant Bit
MSB             Most Significant Bit
SA              Successive Approximation
SNR             Signal to Noise Ratio
V[j]            Tensioni nei punti di transizione di codice
Vdac            Tensione all’uscita del DAC
Vin             Tensione all’ingresso dell’ADC
VFS             Tensione di fondo scala
Vrif            Tensione di riferimento




                                                              3
PREMESSA




Oggetto del seguente lavoro è la progettazione di un convertitore analogico digitale a 8 bit

                           utilizzando l’architettura multistadio.

Il pregio di questa architettura rispetto ad una architettura tipo FLASH con gli stessi bit di

                        risoluzione è la bassa complessità circuitale

              che rende adatto questo tipo di convertitore A/D in tutte quelle

      applicazioni dove è necessario alta integrabilità e basso consumo di potenza.

           Tutto questo a spesa di una riduzione nella velocità di conversione.




                                                                                                 4
1   INTRODUZIONE


La tendenza dei moderni sistemi di comunicazione è di rendere qualsiasi cosa digitale. Solo 15 anni
fa la tecnologia radiomobile era dominata dai sistemi analogici TACS, NMT, AMPS. Questi sistemi
sono ora completamente sostituiti dai sistemi digitali GSM e D-AMPS.
Le ragioni di questo cambiamento sono:

    •   La rapida evoluzione tecnologica dei settori dell'elaborazione digitale dei segnali e
        l'integrazione dei componenti elettronici per effetto della disponibilità dei circuiti integrati
        VLSI.

    •   L’informazione può essere compressa inoltre si può utilizzare una frequenza per servire piú
        utenti, tramite l'utilizzo di tecniche TDM (Time Division Multiplexing)

    •   I sistemi digitali sono meno sensibili a rumore ed interferenze.

    •   Maggiore sicurezza nella trasmissione dati e maggiore riservatezza dei dati è consentito
        grazie agli algoritmi di cifratura

    •   L’informazione non solo può essere compressa o criptata ma può essere facilmente elaborata
        da software.

Quindi per tutte queste ragioni oggi l’informazione analogica, come suoni e immagini, viene
convertita in segnale digitale mediante circuiti detti convertitori analogici-digitali (ADC), quindi
elaborata e riconvertita mediante convertitori digitali-analogici (DAC).
E più la comunicazione è digitale più cresce la domanda di ADC e DAC dalle caratteristiche
performanti: alta velocità di conversione, alta risoluzione, basso costo di produzione, basso
consumo di potenza.
In questa tesina dopo una prima parte introduttiva dove vengono descritte le principali tecniche di
conversione A/D nonchè i parametri che descrivono le prestazioni di un ADC, si procede alla
realizzazione di un ADC a 8 bits quindi alla verifica del funzionamento mediante simulazione.
E’ da tenere presente che non spendiamo particolare risorse nella progettazione dell’ADC a 8 bits,
in quanto non abbiamo specifiche restrittive in termini di velocità, precisione o consumo di potenza
da rispettare. Anche perché scopo di questa tesina non è tanto nella realizzazione di un ADC dalle
caratteristiche peculiari, bensì è quello di mettere in evidenza i metodi che si impiegano per
misurare (testare) le prestazioni dei convertitori A/D.




                                                                                                           5
1.1 STRUTTURE DI CONVERTITORI A/D

In questa sezione descriviamo brevemente alcune strutture di convertitori A/D, informazioni più
dettagliate possono essere trovate in [2], [3], [16].
Esistono diversi tipi di ADC, ma il principio di funzionamento può essere schematizzato come in
figura 1.1. L’elemento fondamentale è il comparatore, che confronta il segnale in ingresso con un
segnale generato localmente e rivela quale dei due è più grande fino a che quest’ultimo non diventa
uguale al segnale in ingresso. Il generatore locale del segnale di confronto può essere realizzato con
una rete a pesiera o con un circuito a rampa lineare, mentre i circuiti sequenziali di controllo sono
un insieme di circuiti logici che, a seconda del segno della tensione in uscita al comparatore, danno
i comandi al registro di conteggio.




                         Figura 1.1 Principio di funzionamento di un ADC




1.1.1 CONVERTITORE A/D A RAMPA LINEARE


 In questo caso il generatore del segnale di confronto è
 un generatore di rampa lineare. In uscita al comparatore
 si ottiene un impulso rettangolare che inizia
 contemporaneamente alla rampa e termina quando
 questa eguaglia il segnale d’ingresso. La durata di questa
 impulso è perciò proporzionale al valore della tensione
 di ingresso. Un registro di bistabili conta i periodi di un
 oscillatore compresi entro la durata dell’impulso,
 durante il quale la porta lineare è aperta. Tale numero
 costituisce l’uscita del ADC ed è proporzionale al valore
 della tensione d’ingresso. La precisione e la risoluzione
 del ADC dipendono fondamentalmente dall’oscillatore e
 dal generatore di rampa.




                                                                                                     6
1.1.2 CONVERTITORE A/D A DOPPIA RAMPA


 Questo tipo di convertitore viene spesso impiegato in
 voltmetri digitali. Vediamone il funzionamento:
 All’inizio del processo (t=0) S1 è collegato alla tensione
 Va da convertire e l’integratore genera una rampa
 decrescente (Vo=-(t/t)Va). Il contatore viene
 incrementato dagli impulsi Ck fino a quando il FFn è
 portato con uscita Q=1 e tutti i bistabili del contatore
 sono nuovamente azzerati. In questo istante (t=T1) S1 si
 collega a -Vr e l’integratore genera una seconda rampa,
 questa volta crescente (Vo=-(t/t)Vr). Nuovamente il
 contatore è incrementato dagli impulsi Ck fino a quando
 Vo=0 ed il comparatore inibisce la porta G1. Si può
 dimostrare che il numero registrato nel contatore è
 proporzionale alla tensione Va ed indipendente dalla
 costante di tempo t .




1.1.3 CONVERTITORE A/D AD APPROSSIMAZIONE SUCCESSIVA


 Principio di funzionamento:
 Nel ADC per successive approssimazioni i circuiti
 sequenziali di controllo sono più complicati e
 permettono la generazione di un segnale che si confronta
 con l’ingresso a partire dal MSB (bit più significativo)
 fino al LSB (bit meno significativo) secondo la sequenza
 riportata in figura.
 In questo modo si raggiungono velocità di conversione
 più elevate ed indipendenti dal valore del segnale
 d’ingresso (infatti ogni conversione necessita di n
 periodi d’orologio, se n è il numero di bit di
 conversione).




                                                              7
1.1.4 CONVERTITORE A/D TIPO FLASH


 Questo tipo di ADC garantisce la massima velocità di
 conversione a discapito della complessità circuitale e
 quindi del costo. Infatti occorrono ben 2^n-l
 comparatori per convertire un segnale analogico in un
 numero di n bit.
 In figura è rappresentato un ADC FLASH a 3 bit. Il
 campo di variazione dell’ingresso viene suddiviso in 8
 fasce (2^n con n=3) ed i comparatori determinano il
 numero di soglie che vengono superate dal segnale da
 convertire. Un codificatore di priorità genera il numero
 binario di uscita secondo la tabella di verità mostrata
 in figura.




1.1.5 CONVERTITORE A/D TIPO HALF -FLASH


 I convertitori flash sono ottimi per il funzionamento ad
 alta velocità, ma la quantità di comparatori limita la
 risoluzione.
 I convertitori di tipo half flash utilizzano invece un
 processo a due stadi per raggiungere risoluzioni
 maggiori di quelle dei convertitori flash, oppure per
 raggiungere la stessa risoluzione con minori
 dimensioni del die. In altre parole l’ADC HALF
 FLASH sacrifica la velocità di conversione (dimezza
 circa rispetto al FLASH) ma diminuisce notevolmente
 la complessità circuitale. Infatti volendo realizzare un
 ADC 8bit FLASH sono necessari 2^8-1=255
 comparatori mentre utilizzando un’architettura HALF
 FLASH occorrono 2*(2^4-1)=30 comparatori.




                                                            8
1.2 PRESTAZIONI E SPECIFICHE DEI CONVERTITORI A/D e D/A

Per valutare le qualità di un convertitore A/D o D/A si deve possedere una piena conoscenza dei
seguenti parametri:


   •   Risoluzione (resolution)
       Per gli ADC è definita come la più piccola variazione di ingresso che fa commutare l’uscita
       ad un codice immediatamente successivo.
       Per i DAC è definita come la variazione di tensione che si ha in uscita quando il codice
       d’ingresso passa ad un codice immediatamente successivo.
       La risoluzione può essere espressa in bit o in % del fondo scala. Un convertitore ad N bit è
       in grado di convertire una informazione in 2^N combinazioni, così la risoluzione sarà ½^N.
       Es: N=10 ½^10=0.000977 => 0.0977%

   •   Precisione (accurancy)
       Negli ADC definisce la differenza tra l’effettivo segnale d’ingresso e il fondo scala
       equivalente del codice binario di uscita. Se un ADC a 12 bit ha una precisione stabilita di
       ±1LSB la sua precisione sarà pari a ±0.0245% cioè 2 volte il minimo errore possibile di
       quantizzazione.
       La precisione serve per avere un’idea di quanto il risultato è attendibile. Essa è la somma di
       tutti i possibili errori. Un DAC a 12 bit non potrebbe avere una precisione superiore ad
       ±1/2LSB cioè ±0.0122% del fondo scala. Da notare che ±0.0122% rappresenta la deviazione
       dal valore vero, cioè la precisione è pari a 99.9878%.

   •   Errore di quantizzazione (quantizing Error)
       E’ la massima deviazione da una funzione di trasferimeto a linea retta di un ADC perfetto.
       L’errore può essere ridotto a zero solo se (teoricamente) si porta ad infinito il numero di bit.
       (vedi paragrafo 1.3)

   •   Velocità di conversione (conversion rate)
       E’ la rapidità con la quale un ADC o un DAC può fare conversioni.
       Essa può essere espressa come numero di conversioni/sec oppure il tempo necessario per
       eseguire una conversione.
       Spesso è riferita ad una risoluzione inferiore a quella totale in modo da risultare falsamente
       elevata.

   •   Tempo di assestamento (settling time)
       Tale parametro riguarda i convertitori DAC, specifica il tempo intercorso tra una transizione
       di codice e l’istante in cui l’uscita è sufficientemente prossima al suo valore finale.

   •   Velocità di risposta (slew rate)
       La velocità di risposta riguarda soprattutto l’amplificatore d’uscita di un DAC. Esso non
       può fornire in uscita il valore di tensione corretto all’istante.

   •   Glitches
       Se la commutazione di un bit ha velocità diversa da quella degli altri, si ha il passaggio per
       stati digitali non voluti che sull’uscita analogica si presentano come brevi impulsi o “glitch”




                                                                                                        9
•   Errore di fuori zero (offset error)
       Negli ADC è la tensione richiesta in ingresso per fissare in uscita il codice zero.
       Nei DAC è la tensione di uscita con codice zero in ingresso.

   •   Errore di guadagno (gain error)
       Negli ADC è lo scostamento dal valore teorico del segnale d’ingresso per un codice di
       uscita di fondo scala.
       Nei DAC è la deviazione dal valore teorico del segnale d’uscita per un dato codice di
       ingresso, di solito di fondo scala

   •   Errore di non linearità
       Sono quelli che portano ad un deviazione da una curva di trasferimento lineare, riguarda sia
       gli ADC che i DAC.


Gli errori di non linearità insieme agli errori di offset e di guadagno costituiscono i parametri statici
di un ADC. Un analisi dettagliata di questi parametri e i metodi di valutazione verrà fatta nel
capitolo 3.




                                                                                                       10
1.3 ERRORE DI QUANTIZZAZIONE


Il segnale di ingresso di un ADC è un segnale continuo con un infinito numero di possibili stati,
mentre l’uscita digitale è una funzione discreta con un numero di stati differenti determinato dalla
risoluzione dell’ADC.
Ne segue che nella conversione A/D parte del segnale analogico d’ingresso viene rappresentato
dallo stesso codice digitale in uscita. In altre parole parte dell’informazione all’ingresso dell’ADC
va persa nella conversione.
Quindi nel processo di quantizzazione (rappresentazione o meglio approssimazione del segnale
analogico d’ingresso mediante un segnale costituito da ampiezze discrete) si introduce un errore
(errore di quantizzazione).




Figura 1.1 Errore di quantizzazione




Consideriamo la funzione di trasferimento ideale di un ADC (figura 1.1a).
Possiamo definire l’errore di quantizzazione al j-esimo passo la grandezza:

Ej=Vin-Vj

I valori assunti dalla variabile Ej saranno compresi nell’intervallo ± ½ LSB o ± ½ q dove q è
l’ampiezza di un passo (figura 1.1b).
Se q è sufficientemente piccolo, è ragionevole ritenere Ej una variabile aleatoria uniformemente
distribuita su q con una funzione di densità di probabilità data da:




                                                                                                    11
1                  q      q
p(ε) =                  −     ≤ε ≤
         q                  2      2

p(ε) = 0                altrove


Pertanto possiamo determinare il valore quadratico medio dell’errore di quantizzazione:

             q/2
   1           q2
σ = ∫ ε 2 dε =
  2

   q −q / 2    12

Questo risultato ci permette di valutare il rapporto segnale rumore (SNR) di un ADC ideale. Se
consideriamo un segnale di ingresso sinusoidale:

Vin(t ) = A ∗ sin(ωt )

la cui potenza è:

                   2π
         1                              A2
P( s) =            ∫ A sin (ϖt )dt =
                      2   2

        2π         0
                                        2

si ha:

                            P( s)           A2 / 2                          2A     A
SNR (dB ) = 10 log                 = 10 log 2             ma   q = 1LSB =       = n −1
                            P (ε )         q / 12                           2 n
                                                                                 2

sostituendo:

                            3 ⋅ 2 2n
SNR (dB ) = 10 log(                  ) = 6.02n + 1.76dB
                                2

Questo è il valore ideale per un ADC a n bit.
Il risultato mette in evidenza che ogni bit di risoluzione in più fornisce un miglioramento nel SNR
di circa 6dB.

OSSERVAZIONI:
Gli errori di non linearità provocano una riduzione nel SNR, infatti supponiamo una forte non
linearità differenziale che provoca un missing code. Questo è equivalente a una riduzione di 1bit di
risoluzione e cioè ad una riduzione di 6dB nel rapporto segnale rumore (SNR).




                                                                                                  12
2   PROGETTO DI UN ADC 8 BITS A 4 STADI


Questo capitolo inizia con una trattazione teorica del principio di funzionamento di un ADC
multistadio. Dopo aver analizzato le caratteristiche i vantaggi e gli svantaggi di questa struttura si
passa al progetto di un ADC 8 bits a 4 stadi e quindi alla trattazione delle singole parti – sub ADC –
sub DAC e blocco amplificatore-residuo. Infine si procede alla verifica del funzionamento
mediante simulazione.



2.1 PRINCIPIO DI FUNZIONAMENTO DI UN ADC MULTISTADIO

Come nell’ADC HALF FLASH la conversione avviene in 2 passi, nell’ADC multistadio la
conversione avviene in più passi. In altre parole possiamo vedere ogni stadio come un ADC a bassa
risoluzione, quindi collegando più stadi possiamo ottenere una risoluzione più fine.




Figura 2.1 Flowchart di come lavora un ADC MULTISTADIO


In figura 2.1 è mostrato in un flowchart come lavora un ADC MULTISTADIO (in questo caso per
semplicità supponiamo 1 bit per stadio).
Nel primo passo (i=0) otteniamo il bit più significativo b0 (MSB). Se l’ingresso è maggiore del
livello di riferimento allora b0=1 inoltre si calcola il residuo sottraendo l’ingresso dal livello di
riferimento. Il residuo è moltiplicato per 2^B (in questo caso un bit per stage => B=1) e riportato
all’ingresso per il secondo passo. Sempre in figura 2.1 si può vedere come l’uscita digitale si forma
durante i vari passi ovvero nei diversi stadi.
In figura 2.2 è mostrato la struttura di un ADC MULTISTADIO il principio di funzionamento è il
seguente:
In primo luogo viene eseguita una quantizzazione approssimativa dell’ingresso (normalmente con
un convertitore flash a B bits ‘sub-ADC’). L’uscita digitale del sub-ADC è applicata ad un


                                                                                                   13
convertitore D/A (sub-DAC) che genera un’uscita analogica Vdac, quindi si determina il residuo
sottraendo dal segnale d’ingresso il segnale all’uscita del sub-DAC (RESIDUO=Vin-Vdac).
Il residuo è quindi amplificato e applicato allo stadio successivo. Le tre fasi precedenti sono
ripetute ciclicamente fino all’ultimo stadio che fornisce i bits meno significativi del codice digitale
formatosi nei vari stadi (codice digitale che rappresenta il segnale analogico dell’ingresso).




Figura 2.2 Struttura di un ADC MULTISTADIO



I vantaggi di questa struttura rispetto ad una struttura tipo FLASH con gli stessi bit di risoluzione
sono:
    • Bassa complessità hardware (ad esempio per un ADC ad N bit a M stadi sono necessari
            (         )
        M ∗ 2 N / M − 1 comparatori invece di 2 N − 1 necessari per un ADC flash ad N bits)
    • Basso consumo di potenza
    • Alta integrabilità.

Gli svantaggi sono:

   •   La velocità di conversione diminuisce con l’aumentare degli stadi
   •   La velocità di conversione è limitata dall’amplificatore.
   •   Le cause di errore non risiedono soltanto nei comparatori (errore di offset) ma anche nel
       convertitore D/A, nel dispositivo impiegato per calcolare il residuo e nell’amplificatore




                                                                                                        14
2.2 PROGETTO DELL’ADC 8 BITS A 4 STADI

In figura 2.3 è presente lo schema elettrico dell’ADC 8 bit a 4 stadi. Possiamo suddividere l’analisi
dello schema in 4 punti:

   •   Blocco sub-ADC
   •   Blocco sub-DAC
   •   Blocco residuo-amplificazione




2.2.1 Sub-ADC

Il blocco sub-ADC è costituito da un ADC di tipo flash (figura 2.4). Tutti i comparatori hanno un
ingresso in comune (Vin), mentre l’altro ingresso è collegato ad una tensione di riferimento (v1,v2,
v3). Se l’ingresso analogico è superiore al riferimento di un comparatore, la sua uscita è alta; in
caso contrario, l’uscita è bassa. Infine un circuito di codifica (U1) esamina le transizioni fra le uscite
alte e basse dei comparatori, codificandole in modo da ottenere un’uscita digitale (bit1,bit0). Il
numero dei comparatori dipende dalla risoluzione (B bits) del sub-ADC:

Numero comparatori = numeri livelli di rif. – 1 = 2 B − 1

Per minimizzare il ritardo di ogni stadio e il consumo di potenza dell’ADC la risoluzione di ogni
stadio dovrebbe essere mantenuta piccola (minore di 4bit ,con 4bit sono richiesti 15 comparatori per
stadio). Questo perché il numero di comparatori nel sub-ADC cresce esponezialmente con il
numero di bit di risoluzione. Un grande numero di comparatori determina un maggior consumo di
potenza, più spazio nel chip, rallenta il circuito e produce un carico maggiore all’uscita dello stadio
precedente.
Nel nostro progetto usiamo una risoluzione per stadio pari a 2 bits (B=2) quindi abbiamo 3 livelli di
riferimento e sono necessari 3 comparatori.
La scelta (progetto) del comparatore va fatto tenendo conto di alcune specifiche:



   •   Il tempo di comparazione deve essere molto piccolo.

   •   La tensione di OFFSET del comparatore deve essere la più piccola possibile (in genere si
       richiede che sia <1/2LSB dell’ADC, quindi per un ADC a 8 bits con un fondo scala di 5V
       (VFS=5V) si ha che OFFSET<1/2*(5/2^8)=9.8mV)

   •   Il consumo di potenza deve essere il più piccolo possibile

   •   Infine bisogna tener conto del carico d’ingresso del sub-DAC che il comparatore va a
       pilotare.



La scelta del comparatore è caduta sul noto LM311.
LM 311 non è un comparatore molto veloce (il tempo di risposta è di 200ns contro i 40ns del
LM106 o del LM710) ma in compenso è più stabile, non vengono innescate oscillazioni spurie

                                                                                                       15
inoltre LM311 presenta una tensione di offset massima di 7.5mV quindi inferiore a 1/2LSB
(9.8mV) dell’ADC 8bit.
Infine l’uscita del LM311 è compatibile con i segnali delle porte logiche TTL quindi non presenta
problemi nell’interfacciamento con l’encoder 74F148.




2.2.2 Sub-DAC

Il sub-DAC (figura 2.5) riceve all’ingresso il codice digitale del sub-ADC, e il corrispondente
valore analogico d’uscita (Vdac) viene sottratto dal segnale d’ingresso dello stadio considerato per
formare il segnale (residuo) inviato all’ingresso dello stadio successivo.
Poiché usiamo 2 bit per stadio è necessario avere un DAC a 2 bit in ogni stadio. Quindi abbiamo
2^2-1=3 livelli di tensione di riferimento (v1, v2, v3) che creano l’uscita del sub_DAC (Vout)
secondo la parola binaria di lunghezza 2 bits posta all’ingresso (bit0, bit1) del decoder 74F139.




Un problema da tener conto nella progettazione del sub_DAC è la formazione dei cosidetti
“glitches” impulsi spuri determinati dalla differenza nei tempi di propagazione dei segnali nel
circuito. Consideriamo ad esempio la transizione dell’ingresso digitale del DAC da codice b1b0=10
a b1b0=01, bene se la commutazione di b0 avviene un’istante prima di b1 in quell’istante si crea un
ingresso digitale ‘11’ non voluto “glitches”.
Questi glitches oltre ad aumentare il consumo di potenza del convertitore causa un aumento del
tempo di assestamento (settling time) e quindi una riduzione della velocità di conversione.




                                                                                                  16
2.2.3 Blocco tensioni di riferimento

Sia nel Sub-ADC che nel Sub-DAC abbiamo bisogno di tensioni di riferimento. Queste tensioni
possono essere generate ai capi di 2^N resistori (nel nostro caso N=2 quindi 4 resistori) connessi
come in figura.

                                                                               k

                                                                              ∑ Ri
                                                                      Vrk =   i =1
                                                                              2N
                                                                                     Vrif
                                                                              ∑ Ri
                                                                              i =1




La non idealità delle tensioni di riferimento influenza la distribuzione delle occorrenze dei codici di
uscita dell’ADC in altre parole accentua gli errori di non linearità dell’ADC.
Le cause della non idealità delle tensioni di riferimento sono: resistori non ideali, dipendenza dalla
temperatura e variazioni della tensione di alimentazione.




2.2.4 Blocco residuo-amplificazione

L’operazione che deve compiere questo blocco è sottrarre dal segnale d’ingresso V(+) il segnale
proveniente dal Sub-DAC V(-) quindi amplificare il tutto per 2^2=4



Residuo = V(+) – V(-)

Vd = [V (+ ) − V (−)] ∗ 2 2



Si utilizza due amplificatori operazionali in cascata.
Il primo in configurazione invertente cambia di segno al segnale d’ingresso V(+) portandolo a
V0 = -V(+).
Il secondo effettua la somma tra V0 = - V(+) e V(-) e amplifica di 2^2, inoltre essendo in
configurazione invertente cambia di segno al segnale di uscita Vd:

Vd = −[−V (+ ) + V (−)] ∗ 2 2 = [V (+ ) − V (−)] ∗ 2 2

che è quanto si voleva.




                                                                                                     17
1) stadio amplificatore op. in configurazione invertente con A=-1


                R2
       V0 = −      ∗ V (+)
                R1

        R 2 = R1 ⇒ V 0 = −V (+ )


   2) stadio sommatore segnali


    IR3 + IR5 = IR 4
    V (−) − VN V 0 − VN VN − Vd
                +       =
         R3          R5     R4
    Aideale → ∞ ⇒ massavirtuale ⇒ VN = 0 ⇒
    V ( −) V 0     Vd
          +     =−
     R3      R5     R4

    se R3=R5=R si ha :

                ∗ [V (−) + V 0]                                         [V (+) − V (−)]
             R4                                                      R4
    Vd = −                         ma V0=-V(+) quindi :       Vd =
             R                                                       R

     con R4=4R        si   ha : Vd = 4 ∗ [V (+ ) − V (−)]



Considerazioni:
Il blocco residuo-amplificazione rappresenta una reale limitazione alla velocità di conversione
dell’ADC.
Inoltre le non idealità dell’amplificatore operazionale (si pensi alla tensione di offset) determinano
errori nel calcolo del residuo che si propagano nei vari stadi, questo determina un aumento della
non linearità differenziale del convertitore A/D.
Come ampl. operazionale si è scelto LF411 grazie soprattutto all’alta velocità (slew rate: 15V/us) e
alla bassa tensione di offset (0.8 mV) nonché per l’alta impedenza di ingresso e l’ampia larghezza
di banda.




                                                                                                    18
2.3 SIMULAZIONI

Riassumiamo brevemente le caratteristiche di progetto dell’ADC di figura 2.3 :

   •   Uscita digitale a 8bits (risoluzione N=8bits)
   •   Formato unipolare delle tensioni di riferimento.
   •   Campo di variabilità dell’ingresso analogico da 0V a 5V (VFS=5V è la tensione di fondo
       scala)
                                                                 VFS 5V
   •   Ampiezza massima dell’errore di quantizzazione è 1LSB = N = 8 = 19.53mV
                                                                  2    2

Da quest’ultimo dato ci aspettiamo la commutazione dell’uscita digitale ad un codice
immediatamente successivo quando la tensione dell’ingresso analogico subisce una variazione di
1LSB=19.53mV.




Verifichiamo il funzionamento dell’ADC progettato mediante simulazione.
Una prima simulazione consiste nella misura approssimativa del tempo di conversione.




Figura 2.9 Tempo di conversione dell’ADC

                                                                                                19
Dal tracciato della simulazione (figura 2.9) si nota che l’uscita digitale si stabilizza dopo 1.7 us.
Nelle simulazioni successive verifichiamo la corretta conversione analogica digitale (figura 2.10 e
figura 2.11) applicando all’ingresso dell’ADC diversi livelli di tensione di durata di 2us e leggendo
il corrispondente codice digitale di uscita:
In figura 2.10 si può ad esempio osservare che quando il livello di tensione d’ingresso passa da 0 a
20 mV (≅1LSB) l’uscita digitale dal codice 00000000 passa al codice 00000001.




Figura 2.10 Conversione A/D con livelli di tensione di ingresso cha vanno da 0 a 1V




                                                                                                  20
Figura 2.11 Conversione A/D con livelli di tensione di ingresso cha vanno da 0 a 5V



Dai tracciati di figura 2.10 e 2.11 risulta una corretta conversione A/D per tutti i livelli del segnale
di ingresso che abbiamo scelto.




                                                                                                     21
3   PARAMETRI STATICI DI UN ADC

In questo capitolo dopo una trattazione teorica degli errori statici di un ADC verranno presentati
due metodi per la loro valutazione. Quindi si procede alla simulazione dell’ADC 8bits a 4 stadi
da noi progettato. Dai dati della simulazione e con l’ausilio del software matematico matlab
valutiamo i parametri statici dell’ADC mediante un algoritmo che esegue i metodi descritti.
Infine si procede ad una analisi dei risultati ottenuti.


3.1 CASSIFICAZIONE DEGLI ERRORI STATICI DI UN ADC

•   GAIN ERROR (Errore di guadagno)
•   OFFSET ERROR (Errore di offset)
•   DNL (Errore di non linearità differenziale)
•   INL (Errore di non linearità integrale)




    Offset error:
    E’ il valor medio di tensione richiesto
    in ingresso per fissare in uscita il
    codice zero.
    E’ causato dall’amplificatore o
    dall’ingresso di tensione e di corrente
    offset del comparatore. L’errore di
    offset è molto importante nei sistemi
    DC (es. voltmetro digitale). Esso può
    essere espresso in % del fondo scala
    (%FSR) o in frazione di LSB.




    Gain error:
    E’ la massima deviazione della curva
    caratteristica dell’ADC dalla curva
    ideale per un codice di uscita di fondo
    scala. Esso può essere causato da vari
    fattori :
    errori nelle tensioni di riferimento, dal
    passo standard delle resistenze di
    riferimento, dal guadagno
    dell’amplificatore ecc.
    Può essere minimizzato regolando il
    guadagno dell’amplificatore o la
    tensione di riferimento.

                                                                                               22
Errore di non linearità differenziale:
I gradini della caratteristica di
conversione dovrebbero avere
larghezza pari a s1=1LSB, ma nella
caratteristica reale i gradini hanno
larghezza s2, diversa da s1. La
differenza s1-s2 è l’errore di non
linearità differenziale.
In presenza di forte non linearità
differenziale, un gradino può essere
totalmente assorbito da quelli adiacenti
e il codice corrispondente al gradino
eliminato viene perso “missing code
(codice mancante)”




Errore di non linearità integrale:
E’ una misura di come la funzione di
trasferimento dell’ADC
complessivamente devia da una
funzione di trasferimento
perfettamente lineare.
La INL può essere determinata anche
mediante l’integrazione degli errori
DNL.

Considerazioni:
L’importanza della INL o DNL
dipende dall’applicazione dell’ADC.
Se la precisione è fondamentale
(esempio nella misura di tensione o
corrente in un processo industriale)
allora la INL è più importante. Ma in
un’applicazione audio la INL
rappresenta un errore complessivo di
amplificazione che è poco rilevante
mentre la DNL da una migliore idea
delle distorsioni udibili prodotte
dall’ADC




                                           23
3.2 METODI PER VALUTARE GLI ERRORI STATICI DI UN ADC

Il primo metodo consiste nell’aumentare il segnale di ingresso analogico dell’ADC lentamente,
quindi memorizzare il valore dell’ingresso analogico quando l’uscita digitale cambia (punto di
transizione). Dai punti di transizione si può calcolare l’errore di offset, l’errore di guadagno e
l’errore di non linearità differenziale e integrale.
Il secondo metodo (metodo statistico) consiste nell’applicare un segnale noto (es. onda triangolare,
onda sinusoidale) all’ingresso analogico del convertitore e misurare il numero delle occorrenze di
ogni codice. Dall’istogramma ottenuto possiamo determinare la non linearità differenziale e la non
linearità integrale dell’ADC. Per avere un risultato affidabile è necessario un numero
sufficientemente grande di occorrenze quindi la frequenza del segnale d’ingresso non è del tutto
arbitraria. In genere si utilizza come segnale d’ingresso un onda sinusoidale in quanto si può
rilevarne l’esatta ampiezza di banda.




3.2.1 PRIMO METODO: Misura dei punti di transizione e simulazione


   •   Applicare un segnale lentamente variabile all’ingresso analogico dell’ADC (Figura 3.1)
   •   Quindi memorizzare i valori dell’ingresso analogico Vin quando l’uscita digitale cambia di
       1LSB (es. da 0010 a 0011)
   •   I valori memorizzati costituiscono i punti di transizione dell’uscita digitale:




Figura 3.18 Caratteristica di un ADC con un range d’ingresso unipolare. In evidenza i punti di
transizione della Vin (V[j]) tra il codice j-1 e il codice j




                                                                                                  24
Calcolo dei parametri statici dai punti di transizione

Consideriamo un ADC con un range d’ingresso unipolare (Vin va da 0V a VREF) e con N bits di
risoluzione.
Siano V[j] j = 1…2^N-1 i punti di transizione ovvero le tensioni misurate all’ingresso dell’ADC
quando si verifica la transizione tra il codice j-1 e il codice j.
Definiamo inoltre:

VZS = V[1] è la tensione Vin nella transizione tra il codice zero e il codice successivo (fig. 3.18)

VFS_1=V[2^N-2] è la tensione Vin nella transizione tra il codice di FS meno 1 e il codice FS

LSB (in volt) = VREF/2^N è l’ampiezza teorica della tensione di 1 LSB

ALSB (in volt) = (VFS_1-VZS)/(2^N-2) è l’attuale ampiezza della tensione di ogni LSB.




                                   VZS − 0.5 ∗ LSB
   •   Offset Error (in LSB) =
                                        LSB

   •   Gain Error (in LSB) =
                                  [VREF − 2 ∗ LSB − (VFS _ 1 − VZS )]
                                                       LSB

                             V [ j + 1] − V [ j ]
   •   DNL[j] (in LSB) =                          −1
                                   ALSB

   •   INL[j] (in LSB) =
                             [V [ j ] − ( ALSB ∗ ( j − 1) + VZS )]
                                            ALSB



E’ da osservare che nel calcolo di offset error e di gain error compare LSB mentre nel calcolo di
DNL e INL compare ALSB.
Questo perché nelle specifiche di molti ADC si assume che offset e gain error siano riferiti a un
ideale LSB mentre INL e DNL siano riferiti a un reale LSB. Comunque la differenza tra ALSB e
LSB è tipicamente molto piccola.



SIMULAZIONE

Di seguito vengono riportate le opzioni da abilitare nello SPICE per la simulazione e la
registrazione in un file ascii (out.vec) dei dati necessari per il calcolo dei punti di transizione e
quindi dei parametri DNL e INL secondo il metodo appena descritto.
In figura 3.1 è presente il tracciato della simulazione mentre in figura 3.2 si può osservare il grafico
della DNL e INL.



                                                                                                       25
SIMULAZIONE SPICE

                                                                          File out.vec
                                                                          * Created by PSpice
Abilitando l’opzione capture test                                         HEX( b7 b6 b5 b4 ) HEX( b3 b2 b1 b0 )
vector (vedi figura 3.3) e
utilizzando il dispositivo vector                                         0s      00
(vedi figura 3.4) viene generato il                                       1.989us    01
file out.vec contenente gli istanti                                       9.989us    02
di transizione dei codici                                                 15.525us 03
                                                                          19.903us 04
                                                                          25.989us 05
                                                                          32.989us 06




                                                                          File out.dat
Con un editor ascii adattiamo il
file out.vec in modo tale da essere
caricato dal software matematico                                          0          00
matlab e quindi mediante il                                               1.989*e-6   01
programma di figura 3.5 si calcola                                        9.989*e-6   02
DNL e INL                                                                 15.525*e-6 03
                                                                          19.903*e-6 04
                                                                          25.989*e-6 05
                                                                          32.989*e-6 06




Figura 3.3 Opzioni da abilitare per catturare in un file ascii gli istanti di transizione
             (da 0s fino a 16.7ms)



                                                                                                        26
Figura 3.4 Il dispositivo vector da collegare all’uscita del’ADC. Questo dispositivo, durante la
               simulazione, registra in un file ascii gli istanti di transizione di codice




       % Programma per calcolare e graficare DNL e INL
       clear;
       % Il segnale di ingresso è una rampa lineare: v0(t0=0)=0V;
       v1(t1=0.0167s)=5V
       v1=5; t1=0.0167;
       lsb=5/(2^8);
       %Carica il file out.dat , matlab vede la variabile out come un array
       rettangolare
       load out.dat
       %Calcolo dei punti di transizione V[i]
       for i=1:255, v([i])=out([i,1])*v1/t1 ;end
       %Calcolo della dnl e inl
       for i=1:255
       dnl([i])=(v([i+1])-v([i]))/lsb-1;
       inl([i])=((v([i])-lsb*(i-1))+v([1]))/lsb;
       end
       xlabel(‘Codice’);
       ylabel(‘INL & DNL’);
       plot((1:255),dnl,’b’,(1:255),inl,’r’);



Figura 3.5 Programma per calcolare e graficare DNL e INL dell’ADC.

                                                                                                   27
Figura 3.1 Simulazione dell’ADC con un segnale d’ingresso a rampa lineare


               0 .2 5

                 0 .2

               0 .1 5

                 0 .1

               0 .0 5
      DNL




                    0

              - 0 .0 5

                -0 .1

              - 0 .1 5

                -0 .2

              - 0 .2 5


                         0     5 0              1 0 0                 1 5 0         2 0 0           2 5 0
                                                         C o d ic e



                 0 .5

               0 .4 5

                 0 .4

               0 .3 5

                 0 .3
        INL




               0 .2 5

                 0 .2

               0 .1 5

                 0 .1

               0 .0 5

                     0
                         0     5 0               1 0 0                1 5 0         2 0 0           2 5 0
                                                         C o d ic e




Figura 3.2 Grafico della DNL (in LSB) e INL (in LSB) ottenuti mediante il programma di figura 3.5

                                                                                                    28
3.2.2 SECONDO METODO : Code density test (histogram) e simulazione


Nel code density test, la conoscenza della distribuzione delle ampiezze del segnale di ingresso (Vin)
permette di stimare il numero di occorrenze ideali dei codici digitali.
Una qualsiasi deviazione delle occorrenze misurate dalle occorrenze ideali denota un errore di non
linearità differenziale. I passi dacompiere nel code density test sono:

   •   Applicare un segnale noto all’ingresso analogico dell’ADC quindi memorizzare i codici
       all’uscita digitale.

   •   Misurare il numero delle occorrenze di ogni codice

   •   Comparando le occorrenze osservate (observed[i]) di ogni codice, dalle occorrenze ideali
       (ideal[i]) si può calcolare l’errore di non linearità differenziale (DNL[i]) e l’errore di non
       linearità integrale(INL[i]) mediante le formule:

                   observed [i ] − ideal[i ]
   •   DNL[i] =
                         ideal[i ]

                   i
   •   INL[i] =   ∑ DNL[ j ]
                  J =1
                                               (INL= ∫ DNL )




SIMULAZIONE


Applichiamo all’ingresso dell’ADC un segnale sinusoidale di f = 60Hz.
Dopo aver settato le opzioni nello spice secondo come mostrato in appendice A avviamo la
simulazione.
Dal tracciato della simulazione si può contare il numero delle occorrenze di ogni codice quindi
creando un file out.dat contenente le occorrenze di ogni codice grazie al programmino di seguito
riportato (figura 3.19) si può caricare il file out.dat quindi graficare l’istogramma delle occorrenze
(figura 3.7) e calcolare la DNL (figura 3.9) e INL (figura 3.10) secondo il metodo sopra descritto.
Per verificare l’equivalenza tra il metodo dei punti di transizione e il metodo code density test
possiamo effettuare una nuova simulazione con un segnale d’ingresso pari alla rampa lineare di
figura 3.1 che abbiamo usato per testare l’ADC mediante il metodo 1. Quindi dai risultati della
simulazione e utilizzando il programmino di figura 3.19 possiamo graficare l’istogramma delle
occorrenze (figura 3.12) e calcolare la DNL (figura 3.14) e INL (figura 3.15) nel caso di segnale di
ingresso a rampa lineare.
Dalle figure 3.2 e 3.14 risulta evidente che i grafici DNL e INL dei rispettivi metodi coincidono.




                                                                                                    29
% Programma per calcolare e graficare DNL e INL mediante il metodo2
          clear;
          %Carica il file out.dat , matlab vede la variabile out come un array
          %rettangolare contenente le occorrenze di ogni codice e il codice
          load out.dat
          for i=1:255, observed([i])=out([i,1]) ;end
          %Calcolo della dnl e inl
          inl([1])=0;
          for i=1:255
          dnl([i])=(observed([i])-ideal([i]))/ideal([i]);
              for j=1:i
              inl([i])=inl([i])+dnl([j]);
              end
          end
          % istogramma delle occorrenze
          bar((1:255),observed)
          % grafico DNL e INL
          plot((1:255),dnl,’b’,(1:255),inl,’r’);




Figura 3.19 : Script matlab per graficare l’istogramma delle occorrenze e l’errore DNL e INL




                                                                                               30
Figura 3.6 : Simulazione dell’ADC con un segnale d’ingresso sinusoidale




                   320
                   310
                   300
                   290
                   280
                   270
                   260
                   250
                   240
                   230
                   220
                   210
                   200
N. di occorrenze




                   190
                   180
                   170
                   160
                   150
                   140
                   130
                   120
                   110
                   100
                    90
                    80
                    70
                    60
                    50
                    40
                    30
                    20
                    10
                     0
                         1   10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 253
                                                                           Codice


                   Figura 3.7 :Istogramma delle occorrenze di ogni codice quando il segnale d’ingresso è una sinusoide


                                                                                                                              31
300



                   250
N. di occorrenze




                   200



                   150



                   100



                     50



                       0
                           0              50                 100                    150             200                250
                                                                      C o d ice

                   Figura 3.8 Misura delle occorrenze di ogni codice comparate con le occorrenze ideali
                              Curva blu occorrenze ideale, curva rossa occorrenze misurate (simulate)

                      0 .1




                    0 .0 5




                           0
DNL




                   - 0 .0 5




                     - 0 .1




                               0           5 0                1 0 0                  1 5 0            2 0 0                2 5 0
                                                                       C o d ic e

              Fig 3.9 NON LINEARITA DIFFERENZIALE calcolata dalle occorrenze mostrate in figura 3.8 (MAX DNL=0.124LSB)




                      0 .2

                      0 .1


                           0


                     - 0 .1
          INL




                     - 0 .2


                     - 0 .3


                     - 0 .4

                     - 0 .5


                               0           5 0                1 0 0                  1 5 0            2 0 0                2 5 0
                                                                       C o d ic e

                   Fig 3.10 NON LINEARITA INTEGRALE calcolata dalle occorrenze mostrate in figura 3.8 (MAX INL=0.548LSB)

                                                                                                                           32
Figura 3.11 Simulazione dell’ADC con un segnale d’ingresso a rampa lineare




                   40
                                                             63
                   38
                                                                                                     127
                   36                                                                                                                           191


                   34
N. di occorrenze




                   32


                   30


                   28


                   26


                   24


                   22
                        1     10   19   28   37   46   55   64    73   82   91   100   109   118   127     136   145   154   163   172   181   190    199   208   217   226   235   244   253
                                                                                                   Codice




                            Figura 3.12: Istogramma delle occorrenze di ogni codice quando il segnale d’ingresso è una rampa




                                                                                                                                                                                    33
42

                                  40

                                  38

                                  36
              N. di occorrenze




                                  34

                                  32

                                  30

                                  28

                                  26

                                  24

                                  22
                                        0   50              100                    150                 200                   250
                                                                      C o d ic e

Figura 3.13 Misura delle occorrenze di ogni codice comparate con le occorrenze ideali (Vin rampa lineare di figura 3.11) Curva
blu occorrenze ideali, curva rossa occorrenze misurate (simulate)



                      0 .2 5

                                 0 .2

                      0 .1 5

                                 0 .1

                      0 .0 5
        DNL




                                    0

               - 0 .0 5

                            -0 .1

               - 0 .1 5

                            -0 .2

               - 0 .2 5


                                        0   5 0             1 0 0                  1 5 0                2 0 0                    2 5 0
                                                                      C o d ic e



Figura 3.14 NON LINEARITA DIFFERENZIALE calcolata dalle occorrenze mostrate in figura 3.13 (MAX DNL=0.295LSB)



                                 0 .5

                0 .4 5

                                 0 .4

                0 .3 5

                                 0 .3
        INL




                0 .2 5

                                 0 .2

                0 .1 5

                                 0 .1

                0 .0 5

                                   0
                                        0   5 0            1 0 0                   1 5 0               2 0 0                     2 5 0
                                                                     C o d ic e



Figura 3.15 NON LINEARITA INTEGRALE calcolata dalle occorrenze mostrate in figura 3.11 (MAX INL=0.46LSB)

                                                                                                                                 34
3.3 FUNZIONE DI TRASFERIMENTO DELL’ADC PROGETTATO



Dai punti di transizione possiamo ricavare la funzione di trasferimento dell’ADC (figura 3.20)



                 250




                 200




                 150
        Codice




                 100




                  50




                   0
                       0   0.5   1      1.5       2       2.5       3       3.5       4       4.5        5
                                                          Vin

Figura 3.20 Confronto tra la caratteristica ideale e la caratteristica reale (in rosso la caratteristica ideale in
blu la caratteristica simulata)



Nel grafico di figura 3.20 non sono visibili gli effetti degli errori di non linearità in quanto è stato
rappresentato tutta la scala dei valori del segnale d’ingresso.
Se apriamo delle finestre ingrandite (figura 3.21) si può notare lo scostamento della caratteristica
reale (in blu) dalla caratteristica ideale (in rosso).
In particolare si può notare che in corrispondenza dei codici 64, 128, 192 lo scostamento è più
evidente.
Questo è in accordo con l’istogramma delle occorrenze di figura 3.12 dove nei codici 64, 128, 192
presenta un marcato buco, ed è in accordo col grafico della DNL di figura 3.14 dove negli stessi
codici l’ampiezza dell’errore di non linearità differenziale è maggiore.




                                                                                                                     35
134
               70

                                                                                     132
               68

                                                                                     130
               66

                                                                                     128




                                                                            Codice
      Codice




               64

                                                                                     126
               62

                                                                                     124
               60

                                                                                     122
               58

                                                                                     120
               56
                          1.15     1.2     1.25    1.3     1.35     1.4                2.35   2.4   2.45   2.5   2.55   2.6    2.65
                                             Vin                                                           Vin




            198


            196


            194


            192
   Codice




            190


            188


            186


            184

                    3.6     3.65     3.7    3.75     3.8     3.85     3.9
                                            Vin




Figura 3.21 Dettagli della funzione di trasferimento dell’ADC




Quindi l’ADC esaminato presenta una grande non linearità quando il bit più significativo cambia
stato (esempio andando da 00111111 a 01000000). Questo è determinato dal fatto che il livello di
decisione di 00111111 è effettivamente un po’ più alto di 01000000 quindi in presenza di un
segnale d’ingresso lentamente variabile (rampa lineare) l’ADC può a volte saltare direttamente da
00111111 a 01000001, e il codice 01000000 è perso (MISSING CODE).




                                                                                                                              36
CONCLUSIONI

Dalle simulazioni risulta:

   •   L’ADC progettato presenta una velocità di conversione bassa (1.7us contro i 100-150ns di
       un half flash). Questo è dovuto alla bassa velocità del sub-ADC dove si è utilizzato come
       comparatore LM311 che presenta un tempo di risposta di 200ns contro i 40ns di comparatori
       più veloci (come LM106), naturalmente l’utilizzo di comparatori ad alta velocità comporta
       accorgimenti per evitare oscillazioni spurie (instabilità).
       Un’altra causa della limitata velocità è da ricercarsi nel blocco residuo-amplificazione.

   •   Con un segnale d’ingresso sinusoidale lentamente variabile (f<60Hz) (figura 3.6)
       l’istogramma delle occorrenze di ogni codice di uscita si avvicina al caso ideale, infatti
       l’errore di non linearità differenziale massimo misurato col metodo statistico è di 0.124LSB
       mentre la INL massima è di 0.548LSB

   •   Con un segnale d’ingresso a rampa lineare (Figura 3.11) l’istogramma delle occorrenza di
       ogni codice di uscita si discosta in diversi punti dal caso ideale in particolare nei codici
       64,128,192 l’istogramma presenta un marcato buco che fa aumentare l’ampiezza dell’errore
       di non linearità differenziale (in questo caso DNL max = 0.295LSB) come è evidente dal
       grafico di figura 3.14.
       In altre parole si verifica un errore più grande del solito quando il bit più significativo
       cambia stato (esempio andando da 01111111=>127 a 10000000=>128).
       Questo è determinato dal fatto che il livello di decisione di 01111111 è effettivamente un
       po’ più alto di 10000000 come si può osservare dalla tensione d’ingresso dell’ultimo stadio
       (residuo_stadio4) mostrato in figura




       Quindi in presenza di un segnale d’ingresso lentamente variabile (rampa lineare) l’ADC può
       a volte saltare direttamente da 01111111 a 10000001, e il codice 10000000 è perso
       (MISSING CODE).
       Dalle tensioni residue di ogni stadio di figura 3.22 si può osservare come l’errore appena
       visto, dovuto principalmente all’offset del comparatore e alle non idealità delle tensioni di
       riferimento, si propaga nei vari stadi.




                                                                                                 37
Figura 3.22 :Tensione d’ingresso dei vari stadi




                                                  38
APPENDICE A


•   Software utilizzato per la simulazione:



    Microsim Design 8.0
    http://www.orcad.com




•   Software utilizzato per l’analisi dei dati:



    Matlab versione 4.2c.1
    http://www.mathworks.com




•   Opzioni da abilitare per la simulazione:

    setup base




    opzioni da abilitare per ottenere il file contenente gli istanti di transizione




                                                                                      39
BIBLIOGRAFIA


[1] B. Razavi, Principles of Data Conversion System Design, The IEEE Press, New York
1995.

[2] I convertitori A/D e D/A, Valerio Alessandroni, Elettronica Oggi N. 272 - 15 Aprile 1999

[3] A.M.J. Daanen, Classification of DA and AD Conversion Techniques, Report of the
Graduation Work, Technical University, Eindhoven, Dec. 1986.

[4] J.ÊDoernberg, H.-S.ÊLee, and D.ÊA.ÊHodges, “Full-speed testing of A/D converters,”
IEEE J. Solid-State Circ., vol. SC-19, pp. 820-827, Dec. 1984.

[5] Texas Instruments Application Report,” Understanding Data Converters”, SLAA013,
July 1995.

[6] Adc characterisation using the code density test method with deterministic sampling,
Valentino Liberali, Franco Maloberti, and Massimo Stramesi, Department of Electronics,
University of Pavia Via Ferrata 1, 27100 Pavia, Italy

[7] J. E. Franca and Y. Tsividis, Editors, Design of Analog-Digital VLSI Circuits for
Telecommunications and Signal Processing”, Chapters 9 and 10,Prentice Hall, Englewood
Cliffs,1994

[8] S. Franco, “Design with Operational Amplifiers and Analog Integrated Circuits”,
McGraw-Hill, Boston, 1998.

[9] Integrated Analog-to-Digital and Digital-to-Analog Converters, R. van de Plasche,
Kluwer Academic Publishers, 1994

[10] M. F. WAGDY “Diagnosing ADC Nonlinearity at the Bit Level” IEEE iransactions on
instrumentation and Measurements, December 1989, pp. 1139-1141.

[11] J. BLAIR “Histogram Measurement of ADC Nonlinearities using Sine Waves” IEEE
Transactions on Instrumentation and Measurements, June 1994, pp.373-383.

[12] M. F. WAGDY AND S. S. AWAD “Determining ADC Effective Number of Bits Via
Histogram Testing” IEEE Transactions on Instrumentation and Measurements, August 1991,
pp. 770-772.

[13] DC Specifications of ADCs and DACs
http://www.hit.bme.hu/people/papay/edu/ABCsoup.ht

[14] INL/DNL Measurements for High-Speed ADCs
http://www.maxim-ic.com/StartPage.htm
                                                                                           40
[15] Defining and Testing Dynamic Parameters in High-Speed ADCs, Part 1
http://dbserv.maxim-ic.com/tarticle/view_article.cfm?article_id=112

[16] descrizione tipi di convertitori
http://users.unimi.it/metis/METIS-3MKB/courseware/convertitori/Adc/indicein.htm

[17] Correzione delle non linearita’ nei convertitori A-D ad alta velocita
http://www.teoresi.it/meet_2000/conf/atti/cover.htm

[18] Design Of A High-Performance Analog-To-Digital Converter
http://www.csdmag.com/main/9810/9810feat2.htm

[19] Evaluating Data Acquisition Specifications by Jonathan L. Tucker, Keithley Instruments
http://www.evaluationengineering.com/index.html

[20] HABIST (Histogram-based Analog Built-In Self-Test)
http://www.fluence.com/bistmaxx/habist_tk1.html




                                             Author: Ing. Nelson Firmani (nfirmani@gmail.com)




                                                                                            41

Contenu connexe

Tendances

Modulation, Frequency Modulation, Phase Modulation, Amplitude Modulation
Modulation, Frequency Modulation, Phase Modulation, Amplitude ModulationModulation, Frequency Modulation, Phase Modulation, Amplitude Modulation
Modulation, Frequency Modulation, Phase Modulation, Amplitude ModulationWaqas Afzal
 
Linear modulation
Linear modulation Linear modulation
Linear modulation Punk Pankaj
 
Antennas and Wave Propagation
Antennas and Wave Propagation Antennas and Wave Propagation
Antennas and Wave Propagation VenkataRatnam14
 
Неинфекционные заболевания кожи
Неинфекционные заболевания кожиНеинфекционные заболевания кожи
Неинфекционные заболевания кожиPresentation987
 
Performance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signalPerformance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signalRaj Kumar Thenua
 
Quadrature amplitude modulation
Quadrature amplitude modulationQuadrature amplitude modulation
Quadrature amplitude modulationAanchalKumari4
 
Pulse amplitude modulation (PAM)
Pulse amplitude modulation (PAM)Pulse amplitude modulation (PAM)
Pulse amplitude modulation (PAM)Mugadha Bane
 
Introduction to communication system lecture1
Introduction to communication system lecture1Introduction to communication system lecture1
Introduction to communication system lecture1Jumaan Ally Mohamed
 
LTE Architecture
LTE ArchitectureLTE Architecture
LTE ArchitectureManje Gowda
 
Comparsion of M-Ary psk,fsk,qapsk.pptx
Comparsion of M-Ary psk,fsk,qapsk.pptxComparsion of M-Ary psk,fsk,qapsk.pptx
Comparsion of M-Ary psk,fsk,qapsk.pptxkeshav11845
 
Analog to analog conversion - Amplitude modulation
Analog to analog conversion - Amplitude modulationAnalog to analog conversion - Amplitude modulation
Analog to analog conversion - Amplitude modulationSubashini Pandiarajan
 
03 Data and_Signals
03 Data and_Signals03 Data and_Signals
03 Data and_SignalsAhmar Hashmi
 
Matching impedance
Matching impedanceMatching impedance
Matching impedanceampas03
 
Digital communication
Digital communicationDigital communication
Digital communicationmeashi
 
Spread spectrum
Spread spectrumSpread spectrum
Spread spectrummpsrekha83
 
Frequency modulation
Frequency modulationFrequency modulation
Frequency modulationAkanksha_Seth
 

Tendances (20)

monopole antenna.pptx
monopole antenna.pptxmonopole antenna.pptx
monopole antenna.pptx
 
Modulation, Frequency Modulation, Phase Modulation, Amplitude Modulation
Modulation, Frequency Modulation, Phase Modulation, Amplitude ModulationModulation, Frequency Modulation, Phase Modulation, Amplitude Modulation
Modulation, Frequency Modulation, Phase Modulation, Amplitude Modulation
 
Amps
AmpsAmps
Amps
 
Linear modulation
Linear modulation Linear modulation
Linear modulation
 
Chap 5
Chap 5Chap 5
Chap 5
 
Antennas and Wave Propagation
Antennas and Wave Propagation Antennas and Wave Propagation
Antennas and Wave Propagation
 
Неинфекционные заболевания кожи
Неинфекционные заболевания кожиНеинфекционные заболевания кожи
Неинфекционные заболевания кожи
 
Performance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signalPerformance analysis of adaptive noise canceller for an ecg signal
Performance analysis of adaptive noise canceller for an ecg signal
 
Quadrature amplitude modulation
Quadrature amplitude modulationQuadrature amplitude modulation
Quadrature amplitude modulation
 
Pulse amplitude modulation (PAM)
Pulse amplitude modulation (PAM)Pulse amplitude modulation (PAM)
Pulse amplitude modulation (PAM)
 
Introduction to communication system lecture1
Introduction to communication system lecture1Introduction to communication system lecture1
Introduction to communication system lecture1
 
Sonet
SonetSonet
Sonet
 
LTE Architecture
LTE ArchitectureLTE Architecture
LTE Architecture
 
Comparsion of M-Ary psk,fsk,qapsk.pptx
Comparsion of M-Ary psk,fsk,qapsk.pptxComparsion of M-Ary psk,fsk,qapsk.pptx
Comparsion of M-Ary psk,fsk,qapsk.pptx
 
Analog to analog conversion - Amplitude modulation
Analog to analog conversion - Amplitude modulationAnalog to analog conversion - Amplitude modulation
Analog to analog conversion - Amplitude modulation
 
03 Data and_Signals
03 Data and_Signals03 Data and_Signals
03 Data and_Signals
 
Matching impedance
Matching impedanceMatching impedance
Matching impedance
 
Digital communication
Digital communicationDigital communication
Digital communication
 
Spread spectrum
Spread spectrumSpread spectrum
Spread spectrum
 
Frequency modulation
Frequency modulationFrequency modulation
Frequency modulation
 

En vedette

REALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWeb
REALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWebREALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWeb
REALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWebNelson Firmani
 
documento sistema informativo ambulatorio veterinario on-line
documento sistema informativo ambulatorio veterinario on-linedocumento sistema informativo ambulatorio veterinario on-line
documento sistema informativo ambulatorio veterinario on-lineNelson Firmani
 
REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINE
REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINEREALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINE
REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINENelson Firmani
 
Design pattern template method
Design pattern template methodDesign pattern template method
Design pattern template methodNelson Firmani
 
La gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementativeLa gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementativeNelson Firmani
 
Modelli di linee di trasmissione nelson firmani
Modelli di linee di trasmissione   nelson firmaniModelli di linee di trasmissione   nelson firmani
Modelli di linee di trasmissione nelson firmaniNelson Firmani
 

En vedette (9)

REALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWeb
REALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWebREALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWeb
REALIZZAZIONE DEL PROGETTO CINEMA ON-LINE CineWeb
 
Web services
Web servicesWeb services
Web services
 
documento sistema informativo ambulatorio veterinario on-line
documento sistema informativo ambulatorio veterinario on-linedocumento sistema informativo ambulatorio veterinario on-line
documento sistema informativo ambulatorio veterinario on-line
 
REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINE
REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINEREALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINE
REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINE
 
Design pattern template method
Design pattern template methodDesign pattern template method
Design pattern template method
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
La gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementativeLa gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementative
 
Modelli di linee di trasmissione nelson firmani
Modelli di linee di trasmissione   nelson firmaniModelli di linee di trasmissione   nelson firmani
Modelli di linee di trasmissione nelson firmani
 
Adc
AdcAdc
Adc
 

Similaire à Progettazione di un convertitore analogico digitale in architettura multistadio

Radioastronomia amatoriale e radiotelescopi
Radioastronomia amatoriale e radiotelescopiRadioastronomia amatoriale e radiotelescopi
Radioastronomia amatoriale e radiotelescopiFlavio Falcinelli
 
Progetto ldc
Progetto ldcProgetto ldc
Progetto ldcaaa bbbb
 
Design of programmable medical devices_Teamwork
Design of programmable medical devices_TeamworkDesign of programmable medical devices_Teamwork
Design of programmable medical devices_TeamworkAntonella Zito
 
Convertitori Digitale-Analogico
Convertitori Digitale-AnalogicoConvertitori Digitale-Analogico
Convertitori Digitale-AnalogicoPasquale Alba
 
EuComm
EuCommEuComm
EuCommiBLio
 
SMART WATER 4 novembre
SMART WATER 4 novembreSMART WATER 4 novembre
SMART WATER 4 novembrecanaleenergia
 
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19Ionela
 
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...TogetherToSolve
 
ATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLCATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLCRémi GUILBERT
 
MISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICI
MISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICIMISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICI
MISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICISENECA
 
Gsm control
Gsm controlGsm control
Gsm controlaaa bbbb
 
Mc56 f82xx freescale amplia il portfolio dsc per il controllo del motore - 2...
Mc56 f82xx  freescale amplia il portfolio dsc per il controllo del motore - 2...Mc56 f82xx  freescale amplia il portfolio dsc per il controllo del motore - 2...
Mc56 f82xx freescale amplia il portfolio dsc per il controllo del motore - 2...Ionela
 
30@30: Newsletter aprile
30@30: Newsletter aprile30@30: Newsletter aprile
30@30: Newsletter aprileLika Electronic
 

Similaire à Progettazione di un convertitore analogico digitale in architettura multistadio (20)

Radioastronomia amatoriale e radiotelescopi
Radioastronomia amatoriale e radiotelescopiRadioastronomia amatoriale e radiotelescopi
Radioastronomia amatoriale e radiotelescopi
 
Technical Note Tn 1201
Technical Note Tn 1201Technical Note Tn 1201
Technical Note Tn 1201
 
Progetto ldc
Progetto ldcProgetto ldc
Progetto ldc
 
Design of programmable medical devices_Teamwork
Design of programmable medical devices_TeamworkDesign of programmable medical devices_Teamwork
Design of programmable medical devices_Teamwork
 
Convertitori Digitale-Analogico
Convertitori Digitale-AnalogicoConvertitori Digitale-Analogico
Convertitori Digitale-Analogico
 
EuComm
EuCommEuComm
EuComm
 
SMART WATER 4 novembre
SMART WATER 4 novembreSMART WATER 4 novembre
SMART WATER 4 novembre
 
Conversione A/D
Conversione A/DConversione A/D
Conversione A/D
 
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
 
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
Banco di collaudo per dispositivi pneumatici del sistema frenante ferroviario...
 
ATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLCATIPICO POTENTE TASCABILE INDUSTRIAL PLC
ATIPICO POTENTE TASCABILE INDUSTRIAL PLC
 
MISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICI
MISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICIMISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICI
MISURA E TELECONTROLLO DI IMPIANTI FOTOVOLTAICI
 
Gsm control
Gsm controlGsm control
Gsm control
 
Presentazione Tesi
Presentazione TesiPresentazione Tesi
Presentazione Tesi
 
Dsp seminario
Dsp seminarioDsp seminario
Dsp seminario
 
Lezioni 2009
Lezioni 2009Lezioni 2009
Lezioni 2009
 
Mc56 f82xx freescale amplia il portfolio dsc per il controllo del motore - 2...
Mc56 f82xx  freescale amplia il portfolio dsc per il controllo del motore - 2...Mc56 f82xx  freescale amplia il portfolio dsc per il controllo del motore - 2...
Mc56 f82xx freescale amplia il portfolio dsc per il controllo del motore - 2...
 
30@30: Newsletter aprile
30@30: Newsletter aprile30@30: Newsletter aprile
30@30: Newsletter aprile
 
Ap 622 ss_it
Ap 622 ss_itAp 622 ss_it
Ap 622 ss_it
 
Ap 622 ss_0112 italian
Ap 622 ss_0112 italianAp 622 ss_0112 italian
Ap 622 ss_0112 italian
 

Progettazione di un convertitore analogico digitale in architettura multistadio

  • 1. Progettazione di un convertitore analogico digitale a 8 bit in architettura multistadio Ing. Nelson Firmani Dipartimento di Ingegneria Elettrica Università di L’Aquila, AQ 67040, Italy 1
  • 2. INDICE PREMESSA .................................................................................................................................... 3 1 INTRODUZIONE ................................................................................................................. 4 1.1 STRUTTURE DI CONVERTITORI A/D ............................................................................................... 5 1.1.1 CONVERTITORE A/D A RAMPA LINEARE....................................................................................... 5 1.1.2 CONVERTITORE A/D A DOPPIA RAMPA ......................................................................................... 6 1.1.3 CONVERTITORE A/D AD APPROSSIMAZIONE SUCCESSIVA...................................................... 6 1.1.4 CONVERTITORE A/D TIPO FLASH .................................................................................................... 7 1.1.5 CONVERTITORE A/D TIPO HALF -FLASH ....................................................................................... 7 1.2 PRESTAZIONI E SPECIFICHE DEI CONVERTITORI A/D e D/A ................................................. 8 1.3 ERRORE DI QUANTIZZAZIONE .............................................................................................. 10 2 PROGETTO DI UN ADC 8 BITS A 4 STADI ............................................................... 12 2.1 PRINCIPIO DI FUNZIONAMENTO DI UN ADC MULTISTADIO ............................................... 12 2.2 PROGETTO DELL’ADC 8 BITS A 4 STADI...................................................................................... 14 2.2.1 Sub-ADC ................................................................................................................................................ 14 2.2.2 Sub-DAC ................................................................................................................................................ 15 2.2.3 Blocco tensioni di riferimento ................................................................................................................ 16 2.2.4 Blocco residuo-amplificazione ............................................................................................................... 17 2.3 SIMULAZIONI ..................................................................................................................................... 18 3 PARAMETRI STATICI DI UN ADC............................................................................ 21 3.1 CASSIFICAZIONE DEGLI ERRORI STATICI DI UN ADC .......................................................... 21 3.2 METODI PER VALUTARE GLI ERRORI STATICI DI UN ADC................................................. 23 3.2.1 PRIMO METODO: Misura dei punti di transizione e simulazione ..................................................... 23 3.2.2 SECONDO METODO : Code density test (histogram) e simulazione ................................................. 28 3.3 FUNZIONE DI TRASFERIMENTO DELL’ADC PROGETTATO ................................................ 34 CONCLUSIONI..................................................................................................................................... 36 APPENDICE ........................................................................................................................................... 38 BIBLIOGRAFIA ................................................................................................................................... 40 2
  • 3. Simboli e abbreviazioni ABBREVIAZIONE DESCRIZIONE A/D Analog to Digital ADC Analog to Digital Converter AMPS Advanced Mobile Phone System [b0…b7] Bit d’uscita dell’ADC CODE Codice in uscita dell’ADC D-AMPS Digital AMPS DC Direct Current DNL Differential Non-Linearity GSM Global System for Mobile Comunication INL Integral Non-Linearity LSB Least Significant Bit MSB Most Significant Bit SA Successive Approximation SNR Signal to Noise Ratio V[j] Tensioni nei punti di transizione di codice Vdac Tensione all’uscita del DAC Vin Tensione all’ingresso dell’ADC VFS Tensione di fondo scala Vrif Tensione di riferimento 3
  • 4. PREMESSA Oggetto del seguente lavoro è la progettazione di un convertitore analogico digitale a 8 bit utilizzando l’architettura multistadio. Il pregio di questa architettura rispetto ad una architettura tipo FLASH con gli stessi bit di risoluzione è la bassa complessità circuitale che rende adatto questo tipo di convertitore A/D in tutte quelle applicazioni dove è necessario alta integrabilità e basso consumo di potenza. Tutto questo a spesa di una riduzione nella velocità di conversione. 4
  • 5. 1 INTRODUZIONE La tendenza dei moderni sistemi di comunicazione è di rendere qualsiasi cosa digitale. Solo 15 anni fa la tecnologia radiomobile era dominata dai sistemi analogici TACS, NMT, AMPS. Questi sistemi sono ora completamente sostituiti dai sistemi digitali GSM e D-AMPS. Le ragioni di questo cambiamento sono: • La rapida evoluzione tecnologica dei settori dell'elaborazione digitale dei segnali e l'integrazione dei componenti elettronici per effetto della disponibilità dei circuiti integrati VLSI. • L’informazione può essere compressa inoltre si può utilizzare una frequenza per servire piú utenti, tramite l'utilizzo di tecniche TDM (Time Division Multiplexing) • I sistemi digitali sono meno sensibili a rumore ed interferenze. • Maggiore sicurezza nella trasmissione dati e maggiore riservatezza dei dati è consentito grazie agli algoritmi di cifratura • L’informazione non solo può essere compressa o criptata ma può essere facilmente elaborata da software. Quindi per tutte queste ragioni oggi l’informazione analogica, come suoni e immagini, viene convertita in segnale digitale mediante circuiti detti convertitori analogici-digitali (ADC), quindi elaborata e riconvertita mediante convertitori digitali-analogici (DAC). E più la comunicazione è digitale più cresce la domanda di ADC e DAC dalle caratteristiche performanti: alta velocità di conversione, alta risoluzione, basso costo di produzione, basso consumo di potenza. In questa tesina dopo una prima parte introduttiva dove vengono descritte le principali tecniche di conversione A/D nonchè i parametri che descrivono le prestazioni di un ADC, si procede alla realizzazione di un ADC a 8 bits quindi alla verifica del funzionamento mediante simulazione. E’ da tenere presente che non spendiamo particolare risorse nella progettazione dell’ADC a 8 bits, in quanto non abbiamo specifiche restrittive in termini di velocità, precisione o consumo di potenza da rispettare. Anche perché scopo di questa tesina non è tanto nella realizzazione di un ADC dalle caratteristiche peculiari, bensì è quello di mettere in evidenza i metodi che si impiegano per misurare (testare) le prestazioni dei convertitori A/D. 5
  • 6. 1.1 STRUTTURE DI CONVERTITORI A/D In questa sezione descriviamo brevemente alcune strutture di convertitori A/D, informazioni più dettagliate possono essere trovate in [2], [3], [16]. Esistono diversi tipi di ADC, ma il principio di funzionamento può essere schematizzato come in figura 1.1. L’elemento fondamentale è il comparatore, che confronta il segnale in ingresso con un segnale generato localmente e rivela quale dei due è più grande fino a che quest’ultimo non diventa uguale al segnale in ingresso. Il generatore locale del segnale di confronto può essere realizzato con una rete a pesiera o con un circuito a rampa lineare, mentre i circuiti sequenziali di controllo sono un insieme di circuiti logici che, a seconda del segno della tensione in uscita al comparatore, danno i comandi al registro di conteggio. Figura 1.1 Principio di funzionamento di un ADC 1.1.1 CONVERTITORE A/D A RAMPA LINEARE In questo caso il generatore del segnale di confronto è un generatore di rampa lineare. In uscita al comparatore si ottiene un impulso rettangolare che inizia contemporaneamente alla rampa e termina quando questa eguaglia il segnale d’ingresso. La durata di questa impulso è perciò proporzionale al valore della tensione di ingresso. Un registro di bistabili conta i periodi di un oscillatore compresi entro la durata dell’impulso, durante il quale la porta lineare è aperta. Tale numero costituisce l’uscita del ADC ed è proporzionale al valore della tensione d’ingresso. La precisione e la risoluzione del ADC dipendono fondamentalmente dall’oscillatore e dal generatore di rampa. 6
  • 7. 1.1.2 CONVERTITORE A/D A DOPPIA RAMPA Questo tipo di convertitore viene spesso impiegato in voltmetri digitali. Vediamone il funzionamento: All’inizio del processo (t=0) S1 è collegato alla tensione Va da convertire e l’integratore genera una rampa decrescente (Vo=-(t/t)Va). Il contatore viene incrementato dagli impulsi Ck fino a quando il FFn è portato con uscita Q=1 e tutti i bistabili del contatore sono nuovamente azzerati. In questo istante (t=T1) S1 si collega a -Vr e l’integratore genera una seconda rampa, questa volta crescente (Vo=-(t/t)Vr). Nuovamente il contatore è incrementato dagli impulsi Ck fino a quando Vo=0 ed il comparatore inibisce la porta G1. Si può dimostrare che il numero registrato nel contatore è proporzionale alla tensione Va ed indipendente dalla costante di tempo t . 1.1.3 CONVERTITORE A/D AD APPROSSIMAZIONE SUCCESSIVA Principio di funzionamento: Nel ADC per successive approssimazioni i circuiti sequenziali di controllo sono più complicati e permettono la generazione di un segnale che si confronta con l’ingresso a partire dal MSB (bit più significativo) fino al LSB (bit meno significativo) secondo la sequenza riportata in figura. In questo modo si raggiungono velocità di conversione più elevate ed indipendenti dal valore del segnale d’ingresso (infatti ogni conversione necessita di n periodi d’orologio, se n è il numero di bit di conversione). 7
  • 8. 1.1.4 CONVERTITORE A/D TIPO FLASH Questo tipo di ADC garantisce la massima velocità di conversione a discapito della complessità circuitale e quindi del costo. Infatti occorrono ben 2^n-l comparatori per convertire un segnale analogico in un numero di n bit. In figura è rappresentato un ADC FLASH a 3 bit. Il campo di variazione dell’ingresso viene suddiviso in 8 fasce (2^n con n=3) ed i comparatori determinano il numero di soglie che vengono superate dal segnale da convertire. Un codificatore di priorità genera il numero binario di uscita secondo la tabella di verità mostrata in figura. 1.1.5 CONVERTITORE A/D TIPO HALF -FLASH I convertitori flash sono ottimi per il funzionamento ad alta velocità, ma la quantità di comparatori limita la risoluzione. I convertitori di tipo half flash utilizzano invece un processo a due stadi per raggiungere risoluzioni maggiori di quelle dei convertitori flash, oppure per raggiungere la stessa risoluzione con minori dimensioni del die. In altre parole l’ADC HALF FLASH sacrifica la velocità di conversione (dimezza circa rispetto al FLASH) ma diminuisce notevolmente la complessità circuitale. Infatti volendo realizzare un ADC 8bit FLASH sono necessari 2^8-1=255 comparatori mentre utilizzando un’architettura HALF FLASH occorrono 2*(2^4-1)=30 comparatori. 8
  • 9. 1.2 PRESTAZIONI E SPECIFICHE DEI CONVERTITORI A/D e D/A Per valutare le qualità di un convertitore A/D o D/A si deve possedere una piena conoscenza dei seguenti parametri: • Risoluzione (resolution) Per gli ADC è definita come la più piccola variazione di ingresso che fa commutare l’uscita ad un codice immediatamente successivo. Per i DAC è definita come la variazione di tensione che si ha in uscita quando il codice d’ingresso passa ad un codice immediatamente successivo. La risoluzione può essere espressa in bit o in % del fondo scala. Un convertitore ad N bit è in grado di convertire una informazione in 2^N combinazioni, così la risoluzione sarà ½^N. Es: N=10 ½^10=0.000977 => 0.0977% • Precisione (accurancy) Negli ADC definisce la differenza tra l’effettivo segnale d’ingresso e il fondo scala equivalente del codice binario di uscita. Se un ADC a 12 bit ha una precisione stabilita di ±1LSB la sua precisione sarà pari a ±0.0245% cioè 2 volte il minimo errore possibile di quantizzazione. La precisione serve per avere un’idea di quanto il risultato è attendibile. Essa è la somma di tutti i possibili errori. Un DAC a 12 bit non potrebbe avere una precisione superiore ad ±1/2LSB cioè ±0.0122% del fondo scala. Da notare che ±0.0122% rappresenta la deviazione dal valore vero, cioè la precisione è pari a 99.9878%. • Errore di quantizzazione (quantizing Error) E’ la massima deviazione da una funzione di trasferimeto a linea retta di un ADC perfetto. L’errore può essere ridotto a zero solo se (teoricamente) si porta ad infinito il numero di bit. (vedi paragrafo 1.3) • Velocità di conversione (conversion rate) E’ la rapidità con la quale un ADC o un DAC può fare conversioni. Essa può essere espressa come numero di conversioni/sec oppure il tempo necessario per eseguire una conversione. Spesso è riferita ad una risoluzione inferiore a quella totale in modo da risultare falsamente elevata. • Tempo di assestamento (settling time) Tale parametro riguarda i convertitori DAC, specifica il tempo intercorso tra una transizione di codice e l’istante in cui l’uscita è sufficientemente prossima al suo valore finale. • Velocità di risposta (slew rate) La velocità di risposta riguarda soprattutto l’amplificatore d’uscita di un DAC. Esso non può fornire in uscita il valore di tensione corretto all’istante. • Glitches Se la commutazione di un bit ha velocità diversa da quella degli altri, si ha il passaggio per stati digitali non voluti che sull’uscita analogica si presentano come brevi impulsi o “glitch” 9
  • 10. Errore di fuori zero (offset error) Negli ADC è la tensione richiesta in ingresso per fissare in uscita il codice zero. Nei DAC è la tensione di uscita con codice zero in ingresso. • Errore di guadagno (gain error) Negli ADC è lo scostamento dal valore teorico del segnale d’ingresso per un codice di uscita di fondo scala. Nei DAC è la deviazione dal valore teorico del segnale d’uscita per un dato codice di ingresso, di solito di fondo scala • Errore di non linearità Sono quelli che portano ad un deviazione da una curva di trasferimento lineare, riguarda sia gli ADC che i DAC. Gli errori di non linearità insieme agli errori di offset e di guadagno costituiscono i parametri statici di un ADC. Un analisi dettagliata di questi parametri e i metodi di valutazione verrà fatta nel capitolo 3. 10
  • 11. 1.3 ERRORE DI QUANTIZZAZIONE Il segnale di ingresso di un ADC è un segnale continuo con un infinito numero di possibili stati, mentre l’uscita digitale è una funzione discreta con un numero di stati differenti determinato dalla risoluzione dell’ADC. Ne segue che nella conversione A/D parte del segnale analogico d’ingresso viene rappresentato dallo stesso codice digitale in uscita. In altre parole parte dell’informazione all’ingresso dell’ADC va persa nella conversione. Quindi nel processo di quantizzazione (rappresentazione o meglio approssimazione del segnale analogico d’ingresso mediante un segnale costituito da ampiezze discrete) si introduce un errore (errore di quantizzazione). Figura 1.1 Errore di quantizzazione Consideriamo la funzione di trasferimento ideale di un ADC (figura 1.1a). Possiamo definire l’errore di quantizzazione al j-esimo passo la grandezza: Ej=Vin-Vj I valori assunti dalla variabile Ej saranno compresi nell’intervallo ± ½ LSB o ± ½ q dove q è l’ampiezza di un passo (figura 1.1b). Se q è sufficientemente piccolo, è ragionevole ritenere Ej una variabile aleatoria uniformemente distribuita su q con una funzione di densità di probabilità data da: 11
  • 12. 1 q q p(ε) = − ≤ε ≤ q 2 2 p(ε) = 0 altrove Pertanto possiamo determinare il valore quadratico medio dell’errore di quantizzazione: q/2 1 q2 σ = ∫ ε 2 dε = 2 q −q / 2 12 Questo risultato ci permette di valutare il rapporto segnale rumore (SNR) di un ADC ideale. Se consideriamo un segnale di ingresso sinusoidale: Vin(t ) = A ∗ sin(ωt ) la cui potenza è: 2π 1 A2 P( s) = ∫ A sin (ϖt )dt = 2 2 2π 0 2 si ha: P( s) A2 / 2 2A A SNR (dB ) = 10 log = 10 log 2 ma q = 1LSB = = n −1 P (ε ) q / 12 2 n 2 sostituendo: 3 ⋅ 2 2n SNR (dB ) = 10 log( ) = 6.02n + 1.76dB 2 Questo è il valore ideale per un ADC a n bit. Il risultato mette in evidenza che ogni bit di risoluzione in più fornisce un miglioramento nel SNR di circa 6dB. OSSERVAZIONI: Gli errori di non linearità provocano una riduzione nel SNR, infatti supponiamo una forte non linearità differenziale che provoca un missing code. Questo è equivalente a una riduzione di 1bit di risoluzione e cioè ad una riduzione di 6dB nel rapporto segnale rumore (SNR). 12
  • 13. 2 PROGETTO DI UN ADC 8 BITS A 4 STADI Questo capitolo inizia con una trattazione teorica del principio di funzionamento di un ADC multistadio. Dopo aver analizzato le caratteristiche i vantaggi e gli svantaggi di questa struttura si passa al progetto di un ADC 8 bits a 4 stadi e quindi alla trattazione delle singole parti – sub ADC – sub DAC e blocco amplificatore-residuo. Infine si procede alla verifica del funzionamento mediante simulazione. 2.1 PRINCIPIO DI FUNZIONAMENTO DI UN ADC MULTISTADIO Come nell’ADC HALF FLASH la conversione avviene in 2 passi, nell’ADC multistadio la conversione avviene in più passi. In altre parole possiamo vedere ogni stadio come un ADC a bassa risoluzione, quindi collegando più stadi possiamo ottenere una risoluzione più fine. Figura 2.1 Flowchart di come lavora un ADC MULTISTADIO In figura 2.1 è mostrato in un flowchart come lavora un ADC MULTISTADIO (in questo caso per semplicità supponiamo 1 bit per stadio). Nel primo passo (i=0) otteniamo il bit più significativo b0 (MSB). Se l’ingresso è maggiore del livello di riferimento allora b0=1 inoltre si calcola il residuo sottraendo l’ingresso dal livello di riferimento. Il residuo è moltiplicato per 2^B (in questo caso un bit per stage => B=1) e riportato all’ingresso per il secondo passo. Sempre in figura 2.1 si può vedere come l’uscita digitale si forma durante i vari passi ovvero nei diversi stadi. In figura 2.2 è mostrato la struttura di un ADC MULTISTADIO il principio di funzionamento è il seguente: In primo luogo viene eseguita una quantizzazione approssimativa dell’ingresso (normalmente con un convertitore flash a B bits ‘sub-ADC’). L’uscita digitale del sub-ADC è applicata ad un 13
  • 14. convertitore D/A (sub-DAC) che genera un’uscita analogica Vdac, quindi si determina il residuo sottraendo dal segnale d’ingresso il segnale all’uscita del sub-DAC (RESIDUO=Vin-Vdac). Il residuo è quindi amplificato e applicato allo stadio successivo. Le tre fasi precedenti sono ripetute ciclicamente fino all’ultimo stadio che fornisce i bits meno significativi del codice digitale formatosi nei vari stadi (codice digitale che rappresenta il segnale analogico dell’ingresso). Figura 2.2 Struttura di un ADC MULTISTADIO I vantaggi di questa struttura rispetto ad una struttura tipo FLASH con gli stessi bit di risoluzione sono: • Bassa complessità hardware (ad esempio per un ADC ad N bit a M stadi sono necessari ( ) M ∗ 2 N / M − 1 comparatori invece di 2 N − 1 necessari per un ADC flash ad N bits) • Basso consumo di potenza • Alta integrabilità. Gli svantaggi sono: • La velocità di conversione diminuisce con l’aumentare degli stadi • La velocità di conversione è limitata dall’amplificatore. • Le cause di errore non risiedono soltanto nei comparatori (errore di offset) ma anche nel convertitore D/A, nel dispositivo impiegato per calcolare il residuo e nell’amplificatore 14
  • 15. 2.2 PROGETTO DELL’ADC 8 BITS A 4 STADI In figura 2.3 è presente lo schema elettrico dell’ADC 8 bit a 4 stadi. Possiamo suddividere l’analisi dello schema in 4 punti: • Blocco sub-ADC • Blocco sub-DAC • Blocco residuo-amplificazione 2.2.1 Sub-ADC Il blocco sub-ADC è costituito da un ADC di tipo flash (figura 2.4). Tutti i comparatori hanno un ingresso in comune (Vin), mentre l’altro ingresso è collegato ad una tensione di riferimento (v1,v2, v3). Se l’ingresso analogico è superiore al riferimento di un comparatore, la sua uscita è alta; in caso contrario, l’uscita è bassa. Infine un circuito di codifica (U1) esamina le transizioni fra le uscite alte e basse dei comparatori, codificandole in modo da ottenere un’uscita digitale (bit1,bit0). Il numero dei comparatori dipende dalla risoluzione (B bits) del sub-ADC: Numero comparatori = numeri livelli di rif. – 1 = 2 B − 1 Per minimizzare il ritardo di ogni stadio e il consumo di potenza dell’ADC la risoluzione di ogni stadio dovrebbe essere mantenuta piccola (minore di 4bit ,con 4bit sono richiesti 15 comparatori per stadio). Questo perché il numero di comparatori nel sub-ADC cresce esponezialmente con il numero di bit di risoluzione. Un grande numero di comparatori determina un maggior consumo di potenza, più spazio nel chip, rallenta il circuito e produce un carico maggiore all’uscita dello stadio precedente. Nel nostro progetto usiamo una risoluzione per stadio pari a 2 bits (B=2) quindi abbiamo 3 livelli di riferimento e sono necessari 3 comparatori. La scelta (progetto) del comparatore va fatto tenendo conto di alcune specifiche: • Il tempo di comparazione deve essere molto piccolo. • La tensione di OFFSET del comparatore deve essere la più piccola possibile (in genere si richiede che sia <1/2LSB dell’ADC, quindi per un ADC a 8 bits con un fondo scala di 5V (VFS=5V) si ha che OFFSET<1/2*(5/2^8)=9.8mV) • Il consumo di potenza deve essere il più piccolo possibile • Infine bisogna tener conto del carico d’ingresso del sub-DAC che il comparatore va a pilotare. La scelta del comparatore è caduta sul noto LM311. LM 311 non è un comparatore molto veloce (il tempo di risposta è di 200ns contro i 40ns del LM106 o del LM710) ma in compenso è più stabile, non vengono innescate oscillazioni spurie 15
  • 16. inoltre LM311 presenta una tensione di offset massima di 7.5mV quindi inferiore a 1/2LSB (9.8mV) dell’ADC 8bit. Infine l’uscita del LM311 è compatibile con i segnali delle porte logiche TTL quindi non presenta problemi nell’interfacciamento con l’encoder 74F148. 2.2.2 Sub-DAC Il sub-DAC (figura 2.5) riceve all’ingresso il codice digitale del sub-ADC, e il corrispondente valore analogico d’uscita (Vdac) viene sottratto dal segnale d’ingresso dello stadio considerato per formare il segnale (residuo) inviato all’ingresso dello stadio successivo. Poiché usiamo 2 bit per stadio è necessario avere un DAC a 2 bit in ogni stadio. Quindi abbiamo 2^2-1=3 livelli di tensione di riferimento (v1, v2, v3) che creano l’uscita del sub_DAC (Vout) secondo la parola binaria di lunghezza 2 bits posta all’ingresso (bit0, bit1) del decoder 74F139. Un problema da tener conto nella progettazione del sub_DAC è la formazione dei cosidetti “glitches” impulsi spuri determinati dalla differenza nei tempi di propagazione dei segnali nel circuito. Consideriamo ad esempio la transizione dell’ingresso digitale del DAC da codice b1b0=10 a b1b0=01, bene se la commutazione di b0 avviene un’istante prima di b1 in quell’istante si crea un ingresso digitale ‘11’ non voluto “glitches”. Questi glitches oltre ad aumentare il consumo di potenza del convertitore causa un aumento del tempo di assestamento (settling time) e quindi una riduzione della velocità di conversione. 16
  • 17. 2.2.3 Blocco tensioni di riferimento Sia nel Sub-ADC che nel Sub-DAC abbiamo bisogno di tensioni di riferimento. Queste tensioni possono essere generate ai capi di 2^N resistori (nel nostro caso N=2 quindi 4 resistori) connessi come in figura. k ∑ Ri Vrk = i =1 2N Vrif ∑ Ri i =1 La non idealità delle tensioni di riferimento influenza la distribuzione delle occorrenze dei codici di uscita dell’ADC in altre parole accentua gli errori di non linearità dell’ADC. Le cause della non idealità delle tensioni di riferimento sono: resistori non ideali, dipendenza dalla temperatura e variazioni della tensione di alimentazione. 2.2.4 Blocco residuo-amplificazione L’operazione che deve compiere questo blocco è sottrarre dal segnale d’ingresso V(+) il segnale proveniente dal Sub-DAC V(-) quindi amplificare il tutto per 2^2=4 Residuo = V(+) – V(-) Vd = [V (+ ) − V (−)] ∗ 2 2 Si utilizza due amplificatori operazionali in cascata. Il primo in configurazione invertente cambia di segno al segnale d’ingresso V(+) portandolo a V0 = -V(+). Il secondo effettua la somma tra V0 = - V(+) e V(-) e amplifica di 2^2, inoltre essendo in configurazione invertente cambia di segno al segnale di uscita Vd: Vd = −[−V (+ ) + V (−)] ∗ 2 2 = [V (+ ) − V (−)] ∗ 2 2 che è quanto si voleva. 17
  • 18. 1) stadio amplificatore op. in configurazione invertente con A=-1 R2 V0 = − ∗ V (+) R1 R 2 = R1 ⇒ V 0 = −V (+ ) 2) stadio sommatore segnali IR3 + IR5 = IR 4 V (−) − VN V 0 − VN VN − Vd + = R3 R5 R4 Aideale → ∞ ⇒ massavirtuale ⇒ VN = 0 ⇒ V ( −) V 0 Vd + =− R3 R5 R4 se R3=R5=R si ha : ∗ [V (−) + V 0] [V (+) − V (−)] R4 R4 Vd = − ma V0=-V(+) quindi : Vd = R R con R4=4R si ha : Vd = 4 ∗ [V (+ ) − V (−)] Considerazioni: Il blocco residuo-amplificazione rappresenta una reale limitazione alla velocità di conversione dell’ADC. Inoltre le non idealità dell’amplificatore operazionale (si pensi alla tensione di offset) determinano errori nel calcolo del residuo che si propagano nei vari stadi, questo determina un aumento della non linearità differenziale del convertitore A/D. Come ampl. operazionale si è scelto LF411 grazie soprattutto all’alta velocità (slew rate: 15V/us) e alla bassa tensione di offset (0.8 mV) nonché per l’alta impedenza di ingresso e l’ampia larghezza di banda. 18
  • 19. 2.3 SIMULAZIONI Riassumiamo brevemente le caratteristiche di progetto dell’ADC di figura 2.3 : • Uscita digitale a 8bits (risoluzione N=8bits) • Formato unipolare delle tensioni di riferimento. • Campo di variabilità dell’ingresso analogico da 0V a 5V (VFS=5V è la tensione di fondo scala) VFS 5V • Ampiezza massima dell’errore di quantizzazione è 1LSB = N = 8 = 19.53mV 2 2 Da quest’ultimo dato ci aspettiamo la commutazione dell’uscita digitale ad un codice immediatamente successivo quando la tensione dell’ingresso analogico subisce una variazione di 1LSB=19.53mV. Verifichiamo il funzionamento dell’ADC progettato mediante simulazione. Una prima simulazione consiste nella misura approssimativa del tempo di conversione. Figura 2.9 Tempo di conversione dell’ADC 19
  • 20. Dal tracciato della simulazione (figura 2.9) si nota che l’uscita digitale si stabilizza dopo 1.7 us. Nelle simulazioni successive verifichiamo la corretta conversione analogica digitale (figura 2.10 e figura 2.11) applicando all’ingresso dell’ADC diversi livelli di tensione di durata di 2us e leggendo il corrispondente codice digitale di uscita: In figura 2.10 si può ad esempio osservare che quando il livello di tensione d’ingresso passa da 0 a 20 mV (≅1LSB) l’uscita digitale dal codice 00000000 passa al codice 00000001. Figura 2.10 Conversione A/D con livelli di tensione di ingresso cha vanno da 0 a 1V 20
  • 21. Figura 2.11 Conversione A/D con livelli di tensione di ingresso cha vanno da 0 a 5V Dai tracciati di figura 2.10 e 2.11 risulta una corretta conversione A/D per tutti i livelli del segnale di ingresso che abbiamo scelto. 21
  • 22. 3 PARAMETRI STATICI DI UN ADC In questo capitolo dopo una trattazione teorica degli errori statici di un ADC verranno presentati due metodi per la loro valutazione. Quindi si procede alla simulazione dell’ADC 8bits a 4 stadi da noi progettato. Dai dati della simulazione e con l’ausilio del software matematico matlab valutiamo i parametri statici dell’ADC mediante un algoritmo che esegue i metodi descritti. Infine si procede ad una analisi dei risultati ottenuti. 3.1 CASSIFICAZIONE DEGLI ERRORI STATICI DI UN ADC • GAIN ERROR (Errore di guadagno) • OFFSET ERROR (Errore di offset) • DNL (Errore di non linearità differenziale) • INL (Errore di non linearità integrale) Offset error: E’ il valor medio di tensione richiesto in ingresso per fissare in uscita il codice zero. E’ causato dall’amplificatore o dall’ingresso di tensione e di corrente offset del comparatore. L’errore di offset è molto importante nei sistemi DC (es. voltmetro digitale). Esso può essere espresso in % del fondo scala (%FSR) o in frazione di LSB. Gain error: E’ la massima deviazione della curva caratteristica dell’ADC dalla curva ideale per un codice di uscita di fondo scala. Esso può essere causato da vari fattori : errori nelle tensioni di riferimento, dal passo standard delle resistenze di riferimento, dal guadagno dell’amplificatore ecc. Può essere minimizzato regolando il guadagno dell’amplificatore o la tensione di riferimento. 22
  • 23. Errore di non linearità differenziale: I gradini della caratteristica di conversione dovrebbero avere larghezza pari a s1=1LSB, ma nella caratteristica reale i gradini hanno larghezza s2, diversa da s1. La differenza s1-s2 è l’errore di non linearità differenziale. In presenza di forte non linearità differenziale, un gradino può essere totalmente assorbito da quelli adiacenti e il codice corrispondente al gradino eliminato viene perso “missing code (codice mancante)” Errore di non linearità integrale: E’ una misura di come la funzione di trasferimento dell’ADC complessivamente devia da una funzione di trasferimento perfettamente lineare. La INL può essere determinata anche mediante l’integrazione degli errori DNL. Considerazioni: L’importanza della INL o DNL dipende dall’applicazione dell’ADC. Se la precisione è fondamentale (esempio nella misura di tensione o corrente in un processo industriale) allora la INL è più importante. Ma in un’applicazione audio la INL rappresenta un errore complessivo di amplificazione che è poco rilevante mentre la DNL da una migliore idea delle distorsioni udibili prodotte dall’ADC 23
  • 24. 3.2 METODI PER VALUTARE GLI ERRORI STATICI DI UN ADC Il primo metodo consiste nell’aumentare il segnale di ingresso analogico dell’ADC lentamente, quindi memorizzare il valore dell’ingresso analogico quando l’uscita digitale cambia (punto di transizione). Dai punti di transizione si può calcolare l’errore di offset, l’errore di guadagno e l’errore di non linearità differenziale e integrale. Il secondo metodo (metodo statistico) consiste nell’applicare un segnale noto (es. onda triangolare, onda sinusoidale) all’ingresso analogico del convertitore e misurare il numero delle occorrenze di ogni codice. Dall’istogramma ottenuto possiamo determinare la non linearità differenziale e la non linearità integrale dell’ADC. Per avere un risultato affidabile è necessario un numero sufficientemente grande di occorrenze quindi la frequenza del segnale d’ingresso non è del tutto arbitraria. In genere si utilizza come segnale d’ingresso un onda sinusoidale in quanto si può rilevarne l’esatta ampiezza di banda. 3.2.1 PRIMO METODO: Misura dei punti di transizione e simulazione • Applicare un segnale lentamente variabile all’ingresso analogico dell’ADC (Figura 3.1) • Quindi memorizzare i valori dell’ingresso analogico Vin quando l’uscita digitale cambia di 1LSB (es. da 0010 a 0011) • I valori memorizzati costituiscono i punti di transizione dell’uscita digitale: Figura 3.18 Caratteristica di un ADC con un range d’ingresso unipolare. In evidenza i punti di transizione della Vin (V[j]) tra il codice j-1 e il codice j 24
  • 25. Calcolo dei parametri statici dai punti di transizione Consideriamo un ADC con un range d’ingresso unipolare (Vin va da 0V a VREF) e con N bits di risoluzione. Siano V[j] j = 1…2^N-1 i punti di transizione ovvero le tensioni misurate all’ingresso dell’ADC quando si verifica la transizione tra il codice j-1 e il codice j. Definiamo inoltre: VZS = V[1] è la tensione Vin nella transizione tra il codice zero e il codice successivo (fig. 3.18) VFS_1=V[2^N-2] è la tensione Vin nella transizione tra il codice di FS meno 1 e il codice FS LSB (in volt) = VREF/2^N è l’ampiezza teorica della tensione di 1 LSB ALSB (in volt) = (VFS_1-VZS)/(2^N-2) è l’attuale ampiezza della tensione di ogni LSB. VZS − 0.5 ∗ LSB • Offset Error (in LSB) = LSB • Gain Error (in LSB) = [VREF − 2 ∗ LSB − (VFS _ 1 − VZS )] LSB V [ j + 1] − V [ j ] • DNL[j] (in LSB) = −1 ALSB • INL[j] (in LSB) = [V [ j ] − ( ALSB ∗ ( j − 1) + VZS )] ALSB E’ da osservare che nel calcolo di offset error e di gain error compare LSB mentre nel calcolo di DNL e INL compare ALSB. Questo perché nelle specifiche di molti ADC si assume che offset e gain error siano riferiti a un ideale LSB mentre INL e DNL siano riferiti a un reale LSB. Comunque la differenza tra ALSB e LSB è tipicamente molto piccola. SIMULAZIONE Di seguito vengono riportate le opzioni da abilitare nello SPICE per la simulazione e la registrazione in un file ascii (out.vec) dei dati necessari per il calcolo dei punti di transizione e quindi dei parametri DNL e INL secondo il metodo appena descritto. In figura 3.1 è presente il tracciato della simulazione mentre in figura 3.2 si può osservare il grafico della DNL e INL. 25
  • 26. SIMULAZIONE SPICE File out.vec * Created by PSpice Abilitando l’opzione capture test HEX( b7 b6 b5 b4 ) HEX( b3 b2 b1 b0 ) vector (vedi figura 3.3) e utilizzando il dispositivo vector 0s 00 (vedi figura 3.4) viene generato il 1.989us 01 file out.vec contenente gli istanti 9.989us 02 di transizione dei codici 15.525us 03 19.903us 04 25.989us 05 32.989us 06 File out.dat Con un editor ascii adattiamo il file out.vec in modo tale da essere caricato dal software matematico 0 00 matlab e quindi mediante il 1.989*e-6 01 programma di figura 3.5 si calcola 9.989*e-6 02 DNL e INL 15.525*e-6 03 19.903*e-6 04 25.989*e-6 05 32.989*e-6 06 Figura 3.3 Opzioni da abilitare per catturare in un file ascii gli istanti di transizione (da 0s fino a 16.7ms) 26
  • 27. Figura 3.4 Il dispositivo vector da collegare all’uscita del’ADC. Questo dispositivo, durante la simulazione, registra in un file ascii gli istanti di transizione di codice % Programma per calcolare e graficare DNL e INL clear; % Il segnale di ingresso è una rampa lineare: v0(t0=0)=0V; v1(t1=0.0167s)=5V v1=5; t1=0.0167; lsb=5/(2^8); %Carica il file out.dat , matlab vede la variabile out come un array rettangolare load out.dat %Calcolo dei punti di transizione V[i] for i=1:255, v([i])=out([i,1])*v1/t1 ;end %Calcolo della dnl e inl for i=1:255 dnl([i])=(v([i+1])-v([i]))/lsb-1; inl([i])=((v([i])-lsb*(i-1))+v([1]))/lsb; end xlabel(‘Codice’); ylabel(‘INL & DNL’); plot((1:255),dnl,’b’,(1:255),inl,’r’); Figura 3.5 Programma per calcolare e graficare DNL e INL dell’ADC. 27
  • 28. Figura 3.1 Simulazione dell’ADC con un segnale d’ingresso a rampa lineare 0 .2 5 0 .2 0 .1 5 0 .1 0 .0 5 DNL 0 - 0 .0 5 -0 .1 - 0 .1 5 -0 .2 - 0 .2 5 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 C o d ic e 0 .5 0 .4 5 0 .4 0 .3 5 0 .3 INL 0 .2 5 0 .2 0 .1 5 0 .1 0 .0 5 0 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 C o d ic e Figura 3.2 Grafico della DNL (in LSB) e INL (in LSB) ottenuti mediante il programma di figura 3.5 28
  • 29. 3.2.2 SECONDO METODO : Code density test (histogram) e simulazione Nel code density test, la conoscenza della distribuzione delle ampiezze del segnale di ingresso (Vin) permette di stimare il numero di occorrenze ideali dei codici digitali. Una qualsiasi deviazione delle occorrenze misurate dalle occorrenze ideali denota un errore di non linearità differenziale. I passi dacompiere nel code density test sono: • Applicare un segnale noto all’ingresso analogico dell’ADC quindi memorizzare i codici all’uscita digitale. • Misurare il numero delle occorrenze di ogni codice • Comparando le occorrenze osservate (observed[i]) di ogni codice, dalle occorrenze ideali (ideal[i]) si può calcolare l’errore di non linearità differenziale (DNL[i]) e l’errore di non linearità integrale(INL[i]) mediante le formule: observed [i ] − ideal[i ] • DNL[i] = ideal[i ] i • INL[i] = ∑ DNL[ j ] J =1 (INL= ∫ DNL ) SIMULAZIONE Applichiamo all’ingresso dell’ADC un segnale sinusoidale di f = 60Hz. Dopo aver settato le opzioni nello spice secondo come mostrato in appendice A avviamo la simulazione. Dal tracciato della simulazione si può contare il numero delle occorrenze di ogni codice quindi creando un file out.dat contenente le occorrenze di ogni codice grazie al programmino di seguito riportato (figura 3.19) si può caricare il file out.dat quindi graficare l’istogramma delle occorrenze (figura 3.7) e calcolare la DNL (figura 3.9) e INL (figura 3.10) secondo il metodo sopra descritto. Per verificare l’equivalenza tra il metodo dei punti di transizione e il metodo code density test possiamo effettuare una nuova simulazione con un segnale d’ingresso pari alla rampa lineare di figura 3.1 che abbiamo usato per testare l’ADC mediante il metodo 1. Quindi dai risultati della simulazione e utilizzando il programmino di figura 3.19 possiamo graficare l’istogramma delle occorrenze (figura 3.12) e calcolare la DNL (figura 3.14) e INL (figura 3.15) nel caso di segnale di ingresso a rampa lineare. Dalle figure 3.2 e 3.14 risulta evidente che i grafici DNL e INL dei rispettivi metodi coincidono. 29
  • 30. % Programma per calcolare e graficare DNL e INL mediante il metodo2 clear; %Carica il file out.dat , matlab vede la variabile out come un array %rettangolare contenente le occorrenze di ogni codice e il codice load out.dat for i=1:255, observed([i])=out([i,1]) ;end %Calcolo della dnl e inl inl([1])=0; for i=1:255 dnl([i])=(observed([i])-ideal([i]))/ideal([i]); for j=1:i inl([i])=inl([i])+dnl([j]); end end % istogramma delle occorrenze bar((1:255),observed) % grafico DNL e INL plot((1:255),dnl,’b’,(1:255),inl,’r’); Figura 3.19 : Script matlab per graficare l’istogramma delle occorrenze e l’errore DNL e INL 30
  • 31. Figura 3.6 : Simulazione dell’ADC con un segnale d’ingresso sinusoidale 320 310 300 290 280 270 260 250 240 230 220 210 200 N. di occorrenze 190 180 170 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 1 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 253 Codice Figura 3.7 :Istogramma delle occorrenze di ogni codice quando il segnale d’ingresso è una sinusoide 31
  • 32. 300 250 N. di occorrenze 200 150 100 50 0 0 50 100 150 200 250 C o d ice Figura 3.8 Misura delle occorrenze di ogni codice comparate con le occorrenze ideali Curva blu occorrenze ideale, curva rossa occorrenze misurate (simulate) 0 .1 0 .0 5 0 DNL - 0 .0 5 - 0 .1 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 C o d ic e Fig 3.9 NON LINEARITA DIFFERENZIALE calcolata dalle occorrenze mostrate in figura 3.8 (MAX DNL=0.124LSB) 0 .2 0 .1 0 - 0 .1 INL - 0 .2 - 0 .3 - 0 .4 - 0 .5 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 C o d ic e Fig 3.10 NON LINEARITA INTEGRALE calcolata dalle occorrenze mostrate in figura 3.8 (MAX INL=0.548LSB) 32
  • 33. Figura 3.11 Simulazione dell’ADC con un segnale d’ingresso a rampa lineare 40 63 38 127 36 191 34 N. di occorrenze 32 30 28 26 24 22 1 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154 163 172 181 190 199 208 217 226 235 244 253 Codice Figura 3.12: Istogramma delle occorrenze di ogni codice quando il segnale d’ingresso è una rampa 33
  • 34. 42 40 38 36 N. di occorrenze 34 32 30 28 26 24 22 0 50 100 150 200 250 C o d ic e Figura 3.13 Misura delle occorrenze di ogni codice comparate con le occorrenze ideali (Vin rampa lineare di figura 3.11) Curva blu occorrenze ideali, curva rossa occorrenze misurate (simulate) 0 .2 5 0 .2 0 .1 5 0 .1 0 .0 5 DNL 0 - 0 .0 5 -0 .1 - 0 .1 5 -0 .2 - 0 .2 5 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 C o d ic e Figura 3.14 NON LINEARITA DIFFERENZIALE calcolata dalle occorrenze mostrate in figura 3.13 (MAX DNL=0.295LSB) 0 .5 0 .4 5 0 .4 0 .3 5 0 .3 INL 0 .2 5 0 .2 0 .1 5 0 .1 0 .0 5 0 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 C o d ic e Figura 3.15 NON LINEARITA INTEGRALE calcolata dalle occorrenze mostrate in figura 3.11 (MAX INL=0.46LSB) 34
  • 35. 3.3 FUNZIONE DI TRASFERIMENTO DELL’ADC PROGETTATO Dai punti di transizione possiamo ricavare la funzione di trasferimento dell’ADC (figura 3.20) 250 200 150 Codice 100 50 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Vin Figura 3.20 Confronto tra la caratteristica ideale e la caratteristica reale (in rosso la caratteristica ideale in blu la caratteristica simulata) Nel grafico di figura 3.20 non sono visibili gli effetti degli errori di non linearità in quanto è stato rappresentato tutta la scala dei valori del segnale d’ingresso. Se apriamo delle finestre ingrandite (figura 3.21) si può notare lo scostamento della caratteristica reale (in blu) dalla caratteristica ideale (in rosso). In particolare si può notare che in corrispondenza dei codici 64, 128, 192 lo scostamento è più evidente. Questo è in accordo con l’istogramma delle occorrenze di figura 3.12 dove nei codici 64, 128, 192 presenta un marcato buco, ed è in accordo col grafico della DNL di figura 3.14 dove negli stessi codici l’ampiezza dell’errore di non linearità differenziale è maggiore. 35
  • 36. 134 70 132 68 130 66 128 Codice Codice 64 126 62 124 60 122 58 120 56 1.15 1.2 1.25 1.3 1.35 1.4 2.35 2.4 2.45 2.5 2.55 2.6 2.65 Vin Vin 198 196 194 192 Codice 190 188 186 184 3.6 3.65 3.7 3.75 3.8 3.85 3.9 Vin Figura 3.21 Dettagli della funzione di trasferimento dell’ADC Quindi l’ADC esaminato presenta una grande non linearità quando il bit più significativo cambia stato (esempio andando da 00111111 a 01000000). Questo è determinato dal fatto che il livello di decisione di 00111111 è effettivamente un po’ più alto di 01000000 quindi in presenza di un segnale d’ingresso lentamente variabile (rampa lineare) l’ADC può a volte saltare direttamente da 00111111 a 01000001, e il codice 01000000 è perso (MISSING CODE). 36
  • 37. CONCLUSIONI Dalle simulazioni risulta: • L’ADC progettato presenta una velocità di conversione bassa (1.7us contro i 100-150ns di un half flash). Questo è dovuto alla bassa velocità del sub-ADC dove si è utilizzato come comparatore LM311 che presenta un tempo di risposta di 200ns contro i 40ns di comparatori più veloci (come LM106), naturalmente l’utilizzo di comparatori ad alta velocità comporta accorgimenti per evitare oscillazioni spurie (instabilità). Un’altra causa della limitata velocità è da ricercarsi nel blocco residuo-amplificazione. • Con un segnale d’ingresso sinusoidale lentamente variabile (f<60Hz) (figura 3.6) l’istogramma delle occorrenze di ogni codice di uscita si avvicina al caso ideale, infatti l’errore di non linearità differenziale massimo misurato col metodo statistico è di 0.124LSB mentre la INL massima è di 0.548LSB • Con un segnale d’ingresso a rampa lineare (Figura 3.11) l’istogramma delle occorrenza di ogni codice di uscita si discosta in diversi punti dal caso ideale in particolare nei codici 64,128,192 l’istogramma presenta un marcato buco che fa aumentare l’ampiezza dell’errore di non linearità differenziale (in questo caso DNL max = 0.295LSB) come è evidente dal grafico di figura 3.14. In altre parole si verifica un errore più grande del solito quando il bit più significativo cambia stato (esempio andando da 01111111=>127 a 10000000=>128). Questo è determinato dal fatto che il livello di decisione di 01111111 è effettivamente un po’ più alto di 10000000 come si può osservare dalla tensione d’ingresso dell’ultimo stadio (residuo_stadio4) mostrato in figura Quindi in presenza di un segnale d’ingresso lentamente variabile (rampa lineare) l’ADC può a volte saltare direttamente da 01111111 a 10000001, e il codice 10000000 è perso (MISSING CODE). Dalle tensioni residue di ogni stadio di figura 3.22 si può osservare come l’errore appena visto, dovuto principalmente all’offset del comparatore e alle non idealità delle tensioni di riferimento, si propaga nei vari stadi. 37
  • 38. Figura 3.22 :Tensione d’ingresso dei vari stadi 38
  • 39. APPENDICE A • Software utilizzato per la simulazione: Microsim Design 8.0 http://www.orcad.com • Software utilizzato per l’analisi dei dati: Matlab versione 4.2c.1 http://www.mathworks.com • Opzioni da abilitare per la simulazione: setup base opzioni da abilitare per ottenere il file contenente gli istanti di transizione 39
  • 40. BIBLIOGRAFIA [1] B. Razavi, Principles of Data Conversion System Design, The IEEE Press, New York 1995. [2] I convertitori A/D e D/A, Valerio Alessandroni, Elettronica Oggi N. 272 - 15 Aprile 1999 [3] A.M.J. Daanen, Classification of DA and AD Conversion Techniques, Report of the Graduation Work, Technical University, Eindhoven, Dec. 1986. [4] J.ÊDoernberg, H.-S.ÊLee, and D.ÊA.ÊHodges, “Full-speed testing of A/D converters,” IEEE J. Solid-State Circ., vol. SC-19, pp. 820-827, Dec. 1984. [5] Texas Instruments Application Report,” Understanding Data Converters”, SLAA013, July 1995. [6] Adc characterisation using the code density test method with deterministic sampling, Valentino Liberali, Franco Maloberti, and Massimo Stramesi, Department of Electronics, University of Pavia Via Ferrata 1, 27100 Pavia, Italy [7] J. E. Franca and Y. Tsividis, Editors, Design of Analog-Digital VLSI Circuits for Telecommunications and Signal Processing”, Chapters 9 and 10,Prentice Hall, Englewood Cliffs,1994 [8] S. Franco, “Design with Operational Amplifiers and Analog Integrated Circuits”, McGraw-Hill, Boston, 1998. [9] Integrated Analog-to-Digital and Digital-to-Analog Converters, R. van de Plasche, Kluwer Academic Publishers, 1994 [10] M. F. WAGDY “Diagnosing ADC Nonlinearity at the Bit Level” IEEE iransactions on instrumentation and Measurements, December 1989, pp. 1139-1141. [11] J. BLAIR “Histogram Measurement of ADC Nonlinearities using Sine Waves” IEEE Transactions on Instrumentation and Measurements, June 1994, pp.373-383. [12] M. F. WAGDY AND S. S. AWAD “Determining ADC Effective Number of Bits Via Histogram Testing” IEEE Transactions on Instrumentation and Measurements, August 1991, pp. 770-772. [13] DC Specifications of ADCs and DACs http://www.hit.bme.hu/people/papay/edu/ABCsoup.ht [14] INL/DNL Measurements for High-Speed ADCs http://www.maxim-ic.com/StartPage.htm 40
  • 41. [15] Defining and Testing Dynamic Parameters in High-Speed ADCs, Part 1 http://dbserv.maxim-ic.com/tarticle/view_article.cfm?article_id=112 [16] descrizione tipi di convertitori http://users.unimi.it/metis/METIS-3MKB/courseware/convertitori/Adc/indicein.htm [17] Correzione delle non linearita’ nei convertitori A-D ad alta velocita http://www.teoresi.it/meet_2000/conf/atti/cover.htm [18] Design Of A High-Performance Analog-To-Digital Converter http://www.csdmag.com/main/9810/9810feat2.htm [19] Evaluating Data Acquisition Specifications by Jonathan L. Tucker, Keithley Instruments http://www.evaluationengineering.com/index.html [20] HABIST (Histogram-based Analog Built-In Self-Test) http://www.fluence.com/bistmaxx/habist_tk1.html Author: Ing. Nelson Firmani (nfirmani@gmail.com) 41