Si descrivano le caratteristiche dei convertitori ADC a doppia rampa
I convertitori a rampa si basano sul principio di scaricare un condensatore caricato con la tensione di ingresso. Misurando il tempo di salita si può risalire al valore del segnale in ingresso. I convertitori a doppia rampa sono estremamente precisi anche se molto lenti. Essi hanno al loro interno un integratore che, dopo essere stato inizializzato a "0", mediante un interruttore che scarica la capacità, viene collegato alla tensione di ingresso. Se Vi è costante il condensatore si caricherà con una rampa decrescente finchè il contatore non andrà in overflow. A questo punto l'uscita OW del contatore farà commutare il deviatore di ingresso che si sposterà dal valore Vi a quello di Vfs. In questo modo il condensatore inizierà a scaricarsi secondo una rampa opposta alla precedente e con tempo di salita diverso dal precedente. Il contatore conterà il numero di colpi di clock prima che il segnale torni a zero. Questo tempo dipende solo da Vi e da Vfs, quindi le incertezze del condensatore e dell'integratore non costituiscono un problema sulla misura finale. Il tempo di misurazione deve essere minore del tempo in cui il contatore vada in overflow, per evitare che la misura fornita in uscita non abbia significato. La tensione Vfs deve essere scelta negativa, in modo da evitare problemi di offset.
I vantaggi di questo circuito oltre alla maggiore precisione, sono anche da rintracciarsi nella ridotta sensibilità ai disturbi esterni, poichè se il tempo di clock è un multiplo della frequenza della linea, da cui arrivano la maggior parte dei disturbi, i contributi di rumore della linea vengono annullati.
Si descrivano le principali configurazioni relative a protocolli indirizzi/dati
Nei sistemi multi-slave si hanno due tipi di informazione che viaggiano sulle linee: indirizzi e dati. Gli indirizzi identificano il destinatario dei dati trasmessi. Si possono identificare quindi due fasi successive: una prima di selezione, una seconda di trasferimento. Si possono usare i protocolli sincroni e asincroni della trasmissione dei dati anche se sono molto dispendiosi in termini di tempi. Per aumentare la velocità si possono far viaggiare indirizzi e dati su linee diverse, in modo da trasmettere dei dati e intanto selezionare lo slave successivo. Questa tecnica risulta però essere molto dispendiosa in termini di numero di linee, soprattutto in caso di un numero consistente di slave. Siccome le informazioni servono in un tempo successivo rispetto agli indirizzi è possibile far viaggiare indirizzi e dati in tempi sequenziali (tecnica TDM). Per identificare se si tratta di un trasferimento dato o indirizzo si possono usare controlli separati, in cui le coppie STB e ACK identificano il tipo di trasferimento.
Il numero dei bit di indirizzi può essere minore del parallelismo dei dati, in questo caso bisogna che sia presente un bit di validazione per ogni gruppo di bit. Nel caso duale, invece è necessario che gli indirizzi vengano fatti passare per un multiplexer, almeno in parte.
Per valutare le prestazioni di un protocollo indirizzi/dati si usa il throughput, che quantifica il numero di informazioni per unità di tempo. Un modo per incrementare il throughput è quello di aumentare il parallelismo, oppure di aumentare la banda, o anche di usare meccanismo di pipelining. Un altro metodo utilizzato è quello di trattare in modo speciale trasferimenti di blocchi su celle continue dello slave.
Un altro tipo di ciclo molto usato è quello del read-modify-write in cui ad ogni lettura corrisponde una successiva riscrittura del dato, senza la necessità di rinviare l'indirizzo.
Si descrivano i DAC potenziometrici
Per convertire n bit in un segnale analogico prevede che vengano collegate in serie 2^n resistenze uguali. Le uscite dei vari rami sono messe in ingresso a un commutatore a 2^n ingressi, che, mediante un albero binario di interruttori, sceglie quale tra ingresso e uscita collegare, fornendo in uscita un segnale analogico monotono. Il problema di questo DAC, in questa configurazione è il numero proibitivo di resistenze necessarie. Si utilizzano quindi diverse alternative, come ad esempio una che prevede una conversione a due livelli. Nella prima conversione, vengono convertiti solo una parte dei bit, i più significativi. Il valore di tensione convertito diventa l'alimentazione di un secondo DAC, in cui vengono convertiti i bit meno significativi. In questo modo si riescono ad ottenere conversioni abbastanza veloci con un numero ragionevole di resistenze.
Convertitori DAC a rete a scala R-2R
Questo tipo di convertitore si basa sul principio della creazione di correnti una il doppio dell'altra mediante reti a scala. Lo schema di base della rete R-2R si basa su un generatore di tensione con in parallelo una resistenza pari a 2R e in serie a quella una resistenza R. Unendo questo elemento base in sequenza e si permette tramite deviatori di controllare i vari blocchettini, si riesce ad ottenere un convertitore di tensione. Infatti pilotando i deviatori con i segnali logici digitali, si collegano le resistenze al morsetto invertente o a quello non invertente di un amplificatore operazionale. In questo tipo di convertitore bisogna stare attenti agli errori di offset e guadagno dovuti all'operazionale. Per avere una amplificazione corretta è necessario che la resistenza del morsetto invertente sia uguale a quella dell'altro morsetto. Per evitare quindi che sia sempre sbilanciato si può creare una rete duale alla precedente in modo da gestire correttamente questo fenomeno.
I deviatori sono normalmente dei MOS (danno luogo a MOS DAC) o dei transistori bipolari.
Per diminuire i problemi dovuti al rumore, si può creare un DAc a scala R-2R, mediante generatori di corrente, realizzati con deviatori a transistori bipolari, dando luogo ai bipolar-DAC. Questo tipo di DAC ha tempi di assestamento molto minori di quello in tensione.
Il problema principale di questo tipo di convertitori è che la precisione è dipendente dall'incertezza delle resistenze con cui è costruito, cosa non molto controllabile sui circuiti integrati.
Si descrivano gli errori tipici del S&H
Il S&H, qualunque sia il circuito con cui è realizzato, porta con sè degli errori in uscita dovuti ai componenti con il quale è costruito:
-siccome l'interruttore non è ideale, nello stato ON, presenta una Ron tra source e drain, nello stato di OFF, presenta una resistenza Roff. Idealmente Ron dovrebbe essere nulla, ma questo provoca durante la carica del condensatore che la costante di tempo taus non sia trascurabile, ma dipenda dal valore di Ch. La Roff provoca invece una parziale scarica della Ch.
-durante il passaggio da hold a sample, la capacità si trova ad essere caricata con il valore precedente dell'ingresso, mentre Vin è cambiato. In questa situazione il condensatore Ch tende a caricarsi per raggiungere Vin, in un tempo che viene detto tempo di acquisizione (tac). Spesso questo dato è scritto in funzione della Ch, variabile dall'utente.
-l'aggancio nella fase di sample non è mai perfetto e il segnale si discosta a causa dell'offset del primo operazionale (Vos o sample offset).
-quando si passa dalla fase di sample a quella di hold, prima di avere aperto l'interruttore si ha un certo ritardo. In questo periodo di tempo il condensatore continua a caricarsi e a inseguire il segnale, portando a un ulteriore errore. Tale intervallo di tempo è detto tempo di apertura (ta)
-il tempo di apertura non è mai costante e l'incertezza rispetto al ta medio è detto tempo di jitter di apertura (tja). I due valori ta e tja vengono separati in quanto il primo è recuperabile (ritardando opportunamente il segnale di ingresso), il secondo no.
-durante il passaggio dalla fase di sample a quella di hold si crea nell'interruttore una capacità tra gate e source (Cgs), provocando una iniezione di carica (cherge injection) su Ch. Questo provoca in uscita un gradino detto piedistallo dato da (Cgs*(differenza di tensione per spegnere l'interruttore))/Ch. Dalla formula si deduce che maggiore è la Ch minore è l'errore di piedistallo. Per ridurre questo effetto anche con valori bassi di Ch alcuni circuiti utilizzano al posto degli n-MOS i transmission gate. In questo caso infatti se i due MOS accoppiati sono uguali, si avranno contributi di corrente uguali ed opposti, che si elidono a vicenda.
-nella fase di hold, il condensatore tende a scaricarsi sia per effetto delle correnti dell'interruttore, sia a causa delle correnti in ingresso del secondo operazionale (corrente di droop). La variazione sul segnale in uscita è pari a (Idroop*Tc)/Ch
-nella fase di hold, a causa delle capacità drain-source si ha un accoppiamento capacitivo che permette il passaggio di corrente tra il segnale in ingresso al MOS e il condensatore, che si carica. Questo fenomeno è detto feedthrough e la capacità Cfeed. L'errore in uscita è dato da (Cfeed*(deltaVd))/Ch, con deltaVd, che dipende dal segnale in ingresso.
-è presente un errore di guadagno dovuto ai voltage follower
-alcuni tipi di condensatore mantengono in "memoria" lo stato precedente, anche quando vengono cortocircuitati per un certo tempo. Tale fenomeno, detto assorbimento dielettrico, crea idealmente una capacità parassita, che provoca allo stadio successivo una Vinfinito=(Vi*Cd)/Ch
Poichè normalmente si calcola il caso peggiore tutti i contributi di errore vanno sommati, in modo da garantire un'analisi accurata.
Si illustrino le differenze tra DAC R-2R e DAC a resistenze pesate
In un convertitore a resistenze pesate sono necessarie molte resistenze molto diverse tra loro in quanto partono da R e arrivano fino a 2*nR. Questo porta a delle difficoltà nella realizzazione di un convertitore di questo tipo, in quanto è difficile realizzare resistenze così diverse con incertezze simili (creando errori di non linearità). Un altro problema è che gli interruttori MOS usati sono in serie alle resistenze, provocando una serie tra la resistenza interna dell'interruttore e quella presente sulla linea e portando a errori. Nel convertitore R-2R, sono usate invece resistenze R e 2R, facili da realizzare. I DAC R-2R sono molto più veloci e più affidabili. Hanno però ancora dei problemi in quanto ad esempio l'errore in uscita dipende dall'incertezza sulle resistenze, difficile da gestire nei circuiti integrati.
Si descriva il fenomeno dei disturbi sulle linee di alimentazione
Un problema che si i costruttori hanno riscontrato man mano che i tempi di commutazione diminuivano e le velocità aumentavano è stato il bounce rate.
Per spiegare tale fenomeno è utile pensare a uno stadio di uscita di tipo CMOS, ad elevata corrente, collegato al mondo esterno mediante un contenitore (package). Il collegamento avviene normalmente tramite dili (bonding wire), che collegano le piazzole terminali (pad) e i piedini (pin) del contenitore. Questo sistema può essere modellizzato con un interruttore CMOS e con tre induttanze di qualche nanohenry, che si collegano a terra (Lgnd), alla tensione (Lvdd) e all'uscita (Lu). Analizzando la transazione 0->1 si nota che nel modello si potrebbe generare un "buco" sulla tensione di alimentazione. Per limitare questo fenomeno è utile inserire un condensatore di disaccoppiamento in grado di lavorare ad alta frequenza, per supplire a questa "mancanza" di tensione. Per la transazione 1->0 il discorso è più complesso in quanto essa provoca una caduta di tensione repentina, che potrebbe danneggiare lo strumento o alterare l'uscita su altre uscite. Questo fenomeno è detto ground bounce e tra le altre cose provoca anche un'estensione del riferimento interno di massa anche agli stadi di ingresso del circuito.
Per limitare il fenomeno del ground bounce si sono provate diverse soluzioni:
-diminuendo le induttanze, lo spostamento delle masse e delle alimentazioni verso il centro del package. Per diminuire le induttanze si è ad esempio raddoppiato il numero dei pin e i pad.
-dividendo il riferimento di massaper i circuiti di uscita, di ingresso e interni.
-diminuendo il salto di uscita, per ridurre la corrente e il rumore indotto.
Dal punto di vista dell'utilizzatore esistono invece altri accorgimenti che possono essere presi:
-collegamenti brevi verso massa e capacità di disaccoppiamento molto vicine al package
-far commutare le uscite in tempi differenti
-utilizzare famiglie veloci solo quando necessario.
Si descrivano gli errori di un DAC
Gli errori, rappresentati dallo scostamento rispetto alla retta ideale, sono in relazione con la risoluzione. I convertitori si possono comparare osservando il loro comportamento sia statico (dc), sia dinamico (ac). La classificazione degli errori può essere la seguente:
-errori statici
--errori di linearità, sono costanti e recuperabili mediante calibrazione. Spesso si usa l'accuratezza assoluta per valutare un convertitore, cioè l'errore massimo tra quelli che seguono.
---errore di guadagno, differenza di pendenza tra la retta ideale e la retta approssimante. Espresso come percentuale rispetto al fondo scala o con LSB
---errore di offset, passaggio per l'origine. Viene espresso con LSB e rappresenta l'intersezione della retta approssimante con l'asse analogico
--errori di non linearità, dovuti allo spostamento dei punti reali rispetto alla retta approssimante
---errori di non linearità differenziali (DNL), dato dalla massima differenza tra il salto reale e il salto teorico sull'asse delle ordinate tra due punti consecutivi
---errori di non linearità integrale (INL), dato dalla massima differenza tra la retta approssimante e ogni punto sull'asse delle ordinate. Questo valore è importante in quanto se è maggiore di 1LSB non è garantita la monotonicità del convertitore (ad un valore maggiore in ingresso può corrispondere un valore minore in uscita)
-errori dinamici
--tempo di assestamento, dato dal tempo in cui il segnale passa da uno stato ad un altro. Infatti, all'inizio, il segnale tende a stare fermo (tempo morto), per poi salire e assestarsi pian piano intorno al valore finale. Il tempo di assestamento (t settling) è dato dal tempo massimo in cui il segnale passa dal valore nullo al valore massimo e si stabilizza in una fascia di assestamento di +/- 1/2 LSB-
--glitch, dato dagli impulsi che si possono avere nel caso si passi da un valore (ad ese:011) ad un altro (ad ese:100). Durante la commutazione si potrebbe passare per valori molto più alti come 111. Un metodo per eliminare questo problema è quello di utilizzare un amplificatore con slew rate basso, in modo da ridurli, a scapito dei t settling. Un altro metodo consiste nel campionare l'uscita in ritardo. Un altro metodo ancora è quello di inserire un filtro passa-basso a valle del convertitore. Infine il metodo migliore è quello della segmentazione, cioè di trasformare l'ingresso usando una logica apposita in forma binaria codificata.
Si illustrino i convertitori flash e half flash
I convertitori flash sono degli ADC molto veloci e affidabili. Essi sono utili nel momento in cui si hanno segnali in ingresso a banda elevata. Il principio di funzionamento è simile a quello dei convertitori potenziometrici DAC. Si pone una serie di resistenze uguali e su ognuno di essi viene comparato il valore di tensione presente con quello della tensione di ingresso. Grazie a una loglica combinatoria, i convertitori ADC usano queste informazioni per produrre in uscita un numero digitale, proporzionale al valore di tensione di ingresso. Lo svantaggio principale è il grande numero di resistenze e di comparatori necessari per la realizzazione di questo ADC. Per ovviare a questi problemi, a danno della velocità di conversione, si utilizzano i convertitori half flash o subranging ADC, in cui la conversione viene fatta in istanti successivi. Sono infatti presenti all'interno dello stesso ADC, due ADC che lavorano con meno bit uno in sequenza all'altro. Vengono prodotti dal primo ADC i MSB e dal secondo i LSB. Per evitare problemi di missing code, dovuti a resti non riportati è meglio aggiungere prima dell'uscita dei MSB un ADDER, che aggiunge l'eventuale resto, proveniente dalla conversione dei bit meno significativi.
| < Prec. |
|---|





