TC 8253 TIMER COUNTER Prof. Marco Solarino
CHE COSA E' Il TC 8253 è un temporizzatore/contatore (Timer/Counter) programmabile. Viene utilizzato all'interno del Personal Computer nella gestione dell’orologio, dell'altoparlante e del refresh delle RAM dinamiche.
COSA CONTIENE TC 8253 B U S D A T I N E R O CH0 CLOCK 0 (CK0) GATE 0 (G0) USCITA 0 (U0) CH1 8 D0 - D7 CLOCK 1 (CK1) 8 GATE 1 (G1) USCITA 1 (U1) REGISTRO CONTOLLO DI CH2 CLOCK 2 (CK2) 8 8 GATE 2 (G2) USCITA 2 (U2)
COME SI PROGRAMMA Ogni volta che vogliamo utilizzare un canale del TC bisogna inviare una parola di 8 bit al registro di controllo, che stabilisce come funzionerà il canale interessato e che tipo di operazione si vuole fare. Ciascun canale, il cui contenuto può essere letto o scritto, può funzionare in sei diversi modi di funzionamento che vanno specificati nella parola di controllo.
(CONTEGGIO IN DISCESA) STRUTTURA DEL CANALE CK CONTATORE A 16 BIT (CONTEGGIO IN DISCESA) G U MSB LSB 8 LATCH
(MODO 0 - Interruzione a fine conteggio) MODI DI FUNZIONAMENTO (MODO 0 - Interruzione a fine conteggio) Modalità in cui l’uscita U è bassa fino a quando il conteggio è diverso da zero. Quando il conteggio è zero l’uscita U va alta e vi rimane fino a nuovo conteggio o riprogrammazione. L’ingresso di gate controlla il conteggio: G=1 consente il conteggio, mentre G=0 lo blocca.
TEMPORIZZAZIONI MODO 0
(MODO 1 – Impulso singolo programmabile) MODI DI FUNZIONAMENTO (MODO 1 – Impulso singolo programmabile) Modalità in cui l’uscita U è inizialmente alta. Va bassa all’inizio del conteggio, provocato da un fronte di salita sul gate G, e torna alta al termine del conteggio (impulso basso di durata stabilita dal valore iniziale del contatore). Un nuovo fronte di salita su G provoca la ripartenza del contatore, e quindi il prolungamento dell’impulso.
TEMPORIZZAZIONI MODO 1
(MODO 2 – Generatore di impulsi regolari) MODI DI FUNZIONAMENTO (MODO 2 – Generatore di impulsi regolari) Modalità in cui l’uscita U è inizialmente alta. Il conteggio può partire se G=1. G=0 ferma il conteggio, e quando G torna a 1 il conteggio riparte daccapo. L’uscita U va bassa per un periodo di clock ogni N conteggi, dove N è il valore caricato nel contatore, e poi torna alta, fornendo così una sequenza di impulsi bassi regolari.
TEMPORIZZAZIONI MODO 2
(MODO 3 – Generatore di onda quadra) MODI DI FUNZIONAMENTO (MODO 3 – Generatore di onda quadra) Modalità in cui in uscita è possibile ottenere un’onda quadra di frequenza stabilita dal numero caricato nel contatore: fu = fck / N Dove fu è la frequenza di uscita, fck è la frequenza di clock (1,19318 MHz) e N è il numero inserito nel contatore. Se G=1, in uscita c’è l’onda quadra, se G=0, allora U=1.
TEMPORIZZAZIONI MODO 3
(MODO 4 – Strobe innescato via software) MODI DI FUNZIONAMENTO (MODO 4 – Strobe innescato via software) Modalità in cui l’uscita U è alta fino a quando il conteggio è diverso da zero. Quando il conteggio è zero l’uscita U va bassa per un ciclo di clock (strobe), poi torna alta e vi rimane fino a nuovo conteggio o riprogrammazione. L’ingresso di gate controlla il conteggio: G=1 consente il conteggio, mentre G=0 lo blocca.
TEMPORIZZAZIONI MODO 4
(MODO 5 – Strobe innescato via hardware) MODI DI FUNZIONAMENTO (MODO 5 – Strobe innescato via hardware) Modalità in cui l’uscita U è inizialmente alta, e si comporta come nel modo 4. L’ingresso di gate si comporta come nel modo 1, cioè un fronte di salita su G provoca l’avvio o il riavvio del contatore.
TEMPORIZZAZIONI MODO 5
LA PAROLA DI CONTROLLO D7 D6 D5 D4 D3 D2 D1 D0 TIPO CONTEGGIO 0 = BIN 1 = BCD 00 = CH0 01 = CH1 10 = CH2 11 = ILLEGALE SCELTA CANALE 00 = MEMORIZZAZIONE 01 = LETT./SCR. LSB 10 = LETT./SCR. MSB 11 = LETT./SCR. COMPLETA (PRIMA LSB POI MSB) OPERAZIONE MODO DI FUNZIONAMENTO 000 = MODO 0 001 = MODO 1 X10 = MODO 2 X11 = MODO 3 100 = MODO 4 101 = MODO 5
GLI INDIRIZZI In ogni TC i canali e il registro di controllo sono individuati da 4 indirizzi di Input/Output. Nel caso del dispositivo contenuto nel PC tali indirizzi sono i seguenti: CH0 => 40H (0x40) CH1 => 41H (0x41) CH2 => 42H (0x42) Controllo => 43H (0x43)
PROGRAMMAZIONE La programmazione del TC viene effettuata dal BIOS del sistema all'avvio, configurando i canali 0 e 1 come segue: CH0 Modo 3 (Generatore di onda quadra) e contatore impostato a 0. In tal modo si ottiene un’onda quadra di 18,2 Hz che invia richieste di interrupt su IRQ0 ogni 55 millisecondi. CH1 Modo 2 (Generatore di impulsi regolari) e contatore impostato a 18. In tal modo ogni 15 microsecondi vengono attivati i circuiti di refresh delle RAM dinamiche.
E IL CANALE 2? CH2 lo utilizzeremo noi per gestire l’altoparlante interno del PC, ma questo lo vedremo nella prossima presentazione!