Guida alle esercitazioni di Laboratorio 2014-15.

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