Decodifica tastiera

MM 74C922

 

Prima di addentrarci nella descrizione del funzionamento del circuito è bene sottolineare una cosa molto importante: nonostante la sua sigla possa far pensare il contrario, l'integrato in questione è un C-MOS, così come sono versioni C-MOS dei corrispondenti TTL tutti gli integrati della famiglia dei 74C (da non confondere con i 74HC, che sono C-MOS veloci e funzionano con alimentazione a 5V). Si tratta perciò di un integrato che ha un bassissimo consumo (l'intero telecomando è alimentato da una pila da 12V versione mini da 4mm) e che può funzionare con tensione di alimentazione compresa tra 3 e 15V. Viene qui di seguito riportato lo schema interno dell'integrato.


 

Si noti che nello schema sono disegnati anche i tasti della tastiera, che sono esterni al componente ed organizzati secondo quattro colonne e quattro righe: premendo un tasto, si mette in collegamento una colonna con una riga.

Il funzionamento del circuito è sincronizzato da un segnale di CLOCK, che può provenire dall'esterno ed essere applicato all'ingresso contrassegnato con la scritta OSC. Se non si usa un CLOCK esterno, come nel nostro caso, è lo stesso componente che provvede a generare tale segnale.

 

Come si può vedere, l'ingresso OSC fa capo ad un INVERTITORE a Trigger di Schmitt, provvisto di un resistore di reazione da 10 kW, inserito tra l'uscita e l'ingresso.

Collegando, all'esterno dell'integrato, un condensatore di valore opportuno tra l'ingresso OSC e massa, si ottiene un oscillatore, la cui frequenza di oscillazione dipende dalla capacità del condensatore stesso e può essere ricavata come:

f @ 0,3476 / C

 

La frequenza ottenuta dal generatore di CLOCK è applicata al contatore a 2 bit. Si ottengono cosi quattro combinazioni di bit che esprimono in codice binario i numeri da O a 3.

Questi segnali sono applicati agli ingressi di una decodifica 2 a 4.

Ciascuna combinazione di ingresso definisce quale uscita della decodifica diventa attiva, passando dal livello alto a quello basso. Le corrispondenze tra la combinazione di ingresso e l'uscita attiva sono le seguenti:

Combinazione

d'ingresso

Uscita attiva

(livello basso)

0

0

X1

0

1

X2

1

0

X3

1

1

X4

 

Come si è già detto, nelle tastiere a matrice, il circuito rende attive ciclicamente le quattro uscite e porta a livello basso le colonne dei tasti corrispondenti: usualmente si dice che il circuito "interroga la tastiera". Si esamini ora il circuito di codifica: i suoi quattro ingressi sono collegati alle quattro righe di tasti, che, tramite quattro resistori, indicati con R, sono collegate alla tensione di alimentazione. Quando nessun tasto è premuto, gli ingressi del circuito di codifica sono a livello alto; quando invece si preme un tasto, la riga corrispondente viene portata a livello basso nell'istante in cui diventa attiva la colonna relativa.

Supponendo, per esempio, di premere il tasto 5, nell'istante in cui alle uscite del contatore si presenta la combinazione 01, la colonna X2 va a livello basso ed attraverso il tasto 5, va a livello basso anche la riga Y2. I1 circuito di codifica "sente" questo stato e, attraverso la linea di TASTO PREMUTO, invia un segnale di comando al circuito di eliminazione rimbalzi. Questo circuito, che serve appunto, come dice il suo Stesso nome, ad eliminare l'effetto dei rimbalzi dei contatti del tasto, blocca il contatore, per cui resta selezionata la linea del tasto premuto.

Dopo un certo tempo, che dipende dal valore del condensatore esterno C4, il circuito dà un comando (DATO DISPONIBILE) al CLOCK dei quattro Flip-Flop di uscita in modo da far immagazzinare il codice di 4 bit del tasto premuto. Vedremo più avanti qual'è questo codice.

