ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA Esercitazione di laboratorio 2 Convertitore D/A e A/D con rete di peso Scopo dell’esercitazione Gli obiettivi di questa esercitazione sono: - Verificare il funzionamento di un convertitore D/A a 4 bit, - Individuare i punti critici per la nonlinearità differenziale - Individuare i punti critici per i glitch - Determinare gli errori di guadagno, offset, nonlinearità, - Verificare il funzionamento di un convertitore A/D a inseguimento. Moduli e componenti da utilizzare I circuiti richiesti devono essere predisposti sulle basette per montaggi senza saldature. Informazioni sull'uso delle basette sono reperibili sul sito web: Materiale didattico > Uso delle basette per montaggi senza saldature La rete che genera le correnti pesate comprende resistenze di valore scalato secondo le potenze di 2 (5k, 10k, 20k, 40k), pilotate da deviatori di tensione. I deviatori di tensione sono realizzati con uscite logiche CMOS. Viene usato il circuito integrato tipo CD 4029 (contatore a 4 bit programmabile). Il data sheet di questo componente è reperibile sul sito web: L'uscita può essere prelevata direttamente come tensione a vuoto sul nodo di somma, oppure come corrente di CC verso un nodo a massa virtuale (morsetto di ingresso di un amplificatore a transresistenza). Strumenti richiesti Alimentatore (5 V), generatore di clock (1 MHz compatibile CMOS), oscilloscopio, multimetro. Le verifiche di funzionamento dei circuiti vanno eseguite con l’oscilloscopio. Le misure di tensione vanno eseguite con il multimetro. Avvertenze Ricordare che nei circuiti CMOS tutti gli ingressi devono essere collegati a una tensione corrispondente a uno stato logico ben definito, e che a un circuito integrato non deve mai essere applicata una tensione esterna all’intervallo tra le alimentazioni. Predisporre i livelli del segnale di clock secondo questi criteri. ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0 ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA Convertitore D/A Lo schema di sinistra è un convertitore D/A a correnti pesate con uscita in corrente, in cui il dato digitale di ingresso proviene da un contatore binario a 4 bit (integrato CD 4029). Nel circuito equivalente Thevenin di questo convertitore (sezione AA verso sinistra) la resistenza equivalente di uscita è indipendente dalla posizione dei deviatori (cioè dallo stato delle uscite del CD 4029), e quindi la tensione a vuoto è proporzionale alla corrente di cortocircuito in uscita. Il circuito può quindi essere direttamente trasformato in convertitore con uscita in tensione (schema di destra). Nell’esercitazione viene utilizzato il circuito del D/A a 4 bit della figura di destra, con uscita in tensione. La tensione va misurata a vuoto (solo oscilloscopio o multimetro). Per pilotare eventuali carichi interporre un buffer, o usare il circuito di destra con amplificatore di transresistenza. CK CD 4029 Q1 Q2 Q3 Q4 R1 R2 R3 R4 39 kΩ 20 kΩ 10 kΩ 5 kΩ CD 4029 CK Q1 Q2 Q3 Q4 R1 R2 R3 R4 R1 R2 R3 R4 A A Iu Vu 1. Iniziare montando il contatore, configurato per conteggio modulo 16 a salire. Per verificare il funzionamento applicare un segnale di clock a onda quadra, e controllare la sequenza di stati sulle uscite del contatore. Collegare tutti gli ingressi del contatore CMOS Attenzione ai livelli del clock esterno ! 2. Montare la rete di peso: la resistenza da 5 KΩ è ottenuta con due resistenze da 10 kΩ in parallelo, e quella da 20 kΩ con due resistenze in serie. Applicando un segnale continuo di clock verificare che in uscita compaia una gradinata di 16 livelli equispaziati. 3. Mantenendo il clock continuo all’ingresso, misurare con l’oscilloscopio i livelli di ciascun gradino; determinare il fondo scala S e il valore del LSB. 4. Inserire sulle uscite del contatore i LED (con la basetta premontata o con una resistenza serie da 1 kohm), per visualizzarne lo stato. Ripetere la verifica del punto 3); cosa è cambiato e perchè ? Come possiamo collegare dei LED per visualizzare lo stato del contatore senza introdurre errori nell’uscita analogica ? 5. Modificare del 15% circa le resistenze corrispondenti a MSB, MSB-1, MSB-2, LSB (solo un ramo per volta - inserire un’altra resistenza in serie o in parallelo). Verificare l’effetto di ciascuna modifica. Quale relazione c’è tra peso del ramo modificato e posizione in cui viene alterata la caratteristica ? 6. Come e di quanto deve essere modificata la resistenza del MSB per introdurre errore di non monotonicità ? Eseguire calcolo e verifica sperimentale. ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0 ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA 7. Inserire sulle uscite del contatore piccole capacità verso massa (da 50 pF a 1 nF), per variare i ritardi di commutazione e introdurre dei glitch. Verificare la corrispondenza tra posizione del condensatore e posizione/verso dei glitch. 8. Scollegare il generatore di clock, e dare singoli impulsi a mano (resistenza di pullup e chiusura verso massa). Verificare che il numero di impulsi di clock forniti in questo modo è casuale (conviene tenere i LED inseriti per visualizzare lo stato del contatore). 9. Inserire un circuito antirimbalzo con FF SR (come per l’ultima esercitazione di Sistemi Elettronici), e verificare che con questo è possibile far avanzare il contatore uno stato alla volta. 10. Facendo avanzare il contatore passo-passo con l’interruttore e circuito antirimbalzo (oppure con il generatore esterno a frequenza molto bassa), misurare i livelli di ciascun gradino con il tester; e verificare che l’intervallo tra gradini adiacenti corrisponde a 1 LSB. Il risultato di questa misura è diverso a seconda che il gruppo di LED sia collegato o meno. Con i LED collegati la corrente assorbita nello stato L alza il livello VOL. Per confrontare le misure con la caratteristica ideale del convertitore D/A, occorre staccare i LED (controllare lo stato con i LED, staccare il LED del ramo in cui si esegue la misura). 11. Trasformare il circuito inserendo l’amplificatore di transresistenza come indicato in figura. Alimentare l0operazionale a +- 10 V. Progettare R5 per ottenere un fondo scala di–5V (approssimativamente). CK CD 4029 Q1 Q2 Q3 Q4 R1 R2 R3 R4 39 kΩ 20 kΩ 10 kΩ 5 kΩ R1 R2 R3 R4 R5 Vu 12. Usare al posto delle resistenze pesate una rete a scala R/2R. Quale deve essere il valore R/2R per avere lo stesso fondo scala senza modificare R5 ? 13. Con la rete a scala, ripetere le verifiche sul funzionamento indicate al punto 2 e 3. ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0 ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA Esperienza dimostrativa D/A La figura indica (per un DAC a 4 bit) la corrispondenza tra stati del contatore e tensione di uscita (nel caso di conteggio sequenziale una rampa). Sono riconoscibili le posizioni corrispondenti a metà del fondo scala (commutazione del MSB), i quarti, e così via. Verificare che introducendo anomalie (ritardi, errori nella rete di peso) su un determinato bit, gli effetti sono evidenti nel punto in cui il bit cambia stato. Per osservare la rampa in uscita e i segnali digitali conviene sincronizzare l’oscilloscopio sul segnale digitale più lento (uscita Q4). ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0 ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA Nonlinearità differenziale Le foto di questa pagina evidenziano errori di nonlinearità differenziale ottenuti modificando la corrente di un ramo della rete di peso (o della rete a scala) con una resistenza inserita in parallelo al ramo stesso. La rampa è formata da 64 gradini (convertitore a 6 bit). La resistenza è in parallelo al ramo del MSB. L’errore si manifesa come un incremento del peso del MSB (dovuto all’incremento della corrente nel ramo), che determina un “innalzamento” della seconda metà della caratteristica (corrispondente alla parte in cui MSB = 1). Inserendo la resistenza in parallelo al ramo del MSB-1 si modificano il secondo e il quarto “quarto”, in cui MSB-1 = 1. L’errore introdotto sul ramo è sempre lo stesso; dato però che il peso del ramo è metà rispetto al caso precedente, l’effetto in uscita è dimezzato. A metà del fondo scala la caratteristica diventa non-monotona. Spostando la resistenza sul ramo MSB-2 si nota che l’errore interviene per “ottavi” del fondo scala, con ampiezza ulteriormente dimezzata. L’entità dell’errore non è più tale da determinare non-monotonicità. Ritardando la commutazione del MSB-1; compaiono glitch in corrisponenza della metà e dei quarti di fondo scala. La direzione del glitch dipende dal verso della commutazione del bit: ritardando il passaggio da 0 a 1 si introduce uno stato temporaneo 000.. (glitch verso massa); ritardando il passaggio da 1 a 0 lo stato transitorio è 111…, che determina un glitch verso il fondo scala. ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0 ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA Convertitore A/D Trasformare il circuito in convertitore A/D, come indicato in figura (convertitore A/D a inseguimento). L’operazionale viene usato come comparatore tra la tensione Vu generata dalla rete di peso e la Vi di ingresso. Il contatore viene continuamente incrementato o decrementato (comando U/D), a seconda che la tensione Vu ricostruita attraverso il D/A sia maggiore o minore della Vi. CK CD 4029 U/D Q1 Q2 Q3 Q4 R1 R2 R3 R4 Vu Per adattare i livelli presenti in uscita dell’operazionale ai livelli richiesti per il comando up/down del contatore si usa la rete formata dalla resistenza R6 e diodo zener. Utilizzare uno zener da 3,9 o 4,1 V, con R6 = 1 kΩ. Va In alternativa è possibile alimentare sia il contatore del D/A che il comparatore con una tensione 0-7 V. In questo caso, per il comparatore, è preferibile usare amplificatori operazionali con uscita “rail to rail”, ad esempio tipo TL081 Per questa esperienza occorrono due generatori; - generatore del segnale Va (ingresso al convertitore A/D) - generatore di onda quadra per il clock CK. Questo potrebbe essere realizzato con il circuito oscillatore a onda quadra visto nell’esercitazione precedente. Come comparatore conviene usare un operazionale veloce (ad esempio LM748), o un comparatore vero e proprio. Il componente LM741 (operazionale compensato per essere stabile a guadagno unitario) è molto lento, e i ritardi di commutazione dell’uscita possono pregiudicare il funzionamento come convertitore A/D. Visualizzare lo stato del contatore collegando alle uscite il gruppo di LED premontato, o singoli LED con resistenze da 4,7 KΩ in serie (verso l’alimentazione). Facendo variare molto lentamente l’ingresso analogico Va, verificare il funzionamento e tracciare la transcaratteristica D(A). ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0 ELETTRONICA PER L’INFORMATICA ESERCITAZIONE DI LABORATORIO 2 Sede di IVREA Esperienza dimostrativa A/D E’ possibile verificare il funzionamento dinamico del convertitore applicando un segnale Vi di ampiezza corrispondente al fondo scala e frequenza bassa, tale che lo slew rate massimo sia inferiore allo slew rate ottenibile sulla Vu (pari ad Ad/Tck). Nell’immagine compaiono le tensioni Va e Vu: Va è la tensione sinusoidale, e Vu il segnale ricostruito attraverso il D/A, che si modifica in modo da inseguire continuamente Va. La differenza Va – Vu è l’errore di quantizzazione. Espandendo l’asse tempi si osservano i singoli passi dell’inseguimento, a gradini di ampiezza costante in discesa o in salita. Quando il segnale varia entro 1 LSB (zona indicata dall’ellisse gialla) si ha una sequenza di passi in salita e discesa alternati. Nella zona a derivata massima (attraversamento del valor medio della sinusoide) il segnale ricostruito varia alla massima velocità possibile (ellisse rossa, sequenza di gradini in salita) Aumentando la frequenza del segnale cresce lo slew rate, e la tensione Vu non riesce a inseguire Va determinando un errore di sovraccarico. Il segnale ricostruito diventa un’onda triangolare, con pendenza corrispondente al massimo slew rate, pari ad Ad/Tck (lo stesso della zona entro l’ellisse rosso della figura precedente). ELINFlab2e - © DDC/CP - rev 20/05/2007 9:33 AM 0