Alunno: Lamacchia Cosimo Classe: 4^A informatica Data consegna:21/03/2007 Oggetto: Verifica sperimentale dei registri, dei circuiti multivibratori e delle memorie Fase 1: Verifica del funzionamento del registro universale 74194. Fase 2: Verifica sperimentale dei circuiti multivibratori astabili e monostabili. Fase 3: Verifica sperimentale delle memorie. FASE 1: VERIFICA DEL FUNZIONAMENTO DEL REGISTRO UNIVERSALE 74194 L’integrato 74194 è composto da 4 Flip-Flop della tipologia D, che ha ingressi e uscite collegate a 4 Multiplexer che ne selezionano il tipo di funzionamento. Di conseguenza l’integrato può operare come registro a scorrimento o come semplice cella di memoria. La modalità viene scelta tramite i segnali di selezione dei MUX (S0 S1). Con le combinazioni di questi segnali si determina la modalità delle operazioni che il registro deve effettuare. Ponendo i due segnali a 0 si ha memoria, se i segnali sono posti entrambi a 1 l’integrato funzionerà come registro in parallelo, le altre combinazioni sono riportate nella tabella e determinano lo scorrimento a destra e a sinistra. Nel 74194 (registro a spostamento bidirezionale universale) tutti i Flip-Flop sono sincroni sul fronte di salita del segnale di clock. 16 3 VCC D0 D1 D2 D3 4 5 6 2 SID SIS 7 9 11 1 14 74194 O 1 S0 S1 CK CL 10 15 O0 O2 13 O3 12 S1 0 0 1 1 GND 8 S0 0 1 0 1 CK Modo Memoria Scorrimento a destra Scorrimento a sinistra Parallelo [rappresentazione dell’integrato 74194 con tabella di funzionamento] SI D D0 2 S1 0 S S D1 MUX 0 Q0 6 7 MUX D1 CK 0 CL0 CK 5 MUX D0 D3 SI S D2 4 3 1 Q1 MUX D2 CK1 CL1 2 Q2 D3 CK 2 CL2 3 Q3 CK3 CL3 11 1 RESET 15 Q0 14 (SO S) Q1 13 Q2 12 Q3 (SO D) [rappresentazione interna dell’integrato 74194 ] Per verificarne il funzionamento, l’integrato è stato posto su una bredboard e la verifica è stata fatta su tutte le modalità. La bredboard, montata sul minilab IDL 800, permetteva il collegamento con gli switch e i Led. L’alimentazione dell’integrato viene data collegando +5V al pin 16 mentre il collegamento a massa -1- con il pin 8. Gli ingressi S0, S1, SID, SIS sono stati rispettivamente collegati agli switch SW0, SW1, SW6, SW7 del digital lab. Gli impulsi in ingresso sono dati da un pulsante. Le uscite O0, O1, O2, O3 collegate con i led LED0, LED1, LED2, LED3. Utilizzando una parola standard 1010 dopo ogni reset è stato verificato il funzionamento per ogni tipo di registro: SISO(Serial Input Serial Output) PISO(Parallel Input Serial Output) SIPO(Serial Input Parallel Output) PIPO(Parallel Input Parallel Output) SISO La verifica del registro SISO doveva avvenire inserendo da destra i bit e una volta scritto il registro, la lettura doveva avvenire verso sinistra. Per la scrittura i segnali S1 e S0 sono stati posti rispettivamente a 0 e 1 (impostazione del registro a scorrimento a destra), quindi, dopo aver resettato il registro, la parola (1010)è stata inserita. L’inserimento dei bit, in questo caso, è avvenuto dal posizionamento al livello altro o basso dell’ingresso SID (pin 2 dell’integrato). RESET IMP SID 0 1 0 1 2 0 1 3 1 1 4 0 1 5 1 O0 0 0 1 0 1 O1 O2 O3 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 La tabella mostra la situazione del registro in fase di caricamento dei dati. Si nota che dopo aver resettato il registro bastano 4 impulsi, determinati dal segnale di clock, per caricare nel registro la parola. Inoltre per visualizzare nel registro la parola nell’ordine 1010 l’inserimento è avvenuto facendo passare prima il bit meno significativo, quindi la parola inserita era 0101. Per la lettura i segnali S1 e S0 sono stai posti rispettivamente a livello alto e livello basso. La lettura del dato inserito è effettuata sul LED0 dove è collegata l’uscita O0 (Pin 15 dell’integrato) il dato in uscita era 0101 in quanto l’inserimento è avvenuto immettendo prima il bit meno significativo della parola. Per azzerare il registro l’ingresso SIS è stato posto a libello basso. IMP SIS O0(SOS) 1 0 0 2 0 0 3 0 1 4 0 0 5 0 1 O1 0 0 0 1 0 O2 O3 0 0 0 0 0 0 0 0 1 0 La tabella mostra l’inserimento del bit 0 dall’ingresso SIS e la lettura all’uscita O0. Le altre uscite servono per mostrare lo stato dei Flip.Flop interni al registro. PISO La dimostrazione del registro PISO determina la scrittura in modo parallelo dei bit e la lettura su scorrimento a destra. Per la scrittura i segnali S1 e S0 sono stati posti a 1(modalità parallelo) e, una volta resettato il registro, gli ingressi D0,D1,D2,D3 sono stati posti a 1,0,1,0. Per la lettura i segnali S1 e S0 sono stati posti a 0 e 1(scorrimento a destra) l’ingresso SID posto a livello basso,in modo da azzerare il registro, e la lettura è avvenuta sull’uscita SOD che corrisponde a O3. RESET IMP D0 0 1 0 1 2 1 1 3 x 1 4 x 1 5 x 1 6 x D1 0 0 x x x x D2 D3 SID 0 0 x 1 0 0 x x 0 x x 0 x x 0 x x 0 O0 0 1 0 0 0 0 O1 O2 O3(SOD) 0 0 0_____ 0 1 0_____ 1 0 1_____ 0 1 0_____ 0 0 1_____ 0 0 0_____ Come si può vedere anche nella tabella la scrittura dei bit è immediata dopo un impulso il registro risulta carico. Necessitano invece 4 impulsi per poter effettuare la lettura del registro. -2- SIPO Il registro SIPO è stato dimostrato facendo inserire i bit da sinistra. Quindi la scrittura del registro comporta il posizionamento degli ingressi S1 e S0 a 1 e 0. La parola inserita dal passaggio di stato dell’ingresso SIS. Per la lettura i segnali di selezioni sono stati posti a 1 e si è verificata la parola letta sulle uscite O0 O1 O2 O3. RESET IMP SIS 0 1 0 1 2 1 1 3 0 1 4 1 1 5 0 O0 0 0 1 0 1 O1 O2 O3 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 La tabella mostra i bit in ingresso, per inserire la parola completa necessitano 4 impulsi. Per la lettura un solo impulso. PIPO Il registro PIPO è un registro immediato una volta posti S1 e S0 a 1, dopo aver resettato il registro, gli ingressi D0, D1, D2, D3 sono stati messi rispettivamente a 1,0,1,0. La lettura è immediata sulle uscite del registro ( O0, O1, O2, O3). RESET IMP D0 D1 D2 D3 0 1 0 0 0 0 1 2 1 0 1 0 Dalla tabella si nota che dopo il primo impulso viene scritta e letta la parola. Quest’ultimo è un registro che permette immediatamente la lettura dei bit inseriti. O0 O1 O2 O3 0 0 0 0_ 1 0 1 0_ FASE 2: VERIFICA SPERIMENTALE DEI CIRCUITI MULTIVIBRATORI ASTABILI E MONOSTABILI. La verifica dei circuiti multivibratori è stata realizzata con l’utilizzo di integrato 555. Questo integrato è così chiamato per la presenza al suo interno di 3 resistenze da 5 KΩ, che gli danno anche la funzione di partitore di tensione. Oltre alle resistenze c’è la presenza di un LATCH SR i cui ingressi sono regolati da dei circuiti comparatori. Una delle due uscite, quella negata, presenta un transistor BJT necessario per il corretto funzionamento dei circuiti multivibratori. 8 5K CL 6 + - R 3 Q SRLATCH 5K BJT 2 - [qui affianco: schema della struttura interna dell’integrato 555] + S Q 5K 1 -3- 7 Verifica del multivibratore astabile Un circuito multivibratori astabile è un circuito che non è in grado di mantenere stabilità in nessun livello. Di conseguenza ha l’uscita che commuta periodicamente da uno stato a un altro. L’instabilità è data da un condensatore. Una volta Vcc alimentato il circuito, il condensatore si carica fino ad arrivare a una tensione paria a 2/3 di Vcc, in uscita si avrà livello alto. La costante di tempo 4 8 R1 (τC) sarà τC = C * (R1 + R2). Successivamente il Vcc RESET condensatore si scaricherà fino ad arrivare a un valore di Vcc/3, in questo periodo di tempo l’uscita sarà a livello basso. La costante di tempo R2 pari a τS = C * R2. 3 BJT Nello specifico l’astabile con circuito integrato 6 2 Vcc 3 555 e costituito da: Vo 2 Vcc 3 - 2 resistenze (nel caso specifico R1 = R2 = 10KΩ) - Un condensatore (C = 10nF) Per la prova l’alimentazione è a 12V. C Vc GND 1 555 [affianco: astabile realizzato con integrato 555] # Studio teorico astabile Lo studio teorico consiste nel calcolo delle temporizzazioni e la durata del livello basso e del livello alto. Calcolo delle costanti di tempo: C C ( R1 R2 ) 10F 20 K 200s 0,2ms S C R2 10F 10K 100s 0,1ms Calcolo delle temporizzazioni: TH 0,69 C 0,69 0,2ms 0,138ms T TH TL 0,207ms TL 0,69 S 0,69 0,1ms 0,069ms Duty Cicle e frequenza del segnale generato in uscita: TH 100 66,6% T 1 1 F 4,83KHz T 0,207ms DC VCC = 12 V VCH = 8 V VCL = 4V Vc VCH VCL t Vo Vmax Vmax = 12V Vmin = 0V [grafico teorico astabile con 555] Vmin t -4- # Studio pratico astabile Lo studio pratico è stato realizzato collegando l’uscita (VO) dell’astabile e la tensione del condensatore (VC) ad un oscilloscopio in modo da poter verificare i diagrammi in correlazione. TH 0,1 ms TL 0,1 ms T 0,1 ms div div div VCL 5V div VCH 5V div 1,4div 0,14ms 0,7div 0,07ms 2,1div 0,21ms TH 0,14ms 100 100 66,6% T 0,21ms 1 F 4,76 KHz 0,21ms DC 0,8div 4V Vmin 5V div 1,6div 8V Vmin 5V div 2,3div 11,5V 0 0 I risultati ottenuti teoricamente si avvicinano molto a quelli pratici di conseguenza i calcoli risultano essere corretti. Verifica del multivibratore monostabile Il multivibratore monostabile è un circuito che può mantenere in maniera permanente un solo stato, se avviene una sollecitazione esterna l’uscita cambia livello. Questo livello è mantenuto per un periodo di tempo definito, dopo questo tempo il circuito è in grado di riportare l’uscita a livello originario in maniera spontanea. In particolare il monostabile realizzato con ingrato 555, mantiene stabile il livello basso e non appena ha una sollecitazione esterna l’uscita commuta al livello alto. Il periodo di tempo (Tm)è determinato dalla presenza di un condensatore (C)e della resistenza R1. quindi l’uscita è mantenuta a livello alto per tutto il tempo di carica del condensatore. Il monostabile con 555 presenta : - 2 resistenze (R0 = 100K e R1 = 10K) - Condensatore (C = 100F) - Interruttore utilizzato per generare la sollecitazione. [affianco: monostabile realizzato con integrato 555] Vcc R0 4 RESET 8 Vcc R1 3 6 2 Vcc 3 Vi Vo BJT 2 Vcc 3 C Vc GND 1 555 Vi t VC t VO t Il grafico mostra la situazione iniziale del monostabile. Appena in ingresso si ha una sollecitazione il condensatore si carica fino ad arrivare ai 2/3 di Vcc e lo stato dell’uscita commuta, ovvero passa dal livello basso a livello alto. Questa situazione rimane stabile fino a che il condensatore non raggiunge i 2/3 di Vcc tale soglia indica il passaggio allo stato iniziale. Di conseguenza il tempo va calcolato in funzione della capacità del condensatore. la costante di tempo sarà C C R0 e Tm = 1,1 * τC. -5- # Studio teorico monostabile Calcolo del tempo il cui il segnale di uscita Vo rimane al livello basso: C C R0 100F 100 K 1000ms 10s Tm 1,1 C 1,1 10s 11s Calcolo della tensione del condensatore t VC VCC VCC e 12 12 2,718 # Studio pratico monostabile 11s 10 s 8,04V Lo studio pratico può essere effettuato collegando l’uscita del monostabile a un diodo LED e verificare il tempo con un cronometro. Ovvero azionando il cronometro all’accensione del LED e bloccandolo allo spegnimento del LED. Dall’operazione si ottiene il seguente risultato: Tm 12s Il risultato ottenuto è approssimativo in quanto si può facilmente incorrere in errore. In ogni caso tale risultato può essere considerato accettabile. Il calcolo della tensione del condensatore è stato fatto collegando un multimetro con funzione di Voltmetro ai poli del condensatore il valore ottenuto è: VC = 7,896V Anch’esso molto approssimativo perché essendo VC il valore massimo è stato verificato con la lettura di una tensione in continua variazione. Verifica monostabile-astabile Una ulteriore verifica dei multivibratori astabile e monostabile è stata quella di collegare l’uscita del monostabile con il reset dell’astabile. In questo modo l’astabile veniva attivato per un periodo di tempo pari alla durata del livello alto in uscita al monostabile. La corretta esecuzione della verifica è stata possibile grazie all’aggiunta di 2 diodi LED, posti alle uscite del monostabile e dell’astabile. Vcc Vcc R1 4 RESET R0 8 Vcc 4 RESET 8 Vcc R1 R2 3 6 2 Vcc 3 Vo Vc 6 2 Vcc 3 Vi 2 Vcc 3 C 3 BJT GND 1 Vo BJT 2 Vcc 3 555 C Vc GND 1 555 [ rappresentazione del circuito monostabile-astabile] Per effettuare correttamente la lettura il condensatore dell’astabile è stato sostituito con uno di capacità C = 100μF. -6- # Studio teorico monostabile-astabile Calcolo delle temporizzazioni dell’astabile (quelle del monostabile sono le stesse della precedente verifica riguardante il monostabile): C 100F 20 K 2s S 100F 10 K 1s TH 0,69 2s 1,38s TL 0,69 1s 0,69s # Studio pratico monostabile-astabile Dalla verifica della prova si nota che: finche il monostabile rimane allo stato iniziale non si ha alcuna variazione nell’astabile, in quanto risulta resettato dato che l’uscita del monostabile è al livello basso. Non appena il monostabile ha una sollecitazione esterna l’uscita passa dal livello basso a livello alto e l’astabile viene attivato. Il LED posto in uscita al monostabile rimane acceso per 12 sec circa, mentre il LED posto all’uscita dell’astabile rimane acceso per 1 sec circa, poi si spegne per 1 altro secondo, poi si riaccende e tutto questo lo fa finche il monostabile non ritorna allo stato iniziale in cui l’astabile risulterà resettato. FASE 3: VERIFICA SPERIMENTALE DELLE MEMORIE La verifica delle memorie è stata effettuata con la SRAM CDM 6116, CMOS da 2 Kbyte. La prova consiste nel caricare nella RAM delle parole e poi verificare la scrittura con la lettura. Della RAM da 2 Kbyte ne verranno utilizzati 16 byte per rendere la prova più veloce. TIL 311 14 1 5 Vcc 1 3 2 1213 O0 14 7493 O CK 5 7 8 1 12 9 O2 8 O 11 3 8 A0 7 A 6 A2 5 A 3 I/O0 9 I/O1 10 1 GND 3 10 RESET 24 Vcc SRAM 6116 4 3 2 1 I/O2 11 I/O 13 3 CS A4 A5 A6 A7 23 A 8 22 A 9 19 A 10 OE WE 18 20 21 GND 12 [schema dell’esercitazione] L’integrato 7493 è un contatore utilizzato per generare gli indirizzi da cui scrivere e leggere una parola. Il TIL 311 è un diodo LED utilizzato per vedere a che indirizzo si stava oprando. Tutto il circuito è montato su un minilab IDL 800. -7- L’esercitazione si svolge in più parti: 1) Montaggio del contatore e verifica di quest’ultimo; 2) Aggiunta della RAM, scrittura e lettura sulla ram; 3) Realizzazione di un sequenziatore ciclico come sistema programmabile; 4) Realizzazione di un astabile; 5) Realizzazione di un semaforo. → Parte 1: Montaggio e verifica del contatore 7493 Il montaggio avviene collegando alimentando l’integrato e collegando le uscite a un TIL 311 i modo da poterne verificare il funzionamento. L’impulso (CK) viene fornito da un segnale TTL da 1Hz. Una volta resettato il contatore, e avviato il generatore di frequenza, parte il conteggio che risulta essere corretto. La lettura del conteggio è verificata sul display del TIL 311. Il contatore risulta essere funzionante → Parte 2: Verifica funzionamento della RAM Per il montaggio della RAM le uscite del contatore vengono collegate con i primi 4 indirizzi della RAM da 2Kbyte, quindi si ha il funzionamento di una RAM da 16 byte di indirizzamento. Gli altri indirizzi sono collegati a massa per non influenzare le operazioni. I segnali di I/O sono inizialmente collegati agli switch, presenti sul minilab, per la scrittura, poi ai LED in fase di lettura. La RAM, oltre alle operazioni di lettura e scrittura, può essere posta in alta impedenza. Le operazioni della RAM sono regolate dal segnale CS, che se disattivo pone l’integrato in alta impedenza, e dai segnali DE e WE tutti attivi al livello basso. CS 1 0 0 DE x 0 1 La tabella mostra il funzionamento della RAM con la combinazione dei segnali di controllo presenti su di essa ovvero i segnali CS, DE, WE. WE I/O x Alta impedenza 1 OUT (lettura) _ IN (scrittura) Una volta montata anche la RAM si procede con l’inserimento dei dati, quindi si pone il CS a 0 , il DE a 1 e si genera l’impulso al segnale WE per memorizzare il dato inserito. Per una facile scrittura dei dati il clock in ingresso al contatore è stato sostituito con un pulsante. Una volta inseriti i dati si pone l’integrato in lettura e tramite l’impulso che cambierà l’indirizzo, si potrà verificare quello che si è scritto precedentemente. SW3 SW2 SW1 SW0 A 3 A2 A1 A0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Led3 Led2 Led1 Led0 I3 I2 I1 I0 O3 O2 O1 O0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 A S S S S S A A S S A S A A S A S A S S S A S S A A S S A A S A S S S S A S S A A S S S S S A S S A A S S A A A S S A A S S A A La tabella riporta i dati inseriti e poi verificati con i LED. La scrittura nella memoria è avvenuta con successo. -8- → Parte 3: Realizzare un sequenziatore ciclico come sistema programmabile Inseriti e verificati i dati nella RAM si crea un sequenziatore ciclico utlilizzando come impulso il segnale TTL con F = 1 Hz quindi con il periodo T = 1s. CK D3 D2 1sec 1sec D1 4 3 2 1 7 6 5 2 sec 5 sec 3 sec 1 sec 2 sec D0 1sec 1 sec 3 sec 1 sec 1 sec 3 sec 2 sec 1 sec 11 10 9 8 14 13 12 2 sec 1 sec 1 sec 2 sec 2 sec 2 sec 2 sec 15 16 1 sec 1sec 1 sec 1 sec 1 sec 1 sec 1 sec 1 sec 1 sec 1 sec 1 sec 1 sec 1 sec 4 sec 1 sec 1 sec 2 sec 1 sec 1 sec 1 sec 1 sec [diagrammi temporali dei bit in inseriti nella precedente parte] Per questa verifica sono stati utilizzati i dati inseriti nella prova 2. La durata de1 livell1 di ogni segnale è riportata sui diagrammi. → Parte 3: Realizzare un astabile Per realizzare un astabile è stato utilizzato un solo segnale (nello specifico D0). I bit sono stati inseriti in modo da creare in uscita un segnale a due livelli. Per facilitare l’inserimento l’impulso in ingresso al contatore è stato dato da un pulsante. La lettura è stata effettuata collegando l’ingresso di clock al segnale TTL del generatore di funzioni . A 3 A2 A1 A0 D0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Periodo e frequenza del segnale di clock: FCK 1Hz 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1s FCK 1Hz Durata dell’astabile creato: TCK TD TCK * 4 4 s TH 1s T L 3s DC CK 1 DC 50% 2 TH 100 25% TD F 1 0,25 Hz 4s 3 4 5 6 7 8 9 10 11 12 13 14 15 16 D0 [diagramma dell’astabile creato] -9- → Parte 4: Realizzare un semaforo Per realizzare un semaforo si utilizzano solo 3 segnali di I/O perché il semaforo da realizzare ha solo 3 luci. Per la prova necessitano 3 LED colorati rosso, giallo, verde applicati rispettivamente ai segnali I/O2, I/O1 e I/O0. Una volta caricate le parole, mettendo come impulso quello generato da un pulsante, si effettua la verifica con segnale TTL in ingresso al contatore. A 3 A2 A1 A0 V G R 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 CK 1 2 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 3 Segnale TTL: T 1s F 1Hz Segnale Verde(V) e Rosso(R): T 4s TL 2s TH 2s DC 50% Segnale Giallo(G): TH 1s T 8s D.C. TL 7s 1s *100 12,5% 8s La tabella mostra la situazione del semaforo. Essendo un semaforo non ci potrà mai essere la condizione che il Verde e il Rosso siano accesi contemporaneamente di conseguenza si alterneranno, ma avranno la stessa durata (4 s in questo caso). Il segnalatore Giallo si attiverà per un secondo prima che scatti il Rosso ma in contemporanea al Verde. 4 5 6 7 8 9 10 11 12 13 14 15 16 V G R [diagramma degli stati in correlazione con il segnale di Clock] CONCLUSIONI Tutte le prove sono state eseguite con successo. I dati ricavati teoricamente risultano essere accettabili perché controllati dalla prova pratica e dalle simulazioni (ove è stato possibile effettuarle). Di seguito allego tutte le simulazioni dell’integrato 74194 e le simulazioni dei multivibratori astabili e monostabili. Le simulazioni dell’ultima fase non possono essere effettate in quanto il software previsto per le simulazioni non effettua simulazioni con l’integrato usato (SRAM CDM 6166). - 10 - Simulazione del registro SISO con scorrimento a destra: scrittura dati Simulazione del registro SISO con scorrimento a sinistra: lettura dati - 11 - Simulazione del registro PISO con scorrimento a destra Simulazione del registro SIPO con scorrimento a sinistra - 12 - Simulazione del registro PIPO - 13 - Simulazione Monostabile con 555 - 14 - Simulazione astabile con 555 - 15 - Simulazione monostabile-astabile - 16 -