Guida alle esercitazioni del Laboratorio di Segnali e Sistemi a.a 2014 - 2015 A.NIGRO Dipartimento di Fisica, Università La Sapienza di Roma (Revisione settembre 2014) 2 Indice 1 Introduzione 5 2 Esercitazione n. 1: Familiarizzazione con gli strumenti 11 2.1 Familiarizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Studio di un circuito RC passa-alto . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Diodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Esercitazione n. 2 : Amplificatori a transistor 3.1 Amplificatore ad Emettitore Comune (CE) . . 3.2 Risposta in frequenza . . . . . . . . . . . . . . 3.3 Resistenza di uscita . . . . . . . . . . . . . . . 3.4 Inseguitore di tensione . . . . . . . . . . . . . . 3.5 Resistenza di uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 15 15 15 16 4 Esercitazione n. 3 : Amplificatore con doppia alimentazione 19 4.1 Elementi di progetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2 Misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Esercitazione n. 4 : Amplificatore differenziale 5.1 Progettazione e montaggio . . . . . . . . . . . . . . . . . . . 5.2 Misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Equalizzazione dei due transistor . . . . . . . . . . . . . . . . 5.4 Miglioramento del CMRR del circuito con un terzo transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 22 23 23 6 Esercitazione n. 5 : Amplificatore operazionale(I) 6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . 6.2 Misura della tensione di offset . . . . . . . . . . . . 6.3 Misura della Slew Rate . . . . . . . . . . . . . . . . 6.4 Misura del prodotto guadagno x banda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 26 26 26 7 Esercitazione n. 6 : Amplificatore 7.1 Amplificatore differenziale . . . . 7.2 Derivatore . . . . . . . . . . . . . 7.3 Sommatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . operazionale(II) 29 . . . . . . . . . . . . . . . . . . . . . . . . 29 . . . . . . . . . . . . . . . . . . . . . . . . 30 . . . . . . . . . . . . . . . . . . . . . . . . 30 3 8 Esercitazione n. 7: Amplificatore operazionale 8.1 Progettazione e realizzazione del circuito . . . . . 8.2 Misure . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Misura dei coefficienti di Fourier dell’onda quadra attivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 31 32 32 9 Esercitazione n. 8: Circuiti logici I 9.1 Livello di commutazione delle porte logiche TTL . . . . . . . . . . . . . . . 9.2 OR esclusivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 33 35 10 Esercitazione n. 9: Circuiti logici II 10.1 Contatore a 4 bit . . . . . . . . . . 10.2 DAC a 4 bit . . . . . . . . . . . . . . 10.3 Clock . . . . . . . . . . . . . . . . . 10.4 Circuito completo . . . . . . . . . . . 37 37 38 39 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Esercitazione n. 10: Microprocessore Z80 (I) 41 11.1 Verifica della temporizzazione dei comandi e cicli di istruzione . . . . . . . 41 11.2 Operazioni di input e output . . . . . . . . . . . . . . . . . . . . . . . . . . 42 12 Esercitazione n. 11: Microprocessore Z80 (II) 12.1 Montaggio del DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Collegamento del DAC allo Z80 . . . . . . . . . . . . . . . . . . . . . 12.3 Calibrazione del DAC . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4 Generazione di un dente di sega. Misura dell’ampiezza e del periodo 12.5 Forma d’onda costruita con dati memorizzati . . . . . . . . . . . . . 13 Esercitazione n. 12: Microprocessore Z80 (III) 4 . . . . . . . . . . . . . . . . . . . . 45 45 46 46 48 49 51 Capitolo 1 Introduzione Queste note costituiscono una guida per gli studenti che devono frequentare le esercitazioni del corso. E’ molto importante, prima di ogni esercitazione, leggere accuratamente il corrispondente paragrafo (così come è fondamentale, prima di ogni esercitazione, aver studiato e compreso i corrispondenti argomenti trattati a lezione e sulle dispense), in modo da poter lavorare proficuamente in laboratorio. I fisici sanno che un’ora di studio può far risparmiare parecchio ore in laboratorio. E’ anche fondamentale che tutti gli studenti, fin dall’inizio, abbiano una sufficiente padronanza degli strumenti che utilizzeranno durante le esercitazioni: a questo scopo è dedicata la prima esercitazione (“Familiarizzazione con gli strumenti”), la cui importanza non va sottovalutata. Grossolani errori, perdite di tempo e conseguenti frustrazioni sono spesso dovute, nelle sessioni successive, a un cattivo uso degli strumenti. Il lavoro in laboratorio si svolge in gruppi, ma è necessario che tutti i componenti del gruppo siano egualmente consci di ciò che si sta facendo e partecipino con un ruolo attivo. Il lavoro in laboratorio è parte essenziale di questo corso, quindi gli studenti devono dedicarsi ad esso molto seriamente. E’ solo attraverso questo lavoro che si può sperare di raggiungere una reale e utile padronanza della materia, toccando con mano quelli che sono i problemi pratici che si incontrano nella realizzazione concreta di circuiti elettronici. Lavorare in laboratorio E’ bene ricordare alcuni punti che vi aiuteranno a lavorare proficuamente in laboratorio: Strumenti: accendete gli strumenti che utilizzerete nel corso dell’esperienza all’inizio e lasciateli sempre accesi. E’ assolutamente insensato spegnere e riaccendere continuamente oscillografo, multimetro, ecc.. Lo stesso vale per i generatori di funzione o gli alimentatori. Naturalmente è spesso opportuno disconnettere le tensioni da un circuito mentre lo si sta montando o modificando: questo può essere meglio ottenuto disconnettendo i cavi che portano le alimentazioni alla basetta. 5 CONNETTORI BNC CONNETTORE ALIMENTAZIONE QUADRUPLO Figura 1.1: La basetta per il montaggio dei circuiti 6 Progettare l’esperienza: prima di tutto occorre avere uno schema chiaro del circuito che si vuole costruire, corredato del valore dei componenti. In alcuni casi i valori dei componenti sono già definiti nella traccia dell’esperienza, in altri essi devono essere scelti sulla base di un vostro progetto. In tal caso, prima di iniziare a montare il circuito, eseguite tutti i calcoli e le scelte necessarie, con l’accuratezza necessaria in modo da evitare banali errori dovuti alla fretta. Fate un disegno chiaro e tenetelo sempre sott’occhio. Costruire il circuito: tradurre il disegno in un circuito montato sulla basetta è molto semplice nelle prime esperienze, ma diventerà rapidamente più complicato. E’ importante eseguire sempre montaggi ordinati, in cui i componenti sono ancorati solidamente alla basetta, e in cui sia facile accedere ai vari punti del circuito con i puntali degli strumenti diagnostici (multimetro, oscillografo). E, possibilmente, in cui sia agevole sostituire un componente. Prima di montare ogni componente verificate che il valore sia quello giusto. Diagnostica: dopo aver montato il circuito dovete verificare che esso funzioni correttamente. Molto spesso avviene il contrario: il circuito non da segni di vita, ovvero si comporta in modo diverso da quello atteso. In questi casi è necessario investigare sulle cause di malfunzionamento, cioè eseguire delle procedure diagnostiche. Quindi bisogna avere sempre a disposizione i puntali del multimetro e le sonde dell’oscillografo, da utilizzare (in base alle situazioni) per questo scopo. Le cause del malfunzionamento possono essere varie: - cattive connessioni; - errori di montaggio; - errata scelta di uno o più componenti; - componente difettoso. Prima di invocare l’aiuto dell’assistente dovete procedere voi stessi a tutte le verifiche che aiutano a identificare il problema: - verificate accuratamente che il circuito sia montato correttamente, cioè secondo il progetto che avete sotto occhio; - verificate di nuovo che il valore dei componenti montati sia quello corretto; - misurate con lo strumento idoneo al caso la tensione nei vari nodi del circuito per verificare che essa sia ragionevolmente simile al valore atteso; - valutate la corrente che circola in ogni ramo (o componente), in base alle misure di tensione di cui sopra; Per individuare dove il circuito non funziona, applicate il segnale al suo ingresso e poi seguitelo passo passo, verso l’uscita, con la sonda dell’oscilloscopio. Nella grande maggioranza dei casi riuscirete ad individuare il problema e a risolverlo! Il quaderno di laboratorio Scrivere e mantenere un quaderno di laboratorio è una delle cose più importanti che dovete imparare, se non l’avete già acquisito dai corsi precedenti. Un buon quaderno di laboratorio 7 è uno strumento essenziale del fisico sperimentale ed è il punto di partenza per la scrittura di articoli scientifici o per preparare presentazioni orali. Un quaderno ben scritto che include schemi, grafici, tabelle e dettagli sulle misure fatte vi consente di ricevere un efficace aiuto da parte dei vostri stessi colleghi e degli assistenti. Un quaderno mal scritto risulterà invece molto frustrante per voi stessi e per chi vi assiste. E’ spesso molto difficile rispondere alla domanda “perché il circuito non funziona?”, oppure “perché i miei risultati sono sbagliati di un ordine di grandezza?”, se non si è in grado di ripercorrere con esattezza il procedimento sperimentale seguito. Ed è profondamente illusorio pensare di ricordare a memoria ciò che è stato fatto, ovvero i valori dei parametri utilizzati. Linee guida generali Create un indice (all’inizio o alla fine del quaderno) e aggiornatelo ogni volta che aggiungete nuovo materiale. Il quaderno dovrebbe contenere descrizione, tabelle, grafici, calcoli , analisi e conclusioni in modo compatto, ordinato e leggibile. Quindi scrivete tutto e solo il necessario, usando un buon italiano (limitate i termini inglesi all’indispensabile), senza dimenticare i necessari confronti tra i risultati ottenuti e ciò che ci si attende dai calcoli o dalla teoria. Non cancellate o strappate pagine dal quaderno. Annullate con una riga le parti errate, lasciando che siano comunque leggibili. Spesso si scopre che certe cose non erano poi veramente sbagliate, e comunque è utile sempre avere una traccia di ciò che si è fatto. Fogli volanti non sono accettabili in un quaderno. Grafici o tabelle prodotti con il computer devono essere accuratamente attaccati (usate lo Scotch Magic!) al quaderno stesso. Annotate tutto ciò che è rilevante sulle impostazioni e sulle letture degli strumenti, in modo da poter rapidamente ritrovare la stessa condizione sperimentale anche in momenti successivi. Fate dei semplici schizzi per mostrare le forme d’onda osservate nei punti rilevanti di un circuito. Questo aiuta a comprendere ciò che sta avvenendo e identificare eventuali malfunzionamenti. Quando costruite delle tabelle disegnate chiaramente le colonne (con intestazioni e unità di misura). Non appena avete fatto delle misure esaminatele per comprendere subito la qualità dei dati (eventualmente aiutandovi con grafici fatti a mano). Questo esame preliminare serve a verificare che i dati siano ragionevolmente vicini ai comportamenti attesi, e consente di individuare subito errori o malfunzionamenti evitando quindi di raccogliere grandi quantità di dati per accorgersi poi di qualche errore, e dover ricominciare tutto da capo. Osservazioni e suggerimenti Unità di misura: usatele in modo appropriato e scrivetele correttamente, come dovreste già sapere, e cioè, per esempio, volt e non Volt, dB e non db, Hz e non hZ o simili nefandezze. Informazioni sui guai derivanti dal cattivo uso delle unità di misura al sito: www.hq.nasa.gov/pub/pao/reports/1999/MCO_report.pdf 8 Cifre significative: sceglietele con criterio. Si sono visti studenti usarne anche otto (quale strumento di quelli usati ha questa risoluzione?) e altre volte appena una o due, mentre forse era ragionevole usarne tre. Errori di misura: argomento importante ma spesso non particolarmente significativo in questo contesto, e allora non ha molto senso indugiarvi troppo. Badate poi che molte volte gli errori sistematici sono dominanti rispetto ai casuali e allora certi sviluppi matematici perdono senso. Del resto molte delle misure che dovete fare rappresentano complessivamente l’andamento di un determinato fenomeno, che è ciò che vogliamo porre in luce e che ha molta più importanza di una analisi fine dell’errore del singolo punto sperimentale. Fit: i fit statistici non sono una panacea, in particolare per dati sbagliati e ancor meno per scelte sbagliate sui dati da utilizzare. Caso tipico: studio della risposta in frequenza di un circuito RC. Spesso ci si dimentica che i comportamenti asintotici sono un’approssimazione, valida solo a grandi distanze dalla frequenza di taglio: quindi è insensato fare un fit lineare dei dati nella regioni vicine alla suddetta frequenza di taglio. Queste ingenuità si evitano facilmente se si fanno rapidamente, a mano, dei grafici che mostrano subito il reale andamento del fenomeno. L’occhio umano è uno strumento molto importante e il fisico sperimentale non deve abbandonarne l’uso a favore del computer! Grafici: devono essere sempre corredati delle unità di misura sui due assi, possibilmente espresse in unità direttamente leggibili. Per esempio, non è molto sensato esprimere le frequenze in unità logaritmiche scrivendo 3 per indicare 1 kHz. Anche se la scala è logaritmica i valori andrebbero scritti in modo che voi stessi possiate capirci qualche cosa. E magari individuare subito qualche errore grossolano. Schemi sperimentali: sono una parte essenziale di una buona relazione di laboratorio. Dovrebbero contenere tutti gli elementi perché il lettore capisca cosa si è messo assieme per l’esperienza, in particolare l’indicazione degli strumenti usati. Gli schemi elettrici, in particolare, dovrebbero riportare le indicazioni del tipo e dei valori dei componenti usati (che spesso invece sono indicati da qualche altra parte, rendendone difficile la lettura) e magari anche le indicazioni dei livelli in continua e/o dei livelli dei segnali misurati nei vari punti. 9 10 Capitolo 2 Esercitazione n. 1: Familiarizzazione con gli strumenti Lo scopo di questa esercitazione è di consentire agli studenti di familiarizzarsi con la strumentazione del Laboratorio e di acquisire una buona padronanza del loro uso Le attrezzature che dovrete imparare a conoscere e ad usare sono: Basetta per il montaggio dei circuiti (quali punti sono collegati fra loro internamente?); Generatori di tensione continua; Multimetro; Generatore di funzioni; Oscilloscopio analogico; Oscilloscopio digitale; LCR Meter. E’ importante che tutti prendano confidenza con gli strumenti, in modo da non avere dubbi sul loro funzionamento e sulle loro prestazioni. Su ogni banco e’ disponibile un raccoglitore con i manuali di tutti gli strumenti: puó essere utile consultarli. 2.1 Familiarizzazione Il modo migliore per farlo e’ di costruire semplici circuiti con 2 o 3 resistori, oppure con resistori e capacitori, come nella figura 2.1. Si può quindi procedere nel modo seguente: R1 + vi R2 _ Figura 2.1: costruire uno qualunque dei circuiti sulla basetta, dopo aver misurato il valore dei componenti scelti; collegare il generatore di funzioni all’ingresso del circuito; selezionare un’onda sinusoidale sul generatore di funzioni; utilizzando le 2 sonde dell’oscillografo analogico, misurare sui due canali dell’oscillografo stesso tensione d’ingresso e tensione di uscita, verificando che ciò che si osserva è coerente con quanto atteso. 11 Avendo compreso come funzionano l’oscillografo ed il generatore di funzioni in regime sinusoidale, ripetere le osservazioni in regime impulsivo. Dopo aver preso confidenza con tutti gli strumenti e con la basetta, si può procedere al punto successivo. 2.2 Studio di un circuito RC passa-alto Costruire un circuito RC passa-alto (Fig. 2.2(a)) con frequenza di taglio dell’ordine di 10 100 kHz e impedenza di ingresso abbastanza alta ( > 1kΩ). Studiare, in regime sinusoidale, l’andamento con la frequenza della funzione di trasferimento (modulo e fase), costruendo i diagrammi di Bode del circuito. E’ opportuno fare un congruo numero di misure in modo da mettere bene in evidenza gli andamenti asintotici ed il comportamento attorno alla frequenza di taglio. Figura 2.2: (a): Circuito RC passa-alto (b): Circuito per la misura della curva caratteristica del diodo 2.3 Diodo Costruire un semplice circuito per studiare la caratteristica corrente-tensione di un diodo (Fig. 2.2(b)). 12 Capitolo 3 Esercitazione n. 2 : Amplificatori a transistor Utilizzeremo i transistori tipo 2N2222A (npn) per costruire prima un amplificatore a emettitore comune, con amplificazione di tensione pari a circa 8, poi un inseguitore di tensione. Le caratteristiche di questo transistor sono pienamente descritte nel foglio fornito dal costruttore: è bene dare una scorsa a questo foglio, anche per imparare a leggere questo tipo di documentazione. Tuttavia l’unico dato che ci interessa realmente in questo caso e’ il valore di hf e : il costruttore ci indica per esso un intervallo tra 50 e 350, a seconda del particolare esemplare e anche delle condizioni di utilizzo. Figura 3.1: Amplificatore CE 3.1 Amplificatore ad Emettitore Comune (CE) La prima cosa da fare è progettare e montare un amplificatore CE con rete auto-polarizzante in grado di fornire una amplificazione di tensione A ∼ 8 (attenzione: amplificazione di un segnale variabile, non dei livelli di polarizzazione in continua!). Scegliamo VCC = 12V e decidiamo di lavorare con tensione di base, VB = 1.7V . Da ciò consegue che la tensione dell’emettitore deve essere VE = 1V . Decidiamo di far lavorare il transistore con una corrente di collettore di 1 mA: quindi la resistenza di emettitore deve essere RE = VE /IE = (1V )/(1mA) = 1kΩ 13 Poichè vogliamo che l’amplificazione di tensione sia pari ad 8 dobbiamo avere: RC = 8RE = 8kΩ La tensione del collettore deve quindi essere VC = VCC − Rc IC = 12 − (1mA)(8kΩ) = 4V La VCE è quindi di 3 V . Ci aspettiamo quindi di poter amplificare senza deformazione segnali d’ingresso non superiori a (3V )/8 ∼ 350mV . Ci restano da scegliere le resistenze del partitore di base. Dobbiamo imporre che la corrente del partitore sia molto maggiore della corrente di base. Nel peggiore dei casi hf e = 50, quindi IB = IC /50 = 20µA E’ allora sufficiente porre IP = 200µA, da cui R1 + R2 = 12V /(200µA) = 60kΩ Inoltre si deve avere VB = 1.7V e quindi R2 /(R1 + R2 ) = 1.7/12 = .14 da cui R2 = .1460kΩ = 8kΩ e infine R1 ≃ 52kΩ ( in questo calcolo abbiamo potuto trascurare la corrente di base rispetto a quella circolante in R2 ). Non tutti i valori che abbiamo scelto corrispondono a resistori effettivamente disponibili. Ma possiamo lievemente modificare il progetto adattandolo alle disponibilità: il comportamento del circuito non cambia se i valori finali di correnti e tensioni statiche sono un po’ diversi rispetto a quelli calcolati sopra. Ora possiamo montare il circuito. Dopo averlo montato, collegare l’alimentazione e verificare con il tester che tutte le tensioni VC , VE e VB siano corrette e vicine ai valori attesi. In particolare dobbiamo verificare che la differenza di potenziale base-emettitore sia circa 0.7 V e che la differenza di potenziale collettore-emettitore sia positiva e molto maggiore di 0.2 V. In questo modo saremo sicuri che il transistor e’ nella regione attiva. Se ciò non e’, verificare che i resistori abbiano il valore previsto, che tutte le connessioni siano ben fatte e che la tensione d’alimentazione e la massa arrivino sulla scheda di montaggio. Se dopo queste verifiche non avete ancora risolto il problema provate a sostituire il transistor. Se la verifica e’ positiva possiamo applicare all’ingresso un segnale sinusoidale ad una frequenza intermedia (20 - 30 kHz e 200 - 300 mV di ampiezza picco-picco). Misuriamo con l’oscilloscopio la tensione d’uscita; dovremmo trovare un segnale sinusoidale con ampiezza circa 8 volte superiore rispetto al segnale d’ingresso. Aumentando progressivamente l’ampiezza del segnale d’ingresso si vedrà ad un certo punto che il segnale d’uscita si deforma e che le sommità della sinusoide vengono ’tagliate’: ciò e’ dovuto al fatto che l’ampiezza del segnale d’uscita supera la massima dinamica consentita dal valore statico di VCE . 14 3.2 Risposta in frequenza Vogliamo ora costruire il diagramma di Bode dell’ampiezza della funzione di trasferimento. Quindi dobbiamo misurare la amplificazione di tensione dell’amplificatore in tutto l’intervallo di frequenza esplorabile con il generatore di funzioni disponibile (da pochi Hz fino a qualche MHz). Possibilmente le misure devono essere equamente distribuite in scala logaritmica ed eventualmente infittite per porre in evidenza i cambi di regime attorno alle frequenze critiche. In queste misure può essere necessario aggiustare l’ampiezza del segnale d’ingresso: diminuendola quando il segnale d’uscita risultasse deformato; aumentandola quando diventasse troppo piccolo per consentirne una buona misura. Ci aspettiamo di osservare, a bassissima frequenza, un comportamento di tipo ’passa alto’, seguito, a media frequenza da un’amplificazione costante. A frequenze molto alte dovremmo osservare una discesa (comportamento tipo ’passa basso’) dovuta alle capacità interne dei due transistori E’ possibile che quest’ultima zona non sia osservabile, perché situata oltre la massima frequenza ottenibile con il generatore. Figura 3.2: Amplificatore CE con carico esterno 3.3 Resistenza di uscita Possiamo poi misurare la resistenza d’uscita RO del nostro amplificatore. Per farlo dovremo confrontare la tensione d’uscita con e senza un carico RL esterno. Naturalmente dovremo scegliere il valore del carico esterno in modo da ottimizzare la sensibilità della nostra misura. E’ noto che questo si ottiene quando RL ha un valore vicino a RO . Poichè conosciamo il valore atteso per RO possiamo scegliere opportunamente il valore del carico esterno. Per evitare di modificare il punto di lavoro statico dovremo interporre fra l’uscita e il carico una capacità CO (Fig. 3.2). 3.4 Inseguitore di tensione Costruite un inseguitore di tensione (emitter follower), utilizzando un altro transistor 2N2222A (Fig. 3.3). Progettate il circuito scegliendo valori ragionevoli per i 3 resisto- 15 Figura 3.3: Inseguitore di tensione ri, sulla base delle considerazioni riportate sulle dispense a proposito di questo circuito. Verificate con il multimetro che tutte le tensioni e correnti statiche siano corrette, poi misurate l’amplificazione di tensione a media frequenza. A volte questo circuito può essere molto disturbato. Potete curare questo inconveniente aggiungendo un resistore sul collettore. Figura 3.4: Inseguitore di tensione con carico esterno 3.5 Resistenza di uscita Misurate la resistenza d’uscita RO dell’inseguitore di tensione, con lo stesso procedimento del caso precedente, ovvero confrontando la tensione d’uscita con e senza un carico RL esterno. Anche qui e’ opportuno scegliere il valore del carico esterno in modo da ottimizzare la sensibilità della nostra misura. Qual é il valore atteso per RO in questo caso? Per evitare di modificare il punto di lavoro statico dovremo sempre interporre fra l’uscita e il carico una capacità CO (Fig. 3.4). 16 In questo circuito e’ possibile che la presenza del carico esterno provochi una distorsione del segnale che potrebbe apparire tagliato. Cercate di comprenderne il motivo e quindi trovare il modo di eliminare (o attenuare) questo inconveniente. 17 18 Capitolo 4 Esercitazione n. 3 : Amplificatore con doppia alimentazione Figura 4.1: Amplificatore CE con doppia alimentazione Lo scopo di questa esercitazione e’ la realizzazione di un amplificatore ad emettitore comune, con doppia alimentazione e by-pass parziale sull’emettitore (Fig. 4.1). L’andamento della amplificazione di tensione, Av , di questo circuito dovrebbe essere abbastanza chiaro (vedi le dispense): - per basse frequenze, ovvero quando l’impedenza di CE e’ molto maggiore di quella di RE2 , si ha RC bassa amplificazione Av = − re + RE1 + RE2 - per frequenze medio alte, ovvero quando l’impedenza di CE e’ molto piccola e assimilabile ad un corto circuito, si ha Av = − RC alta amplificazione re + RE1 dove re = 1/gm . Vogliamo porre in evidenza questo andamento; il circuito deve essere progettato in modo da avere alta amplificazione (Av ≃ −50) per frequenze maggiori di circa 1 kHz, mentre non 19 ci interessa il valore dell’amplificazione a bassa frequenza; inoltre vogliamo una dinamica d’uscita in grado di amplificare senza distorsioni segnali d’ingresso vs ≤ 100 mV . 4.1 Elementi di progetto Ricordiamo che in questo circuito la tensione statica della base e’ circa zero, questo consente di eliminare il capacitore d’ingresso e il partitore resistivo (si noti che la resistenza RB potrebbe essere omessa, serve solo a mantenere polarizzato il transistor quando il segnale d’ingresso non e’ connesso al circuito). I passi da fare per realizzare questo progetto sono: • scegliere le tensioni di alimentazione (per es. ±12 V ); • definire il valore desiderato della corrente IC (per es. 2 mA) e quindi calcolare il valore atteso per gm ; • trovare il valore complessivo di RE1 + RE2 per ottenere quella corrente; • scegliere il valore di RC in modo da avere una VCE idonea ad assicurare la richiesta dinamica di uscita; • scegliere il valore di RE1 necessario per ottenere l’amplificazione richiesta e, di conseguenza, il valore di RE2 ; • scegliere il valore di CE per avere la frequenza di taglio richiesta; • scegliere infine il valore di RB in modo che la tensione statica di base non si sposti molto dallo zero. 4.2 Misure Studiate l’amplificazione di tensione in funzione della frequenza del segnale (diagramma di Bode), mettendo in evidenza la transizione tra le varie regioni: bassa frequenza (dove l’amplificazione e’ piccola), media frequenza (dove l’amplificazione e’ grande), alta frequenza (dove intervengono le capacita’ parassite del transistor. Da queste misure si puo’ ricavare il valore effettivo di gm : confrontate il valore misurato con quello atteso. Dovete poi misurare l’amplificazione di corrente e la resistenza d’ingresso dell’amplificatore. Come si deve procedere? Studiate un modo idoneo per fare queste misure e confrontate i risultati con le aspettative. 20 Capitolo 5 Esercitazione n. 4 : Amplificatore differenziale Vogliamo costruire un amplificatore differenziale utilizzando due transistor 2N2222A e studiare poi le sue prestazioni con uscita in singola, cioè prelevandola da uno dei due collettori. Dovremo progettare la rete di polarizzazione in modo che la tensione delle 2 basi sia prossima a zero: questo ci consentirà di eliminare i capacitori di disaccoppiamento agli ingressi e quindi ottenere una buona risposta anche a bassissima frequenza. Figura 5.1: Amplificatore differenziale 5.1 Progettazione e montaggio Utilizzeremo due tensioni di alimentazione uguali ed opposte, per esempio, VCC = 14V , VEE = −14V . Conviene scegliere i 2 resistori RB dell’ordine di 1kΩ. In questo modo la tensione di ciascuna base sarà prossima a zero; infatti VB = RB IB e, poiche’ IB e’ presumibilmente dell’ordine delle decine di µA, avremo una VB dell’ordine di pochi mV. A questo punto i due emettitori VE saranno a circa −0.7 V . I due resistori RE1 e RE2 hanno una duplice funzione: da un lato riducono leggermente le amplificazioni A1 e A2 (evitando quindi possibili problemi di saturazione), dall’altro 21 ci consentiranno una migliore equalizzazione dei due transistor; conviene porle uguali e dell’ordine di 100 ÷ 200 Ohm. Per completare il progetto occorre scegliere i valori di RC1 , RC2 , RE . Si noti che il valore di RC2 (resistore sul collettore da cui non si preleva l’uscita) e’ del tutto irrilevante e potremmo anche non mettere quel resistore. Tuttavia esso ci sarà utile nel seguito ed e’ quindi opportuno avere RC2 = RC1 . Per scegliere convenientemente i valori di RE ed RC1 bisogna avere presente gli obiettivi che si desidera raggiungere: 1. siamo interessati ad avere un Common Mode Rejection Ratio grande, e questi migliora al crescere di RE ; siamo meno interessati ad avere una grande amplificazione in assoluto;. 2. occorre lasciare al transistor una congrua dinamica d’uscita, quindi una VCE a riposo di almeno 6 - 7 V. Montare accuratamente il circuito, alimentarlo e verificare che il punto di lavoro dei due transistor é corretto, cioè prossimo ai valori di progetto e, comunque, che i due transistor sono nella regione attiva e che le due VCE sono di ampiezza sufficiente. 5.2 Misure Possiamo misurare direttamente Ac inviando ai due ingressi due segnali uguali. Viceversa, l’amplificazione differenziale deve essere ricavata misurando separatamente le due amplificazioni A1 e A2 , dove A1 = vo vs1 con vs2 = 0 A2 = vo vs2 con vs1 = 0 e Da cui si ricava Ad = (A1 − A2 )/2 In pratica si deve inviare lo stesso segnale ai due ingressi alternativamente (ancora una volta si noti che l’uscita va prelevata sempre dallo stesso transistor, nella figura il transistor Q1 ). E’ opportuno, quando si effettuano le misure, chiudere con una resistenza da 50 ohm l’ingresso non utilizzato. A questo punto possiamo ricavare il Common Mode Rejection Ratio (CMRR). Conviene effettuare queste misure a media frequenza, verificando che i valori trovati siano, almeno come ordine di grandezza, in accordo con i valori attesi (è bene verificare le misure per due o tre valori di frequenza, vogliamo essere sicuri di non trovarci vicini alla frequenza di taglio del circuito, che può essere anche relativamente bassa). Ci aspettiamo di trovare, per A1 e A2 , due valori molti simili in valore assoluto, ma di segno opposto; Ad rappresenta in sostanza la media dei due valori assoluti, mentre Ac è la differenza. Quindi è chiaro che il circuito è tanto migliore quanto più A1 e A2 sono vicini (sempre in valore assoluto!). Si noti che le amplificazioni in singola di questo circuito possono comunque essere elevate, quindi va verificato che il segnale in uscita non sia distorto (sintomo di saturazione o di interdizione del transistor). In tal caso occorre ridurre opportunamente l’ampiezza del segnale d’ingresso. Da tutte le considerazioni qui esposte è chiaro quindi che queste misure sono delicate e dovete cercare di valutare ragionevolmente gli errori di misura. 22 5.3 Equalizzazione dei due transistor Molto probabilmente il CMRR misurato del circuito é molto inferiore alle attese e questo é dovuto alla non perfetta eguaglianza dei due transistor: le correnti di collettore sono diverse e di conseguenza sono diversi i gm . Si può migliorare il circuito cercando di equalizzare le due IC . Sostituire uno dei due resistori, RE1 ,RE2 , con un trimmer di valore opportuno (per es. 500 Ohm). Collegare il voltmetro tra i due collettori e regolare il trimmer cercando di portare a zero la d.d.p letta (che e’ proprio la differenza di potenziale tra i due collettori). In questo modo, se i due resistori RC1 e RC2 sono uguali, le due correnti di collettore sono equalizzate. Ripetere le misure in questa nuova situazione e confrontare i risultati con quelli ottenuti in precedenza. Figura 5.2: Amplificatore differenziale con generatore di corrente 5.4 Miglioramento del CMRR del circuito con un terzo transistor Si può provare a migliorare ulteriormente il CMRR del circuito, sostituendo la resistenza di emettitore con un generatore di corrente. Questo viene ottenuto inserendo il transistor Q3 . Scegliere le resistenze R1 ed R2 in modo da fissare la tensione di base ad un valore opportuno ( per esempio VEE /2); a questo punto la corrente erogata da Q3 è determinata dalla scelta di R3 . La cosa più semplice è di scegliere R3 in modo da avere grosso modo la stessa corrente che si aveva nella resistenza RE nel circuito precedente. Naturalmente conviene lasciare il trimmer nella posizione ottimale precedentemente determinata. 23 Dopo aver montato il circuito, verificare di nuovo tutte le tensioni statiche, per assicurarsi che l’amplificatore stia funzionando correttamente. Rimisurare nella nuova situazione Ac , A1 e A2 e ricavare il CMRR. Se il circuito è stato progettato e montato correttamente il CMRR può essere molto elevato e Ac può risultare troppo piccola per poter essere apprezzata con gli strumenti a nostra disposizione (naturalmente, poiche’ l’uscita e’ piccola, conviene aumentare l’ampiezza del segnale d’ingresso!). 24 Capitolo 6 Esercitazione n. 5 : Amplificatore operazionale(I) 6.1 Introduzione In questa esercitazione (e nella prossima) utilizzeremo l’amplificatore operazionale LM358 (o equivalente). Si tratta di un integrato a 8 piedini, contenente due amplificatori operazionali. Come al solito è opportuno prendere visione dei fogli illustrativi per familiarizzarsi con le caratteristiche principali di questo dispositivo. Figura 6.1: Piedinatura del LM358 Sebbene lo LM358 possa funzionare anche con una sola alimentazione è opportuno, per le nostre misure, fornirgli una doppia alimentazione (il piedino denominato ’ground’ va quindi alimentato con la tensione negativa), entro i limiti previsti dal costruttore. Inoltre è bene sempre ricordare che l’uscita dell’operazionale non è in grado di fornire correnti molto grandi: quindi le resistenze della rete di reazione non devono essere troppo piccole. Se osservate comportamenti anomali dell’operazionale durante le misure e’ possibile che esso sia stato danneggiato. E’ relativamente facile che cio’ avvenga durante il montaggio; in genere, quando l’operazionale è stato danneggiato, la tensione di uscita resta stabilmente ad un valore prossimo a quello di una delle due alimentazioni, indipendentemente da ciò che applichiamo agli ingressi, quindi è facile diagnosticare questo inconveniente (attenzione: rischiate di non accorgervene se gli ingressi dell’oscilloscopio sono in modalità AC!). Un altro indizio diagnostico è la tensione fra l’ingresso invertente e quello non invertente: se è maggiore di qualche millivolt (ricordate che questi oggetti hanno un guadagno altissimo) vuol dire che l’operazionale non è alimentato correttamente oppure è guasto. 25 6.2 Misura della tensione di offset La tensione di offset d’ingresso, Vos, è definita come la tensione che occorre porre tra i due ingressi per azzerare perfettamente l’uscita. Essa e’ di norma molto piccola, quindi e’ piu’ conveniente misurarla introducendo una reazione invertente (vedi figura): si ha allora: Vos ∼ −Vu (R1 /R2 ) Questa formula è valida purchè sia possibile trascurare il contributo della corrente di poR2 R1 Ib vo Figura 6.2: Misura della tensione di offset larizzazione Ib che scorre nell’ingresso invertente ( in sostanza se R1 Ib << Vos ). Dalle specifiche fornite dal costruttore Ib e’ minore o dell’ordine di 100 nA, mentre la Vos e’ dell’ordine dei mV. Questo ci fornisce le informazioni necessarie per scegliere R1 (che non deve essere comunque troppo piccola). La scelta di R2 determina il fattore di amplificazione: e’ chiaro che dovremo amplificare molto per rendere visibile sull’uscita l’effetto dell’offset. (Nota bene: R2 non deve comunque essere troppo piccola. Il suo valore determina la corrente che viene estratta dall’uscita, ed essa non deve avvicinarsi ai valori massimi previsti dal costruttore.) Il valore di Vos osservato sperimentalmente è in genere molto piccolo, spesso assai inferiore ai valori prudenzialmente dichiarati dal costruttore. Questo non deve stupire: i progressi nella tecnologia dei circuiti integrati rendono possibile raggiungere ottime simmetrie negli stadi di ingresso anche in amplificatori a basso costo come lo LM358. Non perdete piu’ tempo del necessario in questa misura: va intesa come una verifica veloce delle prestazioni dell’amplificatore. 6.3 Misura della Slew Rate Per misurare la slew rate dell’operazionale e’ conveniente costruire un amplificatore non invertente con amplificazione unitaria (inseguitore di tensione). Inviando all’ingresso un segnale rettangolare di ampiezza sufficientemente grande e’ possibile, osservando il segnale in uscita, misurare direttamente la slew rate. Confrontare il valore ottenuto con quello dichiarato dal costruttore nei fogli illustrativi. 6.4 Misura del prodotto guadagno x banda Costruire un amplificatore invertente e misurare l’andamento della risposta in funzione della frequenza per vari valori dell’amplificazione, costruendo il diagramma di Bode com- 26 vo vi Figura 6.3: Inseguitore di tensione plessivo (vedi figura). Verificare che il prodotto (Amplificazione)x(Banda Passante) è costante. E’ opportuno scegliere i vari valori di amplificazione (almeno tre, meglio quattro) |A| (dB) R’ R vo + vs _ log10 ν (a) (b) Figura 6.4: Amplificatore invertente in modo oculato, cioè tale da consentirci di apprezzare bene questo comportamento in un intervallo più grande possibile di valori e con un congruo numero di misure in funzione della frequenza (senza però farne troppe nella regione in cui l’amplificazione è costante). Tenete sempre presente che le resistenze usate non devono essere troppo piccole, ne’ troppo grandi. 27 28 Capitolo 7 Esercitazione n. 6 : Amplificatore operazionale(II) 7.1 Amplificatore differenziale Progettare e costruire l’amplificatore differenziale (come in figura) verificarne il funzionamento e misurare il Common Mode Rejection Ratio (CMRR) a media frequenza. Confrontare il risultato ottenuto con il valore stimato sulla base dei valori effettivi dei resistori utilizzati. R2 v1 v2 R1 vo R’1 R’2 Figura 7.1: Amplificatore differenziale In aula abbiamo studiato questo circuito ricavando la sua amplificazione nell’ipotesi di assoluta simmetria dei resistori, cioè con R1 = R3 e R2 = R4 . Dovete quindi calcolare nuovamente l’amplificazione, eliminando questa ipotesi, ed utilizzando i valori misurati dei resistori, e ricavare Ad , Ac e il Common Mode Rejection Ratio atteso. Naturalmente, in questo calcolo, faremo comunque l’ipotesi che il CMRR intrinseco dell’operazionale sia infinito (ovvero molto maggiore di quello derivante dalla rete resistiva esterna). Misurate separatamente A1 e A2 (mettendo a massa l’ingresso non utilizzato) e ricavate Ad da queste due misure; poi misurate Ac direttamente inviando lo stesso segnale simultaneamente ai due ingressi. Infine ricavate il CMRR sperimentale e cercate di valutarne ragionevolmente l’errore. 29 7.2 Derivatore Costruire un derivatore scegliendo un opportuno valore per R e C, in modo che il prodotto RC sia dell’ordine di 100µs. Studiare il diagramma di Bode dell’ampiezza nel più ampio intervallo possibile di frequenza utilizzando un segnale d’ingresso sinusoidale. Studiare poi il comportamento del circuito con segnali d’ingresso di forma diversa (onda triangolare, onda rettangolare) di opportuna frequenza. Il circuito illustrato in figura ha ben poche R C vs vo Figura 7.2: Derivatore probabilità di funzionare in modo soddisfacente. Il forte effetto Miller generato dall’altissima amplificazione dell’operazionale provoca l’insorgenza di una risonanza molto stretta (in sostanza il circuito acquista un comportamento tipo RLC), in grado di catturare disturbi esterni e amplificarli enormemente, rendendo il circuito non utilizzabile. Per ovviare a questo inconveniente è sufficiente aggiungere all’ingresso, in serie al capacitore, un ulteriore resistore, dell’ordine di 500 - 1000 ohm; in questo modo è possibile utilizzare il circuito e fare la misure descritte in precedenza. E’ comunque molto istruttivo osservare il comportamento del circuito con e senza questo nuovo resistore. 7.3 Sommatore Costruire un sommatore a due ingressi e verificarne il comportamento utilizzando come segnali di ingresso da sommare un’onda sinusoidale e un livello costante (ricavato, mediante un trimmer) da una delle alimentazioni, oppure due onde sinusoidali (utilizzando anche il secondo generatore di funzioni disponibile sul banco). In quest’ultimo caso, scegliendo le frequenze delle due onde poco diverse tra loro, potrete osservare all’oscilloscopio il fenomeno del battimento. R’ v1 v2 i R vo R Figura 7.3: Sommatore 30 Capitolo 8 Esercitazione n. 7: Amplificatore operazionale - Filtro attivo 8.1 Progettazione e realizzazione del circuito Vogliamo costruire un filtro attivo passa-banda (vedi figura), utilizzando l’amplificatore integrato LM358. Il comportamento di questo circuito è stato studiato nelle dispense del corso. Valori consigliati per i componenti passivi: R1 = 100k R2 = 330Ω R3 = 1M Ω C1 = C2 = 2.2nF Con questi valori dei componenti ci aspettiamo teoricamente di avere: Frequenza di risonanza: ∼ 4Khz Amplificazione sul picco: ∼ 5 Fattore di merito: ∼ 25 Larghezza di banda: ∼ 150Hz In realta’, come discusso sulle dispense, il circuito si discostera’ abbastanza da questi valori, a causa della non-idealita’ dell’operazionale. C1 vs R1 R3 C2 R2 Figura 8.1: 31 vo 8.2 Misure Dopo aver montato il circuito verificate rapidamente che esso funzioni correttamente. Successivamente studiate sistematicamente l’andamento in frequenza della risposta effettuando un congruo numero di misure, in modo da evidenziare l’andamento risonante ed essere in grado di ricavare i valori sperimentali per la frequenza di risonanza, amplificazione sul picco e larghezza di banda. Confrontate i risultati ottenuti con i valori attesi. 8.3 Misura dei coefficienti di Fourier dell’onda quadra Il filtro attivo puo’ essere utilizzato per studiare i coefficienti dello sviluppo in serie di Fourier di un’onda quadra (maggiori dettagli su questa misura possono essere trovati sui siti dei docenti del corso). - inviate all’ingresso del filtro un’onda quadra di frequenza pari a quella di risonanza del filtro, in uscita avrete la prima armonica del segnale d’ingresso; - inviate poi all’ingresso un’onda quadra di frequenza meta’, in uscita avrete la seconda armonica; poi di frequenza un terzo (terza armonica) e cosi’ di seguito. Confrontate le ampiezze ottenute con quelle previste dallo sviluppo di Fourier. 32 Capitolo 9 Esercitazione n. 8: Circuiti logici I Questa esercitazione e’ dedicata allo studio dei circuiti logici. Utilizzeremo un integrato della serie 74, in particolare il 74LS00. Queste porte logiche devono essere alimentate con una tensione di 5V (o leggermente superiore), mentre il piedino GND deve essere collegato a massa. Normalmente (tranne l’esperimento 1) gli ingressi delle porte logiche dovranno Figura 9.1: Piedinatura e schema logico del 74LS00 essere collegati a 5 V o poco meno (1 logico) oppure a 0 V o poco più (0 logico). Si noti che lo 0 logico significa collegare l’ingresso a massa e non lasciarlo volante! Per visualizzare rapidamente il livello delle uscite utilizzeremo dei LED (diodi luminosi). Il LED deve essere protetto con una resistenza dell’ordine di 500 Ohm. 9.1 Livello di commutazione delle porte logiche TTL Per prima cosa studieremo il livello di commutazione di una porta NOT (costruita utilizzando un NAND 7400). Manderemo all’ingresso una tensione variabile tra 0 e 5 V, ottenuta da uno degli alimentatori disponibili (diverso da quello utilizzato per alimentare l’integrato!) e studieremo l’andamento conseguente della tensione di uscita. In figura 9.2 e’ mostrato l’andamento orientativamente previsto. 9.2 OR esclusivo Costruire il circuito (vedi figura) e verificare la tavola della verità. 33 Figura 9.2: Misura del livello di commutazione Figura 9.3: OR esclusivo realizzato con 4 NAND 34 9.3 ADC A questo punto conviene iniziare la costruzione dell’ADC (vedi capitolo seguente). Data la complessitá del progetto, esso richiede un pomeriggio e mezzo. 35 36 Capitolo 10 Esercitazione n. 9: Circuiti logici II Questa esercitazione e’ dedicata alla costruzione di un convertitore analogico-digitale (ADC) a 4 bit. Lo schema complessivo è riportato nella figura 10.5, in cui si distinguono i vari blocchi funzionali: contatore, comparatore d’ingresso, convertitore digitale analogico a pesiera, adattatore di livello logico, clock. La tensione da convertire, Vx , deve essere negativa e viene costruita con un semplice partitore a partire dai -15 V disponibili dall’alimentazione. L’uscita del comparatore (-15 V / +15 V) viene riportata ai livelli logici standard TTL tramite il blocco Adattatore di livello logico. Il clock è ottenuto realizzando con due porte NAND un oscillatore a frequenza fissa. Conviene realizzare il circuito costruendo un blocco per volta e verificandone man mano il funzionamento, ed è importante che il montaggio sia effettuato con cura e con un buon ordine. 10.1 Contatore a 4 bit Figura 10.1: Schema logico e piedinatura del 7493. Affinche’ funzioni come contatore e 4 bit il piedino 12 deve essere connesso al piedino 1. 37 Dobbiamo anzitutto costruire il contatore che utilizzeremo per pilotare il DAC. Possiamo utilizzare l’integrato 7493 (Fig. 10.1) montato come suggerito nella Fig.10.2 . Per verificarne il funzionamento inviare all’ingresso di Clock un’onda quadra con ampiezza tra 0 e 5V e frequenza di circa 1 Hz. Si dovrebbe essere in grado di visualizzare la sequenza di accensione dei LED’s verificandone la correttezza. Si noti che, nel momento in cui questa parte viene connessa al circuito completo, esse viene modificata inserendo un opportuno interruttore, connesso alternativamente a 0 e 5V. In questo modo e’ possibile azzerare il contatore. CLOCK 14 2 11 3 8 7493 9 1 330 330 10 330 5 330 12 +5 V Figura 10.2: Montaggio del contatore a 4 bit 10.2 DAC a 4 bit R’ +15 V R 358 2R -15 V 4R 8R Figura 10.3: DAC a 4 bit Costruire un DAC invertente a pesiera, come in figura. La scelta dei valori di R’ ed R deve essere effettuata in modo da avere un’uscita compresa nella massima dinamica d’uscita possibile per l’operazionale, tenendo conto che il circuito e’ destinato a ricevere agli ingressi livelli logici TTL ( 0V / +5V). Inoltre i valori delle resistenze devono essere non troppo piccoli, per evitare eccessivi carichi di corrente. Cercate di selezionare i resistori R, 2R, 4R ed 8R il piu’ possibile vicini ai valori nominali, in modo che la scala dei pesi sia 38 ragionevolmente vicina a quella ideale. Dopo aver verificato il funzionamento del circuito collegate gli ingressi alle uscite del contatore. Inviando ora un clock a frequenza ragionevolmente elevata si potrà visualizzare sull’oscillografo l’andamento temporale della tensione d’uscita. Costruite un grafico della tensione d’uscita in funzione del numero contenuto nel contatore e verificate che la relazione sia approssimativamente lineare, confrontando il risultato con l’andamento atteso sulla base dei valori effettivi delle resistenze utilizzate. Si deve anche tenere conto del fatto che le 4 uscite del clock non sono in genere esattamente uguali ai valori nominali dello standard TTL. Tipicamente un 1 logico produrrà uscite dell’ordine di 3 - 3.5 V; inoltre, in alcuni casi, i valori delle uscite non sono stabili, ma variano lievemente al variare del conteggio. Questo si traduce in un deterioramento complessivo della qualità del convertitore, che non inficia tuttavia il suo funzionamento. 10.3 Clock C R R C Figura 10.4: Clock Possiamo dotare il nostro sistema di un clock costruendo il cosidetto astabile, vedi fig 10.4. Questo circuito oscilla in continuazione con una frequenza legata al valore dei componenti R e C. Costruire questa parte e verificarne il funzionamento. Si noti che, nel momento in cui questa parte viene connessa al circuito completo, esse viene modificata inserendo un opportuno interruttore, connesso alternativamente a 0 e 5V. In questo modo l’oscillazione puó essere bloccata e avviata a comando. 10.4 Circuito completo Possiamo ora costruire le altre parti del circuito: comparatore, adattatore di livello logico e clock, verificando il funzionamento di ciascuna. Infine, finire i collegamenti e provare il funzionamento per qualche valore della tensione Vx , verificando la linearità della risposta. 39 +5 V 1/4 7400 C R Interr. 2 Clock on/off +5 V Interr. 1 Counter reset R C 1/4 7400 1/4 7400 1/4 7400 1k 470 R’ +15 V R 2 14 11 2R 3 358 8 7493 4R -15 V 9 1 8R 330 330 330 10 12 330 5 +15 V -15 V +5 V 10k R Figura 10.5: Circuito completo dell’ADC a 4 bit 40 358 -15 V Capitolo 11 Esercitazione n. 10: Microprocessore Z80 (I) Leggere accuratamente la descrizione della scheda Z80, visualizzando i vari blocchi funzionali in modo da comprenderne pienamente l’uso. 11.1 Verifica della temporizzazione dei comandi e cicli di istruzione Scrivere un semplice programma di loop infinito e caricarlo in memoria utilizzando la procedura di immissione manuale in memoria. Indirizzo Istruzione Mnemonico Commento 0000 00 NOP Non fa niente 0001 C3 JP 0000 Salta alla locazione 0000 0002 00 0003 00 Per immettere un programma e farlo funzionare si deve: 1) Prendere il controllo del bus mediante l’interruttore BUSREQUEST; si ha il controllo quando é acceso il led verde BUSAK; 2) Mediante i pulsanti UP o DOWN posizionare il contatore degli indirizzi (ADDRESS COUNTER) nella locazione di memoria da cui si desidera far partire il programma; l’indirizzo relativo appare sul visualizzatore degli ADDRESS in forma esadecimale. 3) Impostare (in forma binaria) i byte delle istruzioni del programma da eseguire mediante gli interruttori 0-7; 4) Trasferire nella locazione di memoria indirizzata il dato impostato mediante il pulsante DATA WRITE; 5) Incrementare di uno la posizione dell’ADDRESS COUNTER mediante il pulsante UP; 6) Ripetere la sequenza 3-4-5 fino al termine del programma; 7) Per controllare l’esattezza dei dati impostati si può decrementare l’ADDRESS COUNTER mediante il pulsante DOWN verificando, locazione per locazione, il contenuto della memoria e correggendo gli eventuali errori: 8) Restituire i bus alla CPU mediante l’interruttore BUSREQUEST (il led verde si spegne); 9) Premere momentaneamente il pulsante di RESET; si accende il led rosso di RUN e la CPU cerca la prima istruzione da eseguire in 0000. Dopo aver memorizzato il programma farlo eseguire con il clock interno ad 1 MHz. Sincronizzare esternamente l’oscilloscopio analogico con il segnale M 1; 41 visualizzare su una traccia il clock della CPU (pin 6) e sull’altra traccia i seguenti segnali: - M1 M REQ RD D0 A0 RF SH Disegnare l’andamento, la fase ed i tempi rispetto al clock, delle forme d’onda osservate e verificarne l’accordo con i diagrammi temporali riportati nella descrizione generale dello Z80. Inserendo invece un clock esterno a pochi Hz é possibile osservare la fase di fetch di ogni istruzione sul visualizzatore degli indirizzi. 11.2 Operazioni di input e output Indirizzo 0k Z80 Indirizzo 0n DATA SET DISPLAY 74LS244 9368 DATA BUS Figura 11.1: Schema dell’apparato Possiamo comprendere il meccanismo di dialogo dello Z80 con dispositivi periferici, utilizzando gli interruttori e il display connesso al bus dei dati. Occorre quindi anzitutto assegnare a ciascuno di questi due dispositivi un indirizzo; ciò viene ottenuto, sulla scheda didattica, collegando con opportuni ponticelli due delle uscite del decodificatore di indirizzi al blocco degli interruttori e al display. (Il decodificatore di indirizzi dispone di quattro uscite, corrispondenti agli indirizzi 00,01,02,03; possiamo quindi scegliere arbitrariamente quali utilizzare tra queste) 42 Caricare poi in memoria con la consueta procedura il programma seguente: Indirizzo Istruzione Mnemonico Commento 00 06 LD B,xx carica registro B con xx 01 xx 02 05 DECB B=B-1 03 C2 JPNZ 0002 salto condizionato a 0002 04 02 05 00 06 DB 07 0n 08 D3 09 0m 0A C3 0B 00 0C 00 (salta se B diverso da 0 ) IN A,(0n) carica accumulatore con il dato sul dispositivo d’ingresso (ind. 0n) OUT(0m),A presenta contenuto accumulatore su dispositivo d’uscita (ind. 0m) JP 0000 salto incondizionato a 0000 Nel programma abbiamo indicato con 0k e 0n i due indirizzi: naturalmente dovrete inserire i valori corrispondenti alla scelta che avete fatto con i ponticelli! Il programma legge il dato contenuto sugli interruttori (unita’ di input) e lo scrive sul display (unita’ di output). Eseguire il programma con un CLOCK a bassa frequenza in modo da poter cambiare il dato mentre il programma e’ in RUN. 43 44 Capitolo 12 Esercitazione n. 11: Microprocessore Z80 (II) Lo scopo di questa esercitazione è la costruzione di un convertitore analogico digitale programmabile, utilizzando la scheda Z80 e un convertitore (DAC08) commerciale. Il DAC deve essere interfacciato al bus del microprocessore in modo da divenire una sua periferica di uscita, che potrà quindi essere pilotata da programma. Indirizzo 0k Indirizzo 0n Indirizzo 0m DATA SET DISPLAY DAC08 74LS244 9368 74LS374 Vout DATA BUS Z80 Figura 12.1: Schema dell’apparato Per costruire il nostro circuito utilizzeremo la scheda di montaggio connessa tramite un cavo flat alla scheda Z80 (vedi Fig 12.2). 12.1 Montaggio del DAC La prima cosa da fare è montare il DAC seguendo lo schema riportato in figura 12.3. Con questo montaggio il DAC fornisce all’uscita 0 V quando gli ingressi sono tutti ad 1 logico e +5V quando gli ingressi sono tutti a 0 logico. Verificarne il funzionamento, almeno in maniera grossolana, inviando agli ingressi dei livelli logici (0 o 1) ottenuti con opportuni collegamenti a massa o all’alimentazione dei piedini di ingresso. 45 SCHEDA MONTAGGI D7 D6 D5 D4 D3 D2 D1 D0 I/03 I/02 I/01 I/00 Connessione flat SCHEDA Z80 Connettore 34 pin Figura 12.2: Connessione tra la scheda Z80 e la scheda di montaggio. Attraverso il flat vengono portati sulla scheda di montaggio il bus dei dati e i quattro indirizzi decodificati. 12.2 Collegamento del DAC allo Z80 A questo punto possiamo collegare il DAC allo Z80 utilizzando un buffer 74LS374, vedi fig 12.4. Il 74LS374 e’ costituito da 8 flip-flops di tipo D, ’edge triggered’. Sul fronte di salita del clock le uscite Q sono poste allo stato logico presente negli ingressi D. L’ingresso ’Output Enable’ (attivo basso) puo’ essere utilizzato per mettere le 8 uscite nel normale stato logico, oppure in alta impedenza. Gli 8 ingressi D vanno quindi collegati al bus dei dati, mentre le 8 uscite Q vanno collegate agli ingressi del DAC. OE e Clock vanno ricavati dalla logica di indirizzamento presente sulla scheda Z80 in modo che il dato presente sul bus venga trasferito nel buffer e di qui al DAC. La cosa più semplice è di collegare OE a massa (l’output è quindi sempre abilitato) e il Clock all’uscita del decodificatore di indirizzi corrispondente all’indirizzo scelto per questa periferica (per esempio 03). Il questo modo gli ingressi del latch sono abilitati quando la periferica è indirizzata mentre le uscite sono permanentemente connesse agli ingressi del DAC. 12.3 Calibrazione del DAC Con il programma seguente lo Z80 invia al DAC il dato letto dalla tastiera. Quindi e’ possibile eseguire una calibrazione del sistema misurando con il multimetro (o con l’oscillografo) la tensione in uscita dal DAC, per vari valori numerici impostati sulla tastiera. E’ opportuno costruire un grafico per verificare il buon funzionamento e la linearita’ della conversione. 46 +5 V 4.7k D7 D6 D5 D4 D3 D2 D1 +5 V D0 4.7k 14 5 6 7 8 9 10 11 12 Vout 4 DAC 08 1 13 15 0.1μF 10nF 0.1μF +5 V 2 3 16 4.7k 4.7k +5 V -5 V Figura 12.3: Montaggio del DAC08 Figura 12.4: Piedinatura del 74LS374 47 Figura 12.5: Logica del 74LS374 12.4 Indirizzo Istruzione Label Mnemonico Commento 00 DB start IN A,(0k) legge dato da tastiera 01 0k 02 D3 OUT(0m),A scrive dato su DAC 03 0m 04 D3 OUT(0n),A scrive dato su display 05 0n 06 C3 JP start torna a start 07 00 08 00 Generazione di un dente di sega. Misura dell’ampiezza e del periodo Il programma che segue genera un dente di sega che potrà essere osservato all’oscillografo. Il periodo e’ strettamente correlato al numero di cicli di clock necessari per eseguire un ciclo completo del programma. 48 Indirizzo Istruzione Label Mnemonico Commento 00 D3 up OUT(0m),A Scrive su DAC 01 0m 02 3C INC A A = A +1 03 C2 JPNZ up Ripete se A non 0 04 00 05 00 06 3D DEC A A = A -1 07 D3 OUT(0m),A Scrive su DAC 08 0m 09 C2 JPNZ down Ripete se A non 0 0A 06 0B 00 0C C3 JP up Ripete ciclo 0D 00 0E 00 down 0F 12.5 Forma d’onda costruita con dati memorizzati E’ possibile costruire una forma d’onda a partire da una tabella contenuta nella memoria della scheda. Inserire in memoria jj dati (che rappresentano per punti discreti la forma d’onda desiderata) nelle locazioni da kk a kk + jj -1, e scrivere poi il seguente programma: 49 Indirizzo Istruzione Label Mnemonico Commento 00 06 start LDB, jj Carica in B il numero di dati 01 jj 02 21 LDHL, 00kk Carica in HL il primo indirizzo dati 03 kk 04 00 05 7E LDA,(HL) Copia (HL) in A 06 D3 OUT(0n),A Scrive sul DAC 07 0n 08 23 INC HL Incrementa HL 09 05 DEC B B = B -1 0A C2 JPNZ loop Ripete per il nuoo dato 0B 05 0C 00 0D C3 JP start Ripete tutto il ciclo 0E 00 0F 00 loop 50 Capitolo 13 Esercitazione n. 12: Microprocessore Z80 (III) Indirizzo 0k Indirizzo 0n DATA SET Indirizzo 0m DISPLAY DAC08 Vout 74LS244 9368 74LS374 DATA BUS Z80 D0 Indirizzo 0j 1 +5V 15 +V 1K 3 8 2 LM311 7 2 1 4 1nF 3 74LS365 Figura 13.1: Schema dell’apparato. Sono riportate le connessioni per il 74LS365 e per lo LM311 Vogliamo costruire un convertitore analogico digitale (ADC) tracking. Lo realizzeremo aggiungendo al sistema dell’esperienza precedente una ulteriore unità periferica. L’uscita del DAC viene ora inviata ad un comparatore; all’altro ingresso del comparatore 51 inviamo la tensione che vogliamo convertire (ottenuta tramite un trimmer a partire da una tensione costante). L’uscita del comparatore viene letta (attraverso un buffer) dallo Z80, che è quindi in grado di aumentare o diminuire la tensione del DAC in base al risultato della comparazione (vedi il diagramma di flusso in Fig. 13.2). Dopo aver montato il circuito (seguendo le indicazioni riportate in Fig. 13.1 ) scrivete il programma e caricatelo in memoria. Se tutto è stato fatto correttamente il sistema e’ in grado di inseguire le variazioni della tensione Vx , sia in aumento che in diminuzione (entro l’intervallo di funzionamento del sistema). D=0 V LETTURA COMPARATORE =0? Vx < VDAC Vx > VDAC D = D+1 D=D-1 Vx SCRITTURA DAC SCRITTURA DISPLAY VDAC t (a) (b) Figura 13.2: (a) Schema a blocchi del programma; (b) VDAC segue le variazioni di Vx La comparazione puo’ essere fatta con il comparatore LM311; si noti che questo richiede una resistenza di pull-up in uscita (vedi Fig. 13.1). Per leggere l’uscita del comparatore utilizzeremo invece un buffer 74LS365: questo integrato contiene 6 porte logiche con uscita 3-state, di cui ne utilizzeremo una. Input Output G1 G2 A Y H X X Hi Z X H X Hi Z L L H H L L L L Figura 13.3: Tavola della verita’ e diagramma funzionale del 74LS365 L’uscita del buffer che utilizziamo viene collegata alla linea D0 del bus dei dati (bit meno significativo). Dopo aver letto il bus dei dati occorre quindi “mascherare” gli altri bit del 52 Indirizzo Istruzione 00 16 01 00 02 7A 03 D3 04 0n 05 D3 06 0m 07 DB 08 0j 09 E6 0A 01 0B CA 0C 12 0D 00 0E 14 0F C3 10 02 11 00 12 15 13 C3 14 02 15 00 Label loop down up Mnemonico Commento LD, 00 0 -> D LD A,D D -> A OUT(0n), A A -> Display OUT(0m), A A -> DAC IN A,(0j) Comparatore -> A AND 01 Maschera A con 00000001 JPZ up se A=0 Vx > Vdac INC D D = D-1 JP loop RIPETI DEC D D = D+1 JP loop RIPETI Tabella 13.1: Programma dell’ADC tracking bus, poich è il loro contenuto non e’ predicibile. Questo può essere ottenuto con l’istruzione AND 01 , che calcola l’ AND logico tra il contenuto di A e il numero 00000001, depositando in A Il risultato. Il programma completo e’ riportato nella tabella 13.1. Si ricordi che la tensione in uscita dal DAC e’ inversamente proporzionale al numero binario in ingresso: con ingressi 00000000 VDAC = +5V , mentre con ingressi 11111111 VDAC = +0V . 53