Lo stesso segnale, passando attraverso un INVERTITORE, prende il nome DATO DISPONIBILE (attivo alto) ed informa i circuiti circostanti che il codice che individua il tasto premuto è disponibile sulle linee di uscita A, B, C, D, E.

Successivamente, il circuito antirimbalzi sblocca il contatore, che riprende a contare.

A questo punto il circuito codificatore ha svolto il suo compito; il tasto è stato premuto, il suo codice appare sulle quattro uscite e la validità del codice è indicata dal fatto che l'uscita DATODISPONIBILE va a livello alto.

Sono qui riportati i diagrammi temporali dei livelli di tensione in alcuni terminali di ingresso e di uscita del circuito codificatore, supponendo che sia premuto il tasto 5.

 

 

 

Se, durante la chiusura del tasto, i suoi contatti rimbalzano, come indicato dalle variazioni della tensione Y2, il circuito attende che cessino i rimbalzi e, solo quando la tensione Y2 ha assunto stabilmente il livello basso per un tempo pari a T1, blocca l'oscillatore, e porta a livello alto l'uscita DATO DISPONIBILE.

 Quando si rilascia il tasto e sono terminati i rimbalzi l l'uscita DATO ISPONIBILE torna a livello basso dopo un tempo T2.

I tempi T1 e T2 dipendono dal valore del condensatore esterno CANT, in base alla relazione:

T1 = T2 = R CANT

 dove R vale circa 10 KW.

 

Le uscite A, B, C, D del decodificatore assumono il loro valore definitivo con un certo ritardo rispetto al momento in cui viene generato il segnale DATO DISPONIBILE. Questo ritardo, indicato con tpd1, dipende dal tempo che i quattro flip-flop di uscita impiegano ad immagazzinare il codice relativo al tasto premuto (presente sui loro ingressi DATA) e dal tempo che i circuiti esterni impiegano a fornire il segnale OE(OUTPUTENABLE) che abilita gli stadi di uscita TRI-STATE.

 

Deve inoltre trascorrere un tempo tpd0 prima che le uscite si riportino nella condizione TRI-STATE ad alta impedenza, dopo che il segnale DATO DISPONIBILE è ritornato a livello basso. Questi tempi sono comunque molto brevi e possono variare fra 60 e 200 nS.

 

Il codice che identifica il tasto premuto è formato da 4 bit, che indicano in codice binario il numero del tasto stesso. Di questi 4 bit disponibili sulle uscite A, B, C, D il bit D è quello più significativo (MSB), il bit A quello meno significativo (LSB). Nella tabella che segue per ciascun tasto premuto sono indicati il codice corrispondente e la relativa posizione.

 

 

Tasto sulla Tastiera

Tasto per la decodifica

Posizione nella Tastiera

Codice Binario

Riga

Colonna

D

C

B

A

0

0

Y1

X1

0

0

0

0

5

1

Y1

X2

0

0

0

1

8

2

Y1

X3

0

0

1

0

2

3

Y1

X4

0

0

1

1

*

4

Y2

X1

0

1

0

0

4

5

Y2

X2

0

1

0

1

7

6

Y2

X3

0

1

1

0

1

7

Y2

X4

0

1

1

1

#

8

Y3

X1

1

0

0

0

6

9

Y3

X2

1

0

0

1

9

A

Y3

X3

1

0

1

0

3

B

Y3

X4

1

0

1

1

D

C

Y4

X1

1

1

0

0

B

D

Y4

X2

1

1

0

1

C

E

Y4

X3

1

1

1

0

A

F

Y4

X4

1

1

1

1

  

Abbiamo così esaminato il funzionamento e le caratteristiche del componente MM74C922. La colonna "Tasto Sulla Tastiera" si riferisce alle connessioni che sono state realizzate sul telecomando per semplificarne il disegno del c.s. Si vedrà in seguito, analizzando il programma nel micro, come queste connessioni siano del tutto indifferenti.