Conversione A/D-D/A Esiste la possibilità di mettere in comunicazione un dispositivo analogico con uno digitale. -Un segnale analogico è un segnale che varia con continuità, al quale possono essere associate potenze varianti da pochi milliwatt a parecchie decine di watt. -Un segnale digitale, al contrario, può variare solo fra due livelli stabiliti che dipendono dalla famiglia logica adoperata ma che comunque non può superare mai il valore di qualche volt. Le potenze adoperate sono molto piccole, al massimo si raggiungono alcuni watt per i dispositivi a larghissima scala di integrazione. Si tratta quindi di due mondi completamente diversi, che però bisogna far coesistere in qualche modo. La comunicazione e lo scambio di informazioni fra i dispositivi analogici e quelli digitali avviene tramite un interfacciamento cioè una conversione (parliamo di interfacciamento ogni qualvolta che dispositivi di natura diversa devono comunicare fra loro). Circuito analogico Interfaccia X y Circuito digitale Cominciamo con il prendere in esame, il caso in cui un circuito di tipo analogico debba trasferire un dato ad un circuito digitale. La nostra interfaccia riceve all'ingresso un segnale analogico e fornisce in uscita un segnale digitale. È ovvio che fra questi due segnali deve esistere una qualche corrispondenza; cioè un segnale analogico trasporta un'informazione che può essere contenuta nella sua ampiezza e frequenza, quindi queste specifiche devono essere codificate in altrettante specifiche del segnale digitale, che possono essere la frequenza degli impulsi (o la durata di ciascun impulso) ed il loro numero complessivo. Molto spesso si pone anche il problema inverso, ossia quello della conversione di un segnale digitale in un segnale analogico corrispondente, cioè tale da conservare le informazioni contenute nel segnale di partenza. Circuito digitale Circuito analogico Interfaccia X y la conversione digitale/analogica Un convertitore D/A è un dispositivo che riceve in ingresso un numero binario, generalmente a 8 o 16 bit, e fornisce in uscita un segnale analogico avente una relazione di proporzionalità con il valore binario ricevuto. Se tutti i bit in ingresso sono nulli (tutti a valore logico basso) allora la tensione d'uscita assumerà il suo valore minimo,invece se sono tutti a valore logico alto la tensione analogica d'uscita assumerà il suo massimo valore. Perciò esistono due tensioni di riferimento: una positiva ed una negativa. La tensione in uscita dal convertitore D/A non varia con continuità ma a scatti passando bruscamente da un livello all'altro in seguito alle variazioni del codice binario presente all'ingresso. La risoluzione H (quanto) dipende dal numero di bit del convertitore. Supponendo che il valore di fondo scala (tensione totale compresa tra -Vrif e +Vrif) sia 12 volt e che il convertitore sia a 8 bit, la risoluzione sarà: H = 12 / 2^8 bit= 47m V V u +Vrif Ingressi binari 1111 1111 (+6v) +Vrif -Vrif Uscita analogica 1000 0000 0V 256 soglie 0000 0001 sGli ingressi binari vengono anche chiamati parole Le tensioni di riferimento corrispondono alle tensioni di alimentazione -Vrif 0000 0000 H T (-6) Dove 2^8bit (256) sono tutti codici possibili di ingresso. Al variare da un codice a quello successivo, l'uscita aumenta, di scatto, di 47 mV che sono molto pochi, e per questo l' uscita di un DAC viene detta un'approssimazione del segnale analogico originale. Infatti dal grafico si può vedere il segnale d'uscita variare proprio a scatti e non in modo continuo. Inoltre notiamo che al codice medio 1000 0000 la tensione di uscita corrisponde a 0v. la conversione analogico digitale Un convertitore A/D serve a convertire un segnale analogico, generalmente una tensione, in un corrispondente valore binario, secondo un codice stabilito. Supponendo di dover convertire in binario una tensione che può variare da valori negativi a valori positivi, usando un convertitore A/D a 8 bit, il nostro dispositivo può fornire in uscita 256 diverse combinazioni per codificare il valore di tensione applicato al suo ingresso. È quindi evidente che non possiamo codificare tutti i possibili valori della tensione applicata la quale, essendo di tipo analogico, può variare con continuità assumendo (teoricamente) infiniti valori. Inoltre bisogna stabilire una tensione di riferimento (Vrif) che generalmente corrisponde a Vcc/2 cioè a 0v; dove quando il segnale d'ingresso giunge in prossimità del medesimo valore l'a/d fornirà in uscita il codice medio (1000 0000). Codici di uscita Vcc U1 ADC8 D7 D6 D5 Vrif Vref+ D4 Vref- D3 D2 SC D1 OE D0 EOC 1111 1111 (+6v) V in Vin A volte, a seconda del dispositivo, le tensioni di riferimento possono essere 2 (Vrif+ e Vrif-) Vrif (0v) 1000 0000 Vdd 0000 0000 (-6v) la curva sul grafico rappresenta la crescita del segnale d'ingresso analogico mentre le caratteristiche verticali rappresentano le soglie più importanti. Ai piedini: Vin applichiamo il segnale d'ingresso, SC il clock, EOC ad un led (il quale si illuminerà ad ogni fine conversione in relazione con l'impulso di clock) e gli altri 8 pin da D0 a D7 sono i bit d'uscita. In questo caso H rappresenterà quell'intervallo di tensione cui deve variare il segnale d'ingresso per poter ottenere in uscita sicuramente una variazione di codice,anche in questo caso la formula è: H = 12 / 2^8 bit= 47m V che rappresenta la sensibilità del convertitore. Quindi il valore di H è un indice della qualità del convertitore A/D, ed è bene che sia piccolo se si vuole ottenere una buona prestazione dal dispositivo. Ovviamente se la risoluzione migliora, il margine di indeterminazione o ERRORE DI QUANTIZZAZIONE diminuisce: si definisce l'errore di quantizzazione nel modo seguente: €=H/2 e pertanto l'uscita digitale potrebbe approssimare il segnale d'ingresso con +/-€. TEMPI DI CONVERSIONE Un'altra specifica importante associata ai convertitori A/D è quella relativa al tempo di conversione del segnale. L'operazione di conversione non è instantanea ma presenta una durata diversa da zero, se pur piccola. Questo significa che il segnale d'ingresso, che è di tipo analogico, può cambiare valore mentre viene convertito in un tempo molto breve da non essere rilevato dal convertitore. Il segnale di tipo analogico nell'istante Td varia velocemente V 10 110 0 Td T Quindi la conversione sarà affetta da un errore; generalmente il tempo di conversione non produrrà errori maggiori di quello di risoluzione se la variazione di segnale compreso nell'istante Td non sia oltre il valore della risoluzione stessa: V In questo caso il segnale analogico varia velocemente di valore superiore a quello di soglia, senza però essere percepito dal convertitore 101 100 Td T Questi importanti problemi sono stati affrontati e risolti facendo uso di diverse tecnologie, esistono infatti convertitori di diverso tipo: -A/D C. a doppia rampa (conversione lenta) -A/D C. ad approssimazioni successive (conversione veloce) -A/D C. flash (conversione velocissima) quindi a seconda della frequenza del segnale che vogliamo convertire troviamo in commercio diversi tipi di convertitori. Dopo aver studiato i convertitori, siam passati alla simulazione Vin Vout con la simulazione al computer abbiamo avuto le prime le conferme sulla teoria studiata. Il circuito raffigurato è composto da un convertitore AD le cui soglie di riferimento sono due (una positiva ed una negativa) ed uno D/A. AlI'ingresso Vin dell'ADC abbiamo applicato un segnale campione (con forma d'onda sinusoidale), mentre al suo ingresso di clock un'onda quadra. All'aumentare della frequenza di quest'ultima aumenta la velocità di conversione ed avremo più codici binari nell'unità di tempo cioè un campionamento più veloce. Così facendo gli 8 bit in uscita dal ADC entrano nel DAC che riconverte in segnale analogico le combinazioni digitali; ma questo segnale analogico d'uscita non varia in modo continuo per quanto spiegato in precedenza. Vin Vout Inoltre è possibile visualizzare i codici binari in uscita dal ADC tramite dei led, ma anche su 2 display a 7 segmenti tramite codice esadecimale (da 1 a F) . questi codici li vedremo variare, in modo crescente o decrescente, se all'ingresso abbiamo una tensione variabile. In seguito a questi studi sui convertitori abbiamo deciso di realizzare un prototipo che rappresentasse, in modo pratico, quanto spiegato teoricamente A volte nei sistemi moderni si richiede contemporaneamente i due tipi di conversione, come nel nostro progetto: dove a scopo didattico mostriamo le soluzione ai problemi precedentemente citati ed altro ancora. Questo prototipo comprende diversi circuiti che assemblati insieme interagiscono fra di loro: infatti abbiamo come sistema di partenza un convertitore analogico/digitale ad approssimazioni successive (a/d c. 804), il quale presenta in ingresso un segnale che può variare da valori positivi a negativi. In uscita avremo codificato il segnale d' ingresso con 8BIT. Questi ultimi vengono prelevati e rielaborati da un secondo sistema che impiega un convertitore digitale/analogico (D/A C. 800), il quale fornisce in uscita un segnale di nuovo analogico (quest' ultimo verrà visualizzato su di un volmetro). In più un terzo sistema permette di visualizzare gli 8BIT tramite dei led, ma anche codificati in esadecimale visualizzabili su 2 display a 7 segmenti tramite le decodifiche 9368.i tre circuiti sono alimentati con tensioni stabilizzate(l'ADC a 6v, il DAC a 12v e il visualizzatore a 5V) . Uno scopo futuro potrebbe essere: applicare un sensore in ingresso del ADC804 ed inviare i BIT ad un computer che li elabora tramite un programma scritto appositamente, e che decide le azioni da svolgere in base ai dati rilevati. Elenco componenti D1=1N4004 IC1=ADC804 IC2=DAC800 IC3=IC4=9368 IC5=EMU7808 IC6=EMU7805 R1=10K R2=20K TRIMMER MULTIGIRI R3=470 TRIMMER R4=470 TRIMMER R5/R27=220 R28-R29=5K R30-R31=10K R32=12 R33=220 TRIMMER R34=100 TRIMMER C1=150pF C2=100 uF ELETTROLITICO C3-C4=1000 uF ELETTROLITICO C5=0.1 uF C6=0.01uF C7=0.1 uF C8-C9=100 nF C10=2200 uF ELETTROLITICO START=INTERRUTTORE DP1-DP2=DISPLAY 6 TFK 132 TDSR5160 G L1/L9=LED Z1/Z4=PRESE SERIALI schema elettrico intero alimentazione convertitore analogico / digitale Z1 convertitore digitale / analogico visualizzatore PER OTTENERE IL FUNZIONAMENTO CORRETTO DI QUESTO CIRCUITO BISOGNA: -alimentarlo con 12v; utilizzando cavi con spinotto a banana collegare l'alimentatore alle due boccole in alto a sinistra rispettando le polarità -collegare tramite gli appositi cavi Z1 a Z1 e Z2 a Z2. Così facendo visualizzeremo sulla barradi led un codice binario corrispondente al numero esadecimale visibile sui 2 display. -collegare un volmetro digitale all' “out analog” -ora proviamo ad agire sul trimmer multigiri, potremmo notare le variazioni di codice digitale e della tensione di uscita analogica -tramite l'interruttore start potremo sceglere la conversione libera oppure interronperla (solitamente si applica un clock dove durante la non conversione è possibile prelevare la combinazione binaria, metterla in serie tramite un multiplexer il cui clock sarà 8 volte più veloce di quello applicato allo start). Quando stiamo convertendo il led L9 sarà acceso, viceversa sarà spento. -si noti che la tensione d'uscita analogica è perfettamente simmetrica ai due codici estremi (00-FF), mentre sarà nulla in corrispondenza del codice intermedio (80). lati piste e lati componenti ADC DAC VISUALIZZATORE SCHEDA DISPLAY SCHEDA LED RESISTENZE PER TARARE STABILIZZATORE DATA SHEET DECODIFICA IN ESADECIMALE PER DISPLAY DAC LSB = LOW SIGNIFICATIVE BIT (BIT MENO SIGNIFICATIVO) MSB = MORE SIGNIFICATIVE BIT (BIT Più SIGNIFICATIVO) = 5K ADC