Introduzione L’8254 è un interval timer event/counter, progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. E’ costituito da da 3 contatori indipendenti da 16 bit, che possono essere programmati dal sistema software in 6 modi di operare. Il data sheet completo è reperibile al http://www.intel.com/design/periphrl/datashts/ giovedì 29 novembre 2018
Funzioni implementabili con 8254 Generazione di un ritardo Generazione di un’onda generica Generazione del “real time clock” Contatore di eventi giovedì 29 novembre 2018
Pinout 8254 D7 Vcc D6 WR D5 RD D4 CS D3 A0 D2 A1 D1 CLK 2 D0 OUT 2 GATE 2 OUT 0 CLK 1 GATE 0 OUT 1 GND GATE1 giovedì 29 novembre 2018
Modalità I tre contatori di 16 bit dell’8254 possono essere programmati tramite la Control Word in 5 modi di operare. Diamo ora una breve rassegna di tali modalità. Per il modo 0 e 1 verrà dettagliato il modo di interpretarne il timing, per gli altri modi si invita lo studente a derivarli analizzando il timing giovedì 29 novembre 2018
Modo 0 Il Modo 0 è usato in ogni tipologia di conteggio, ma in particolare per contare eventi. Dopo che la Control Word è stata scritta il segnale di OUT è posto basso e rimarrà basso fino alla fine del conteggio. giovedì 29 novembre 2018
Modo 0 (Caso a: gate sempre alto) fronte clk che inizia il conteggio fronte clk che imposta il modo imposto il valore iniziale giovedì 29 novembre 2018
Modo 0 (caso b: gate abbassato ) mentre il gate è basso il conteggio è sospeso giovedì 29 novembre 2018
Modo 0 (caso c:conteggio reinizializzato) restart del counter quando arriverà a zero giovedì 29 novembre 2018
Modo 1 Il Modo 1 è usato per generare il one_shot_pulse. OUT è inizializzato alto. OUT andrà basso al verificarsi di un Trigger; al termine del conteggio OUT ritornerà alto. giovedì 29 novembre 2018
Modo 1 (caso a) impulsi di trigger del conteggio giovedì 29 novembre 2018
Modo 1 (caso b) impulsi di triggerdel conteggio, il conteggio continua poiché il trigger è giunto prima di terminare il conteggio giovedì 29 novembre 2018
Modo 1(caso c: modificazione del valore di inizio dopo il retrigger) Modifica del valore impulsi di trigger del conteggio giovedì 29 novembre 2018
Modo 2 Il modo 2 fa si che il contatore funzioni come un divisore. Tale modo è utilizzato per generare l’interrupt per tempo reale di clock (orologio del sistema). giovedì 29 novembre 2018
Modo 2 (Caso a) giovedì 29 novembre 2018
Modo 2 (caso b) giovedì 29 novembre 2018
Modo 2 (caso c) giovedì 29 novembre 2018
Modo 3 Il modo 3 è tipicamente usato per la generazione di onde quadre. E’ simile al modo 2 eccetto per il ciclo dell’OUT. OUT viene inizializzato alto. Quando il conteggio del contatore è giunto alla metà del valore iniziale, OUT viene posto basso per tutta la successiva metà del conteggio. giovedì 29 novembre 2018
Modo 3 (caso a) giovedì 29 novembre 2018
Modo 3 (caso b) giovedì 29 novembre 2018
Modo 3 (caso c) giovedì 29 novembre 2018
Modo 4 OUT è inizializzato alto Quando il conteggio el contatore raggiunge lo zero, OUT va basso per un impulso di CLK e poi ritorna subito alto. giovedì 29 novembre 2018
Modo 4 (caso a) giovedì 29 novembre 2018
Modo 4 (caso b) giovedì 29 novembre 2018
Modo 4 (caso c) giovedì 29 novembre 2018
Modo 5 OUT è inizializzato alto. Il conteggio è attivato da un Trigger. Quando il conteggio è terminato OUT va basso per la durata di un Impulso di CLK per poi tornare subito di nuovo alto. giovedì 29 novembre 2018
Modo 5 (caso a) giovedì 29 novembre 2018
Modo 5 (caso b) giovedì 29 novembre 2018
Modo 5 (caso c) giovedì 29 novembre 2018
Block Diagram Data Counter Bus Buffer Read Write 1 Logic Control Word Register Counter 1 2 8 CLK 0 GATE 0 OUT 0 CLK 1 GATE 1 OUT 1 CLK 2 GATE 2 OUT 2 RD WR A0 A1 CS D7- D0 giovedì 29 novembre 2018
Struttura di un contatore La Control Word Register non appartiene a un contatore, ma ne definisce il modo Struttura di un contatore CE CRL CRM OLL OLM Control Word Register Status OUT n GATE n CLK n Bus interno Logic giovedì 29 novembre 2018
Status Register Lo status register, quando è stato caricato, contiene: CE CRL CRM OLL OLM Control Word Register Status OUT n GATE n CLK n Bus interno Logic Il contenuto corrente della Control Word Register. Lo stato dell’ouput del Contatore. Lo stato del Null Counter Flag. giovedì 29 novembre 2018
CE - Down Conter Nella figura il contatore è indicato con l’etichetta CE (Counting Element). Si tratta di un down counter presettabile sincrono di 16 bit. CE CRL CRM OLL OLM Control Word Register Status OUT n GATE n CLK n Bus interno Logic giovedì 29 novembre 2018
Output Latch (OL) OLM e OLL sono due latch di 8 bit di Output Contengono il valore corrente del conteggio del contatore a cui appartengono. CE CRL CRM OLL OLM Control Word Register Status OUT n GATE n CLK n Bus interno Logic giovedì 29 novembre 2018
Counter Register CRM e CRL (counter register) sono due registri di 8 bit. Normalmente sono, entrambi, referenziati con una unica chiamata. Quando un nuovo valore deve essere scritto sul contatore, il valore è caricato in CR e successivamente trasferito in CE. CE CRL CRM OLL OLM Control Word Register Status OUT n GATE n CLK n Bus interno Logic giovedì 29 novembre 2018
Inizializzazione di un contatore Nel caso in cui il contatore sia stato programmato per un solo byte, l’altro byte verrà posto a zero. giovedì 29 novembre 2018
Control Word Tutte le Control Word sono scritte nella Control Word Register, la quale è selezionata quando A1, A0 = 11. Nella Control Word viene specificato quale contatore sarà programmato. giovedì 29 novembre 2018
Control Word Format 1 D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD SC1 SC0 SC-Select Counter Seleziona il Contatore 0 1 Seleziona il Contatore 1 Seleziona il Contatore 2 Read-Back Command Il Read Back Command attiva uno dei diversi modi per latchare, leggere i contatori... giovedì 29 novembre 2018
Control Word Format 1 D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD RW1 RW0 RW - Read/Write Counter Latch Command 1 Read/Write solo il byte meno significativo Read/Write solo il byte più significativo Read/Write il byte meno significativo prima, poi il byte più significativo giovedì 29 novembre 2018
Control Word Format D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD M2 M1 M0 M - Mode 1 Modo 1 X Modo 2 Modo 3 Modo 4 Modo 5 Modo 0 giovedì 29 novembre 2018
Control Word Format D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD BCD BCD Contatore binario a 16 bit 1 Contatore Decimale BCD (Binary Coded Decimal) a 4 decimali giovedì 29 novembre 2018
Programmazione delle procedure La programmazione delle procedure per l’8254 è molto flessibile. Solo due convenzioni devono essere ricordate: Per ciascun contatore la Control Word deve essere scritta prima del suo valore di inizializzazione. Il valore iniziale del contatore deve rispettare il formato specificato dalla Control Word. giovedì 29 novembre 2018