• Non ci sono risultati.

• Generazione di un ritardo Generazione di un ritardo

N/A
N/A
Protected

Academic year: 2021

Condividi "• Generazione di un ritardo Generazione di un ritardo"

Copied!
41
0
0

Testo completo

(1)

Timer 8254

Indice Imposta Esci

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/

(2)

Timer 8254

Indice Imposta Esci

Funzioni implementabili con 8254

• Generazione di un ritardo Generazione di un ritardo

• Generazione di un’onda generica Generazione di un’onda generica

• Generazione del “real time clock” Generazione del “real time clock”

• Contatore di eventi Contatore di eventi

(3)

Timer 8254

Indice Imposta Esci

Pinout

D7 D6 D5 D4 D3 D2 D1 D0 CLK 0 OUT 0 GATE 0 GND

Vcc WR RD CS A0 A1

CLK 2 OUT 2 GATE 2 CLK 1

OUT 1 GATE1

82548254

(4)

Timer 8254

Indice Imposta Esci

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

(5)

Timer 8254

Indice Imposta Esci

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.

(6)

Timer 8254

Indice Imposta Esci

Modo 0 (

Caso a: gate sempre alto

)

C W = 10 L S B = 4

W R

C L K G A T E

O U T

N N N N 0

4

0 3

0 2

0 1

0 0

F F F F

E E E E

fronte clk che imposta il modo

fronte clk che inizia il conteggio

imposto il valore iniziale

(7)

Timer 8254

Indice Imposta Esci

Modo 0 (

caso b: gate abbassato

)

W R

CLK

GATE

OUT

N N 0

3

0 2

0 1

0 0 0

2

0 2

FF FF N

N

CW = 10 LSB = 3

mentre il gate è basso il conteggio è sospeso

(8)

Timer 8254

Indice Imposta Esci

Modo 0 (

caso c:conteggio reinizializzato

)

W R

C L K

G A T E

O U T

N N N N 0

3

0 2

0 1

0 2

0 1

0 0

F F F F

C W = 10 L SB = 3 L S B = 2

restart del counter quando arriverà a zero

(9)

Timer 8254

Indice Imposta Esci

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.

(10)

Timer 8254

Indice Imposta Esci

Modo 1 (caso a)

CW = 12 LSB = 3

WR CLK

GATE

OUT

N N N N N 0

3

0 2

0 1

0 0

0 3 FF

FF

impulsi di trigger del conteggio

(11)

Timer 8254

Indice Imposta Esci

Modo 1 (caso b)

W R

C L K

G A T E

O U T

C W = 12 L S B = 3

N N N N N 0

3

0 2

0 1

0 3

0 2

0 1

0 0

impulsi di triggerdel conteggio, il conteggio continua poiché il trigger è giunto prima di terminare il conteggio

(12)

Timer 8254

Indice Imposta

Modo 1 (

caso c: modificazione del valore Esci

di inizio dopo il retrigger

)

L S B = 4 C W = 12 L S B = 3

W R

C L K

G A T E

O U T

N N N N N 0

2

0 1

0 0

F F F F

F F F E

0 4

0 3

impulsi di trigger del conteggio

Modifica del valore

(13)

Timer 8254

Indice Imposta Esci

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).

(14)

Timer 8254

Indice Imposta Esci

Modo 2 (Caso a)

C W = 14 L SB = 3

W R

C L K

G A T E

O U T

N N N N 0

3

0 2

0 1

0 3

0 2

0 1

0 3

(15)

Timer 8254

Indice Imposta Esci

Modo 2 (caso b)

W R

CLK GATE

OUT

N N N 0

2

N 0

3

0 2

0 3

0 2

0 1

0 3

CW = 14 LSB = 3

(16)

Timer 8254

Indice Imposta Esci

Modo 2 (caso c)

CW =14 LSB = 4 LSB = 5

W R

CLK GATE

OUT

N N N N 0

4

0 3

0 2

0 1

0 5

0 4

0 3

(17)

Timer 8254

Indice Imposta Esci

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.

(18)

Timer 8254

Indice Imposta Esci

Modo 3 (caso a)

CW = 16 LSB = 4

W R

CLK GATE

OUT

N N N N 0

4

0 2

0 4

0 2

0 4

0 2

0 4

0 2

0 4

0 2

(19)

Timer 8254

Indice Imposta Esci

Modo 3 (caso b)

CW = 16 LSB = 5

WR

CLK GATE

OUT

N N N N 0

4

0 2

0 0

0 4

0 2

0 4

0 2

0 0

0 4

0 2

(20)

Timer 8254

Indice Imposta Esci

Modo 3 (caso c)

CW = 16 LSB = 4

WR

CLK GATE

OUT

N N N N 0

4

0 2

0 4

0 2

0 2

0 2

0 4

0 2

0 4

0 2

(21)

Timer 8254

Indice Imposta Esci

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.

(22)

Timer 8254

Indice Imposta Esci

Modo 4 (caso a)

LSB = 3 CW = 18

WR

CLK GATE

OUT

N N N N 0

3

0 3

0 0

0 1

FF FF

FF FE

FF FD

(23)

Timer 8254

Indice Imposta Esci

Modo 4 (caso b)

CW = 18 LSB = 3

W R

CLK

GATE

OUT

N N N N 0

3

0 3

0 2

0 1 0

3

00 00

FF FF

(24)

Timer 8254

Indice Imposta Esci

Modo 4 (caso c)

CW = 18 LSB = 3 LSB = 2

WR

CLK GATE

OUT

N N N N 0

3

0 2

0 1

0 2

0 1

0 0

FF FF

(25)

Timer 8254

Indice Imposta Esci

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.

(26)

Timer 8254

Indice Imposta Esci

Modo 5 (caso a)

CW = 1A LSB = 3

WR

CLK

GATE

OUT N N N N N 0

3

0 2

0 1

0 0

FF FF

0 3

(27)

Timer 8254

Indice Imposta Esci

Modo 5 (caso b)

CW = 1A LSB = 3

WR

CLK

GATE

OUT

N N N N N 0

3

0 2

0 3

0 2

0 1

0 0

FF FF

(28)

Timer 8254

Indice Imposta Esci

Modo 5 (caso c)

WR

CLK

GATE

OUT

CW = 1A LSB = 3 LSB = 5

N N N N N 0 0 0 0 FF 0

(29)

Timer 8254

Indice Imposta Esci

Block Diagram

Data Bus Buffer

Read Write Logic

Control Word Register

Counter 0

Counter 1

Counter 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

(30)

Timer 8254

Indice Imposta Esci

CE

CRL CRM

OLL OLM

Control Word Register

Status Register

OUT n CLK n

Bus interno

Control Logic

Struttura di un contatore

La Control Word Register non appartiene a un contatore, ma ne definisce il modo

(31)

Timer 8254

Indice Imposta Esci

Status Register

• Il contenuto corrente della Control Word Register.

• Lo stato dell’ouput del Contatore.

• Lo stato del Null Counter Flag.

CE

CRL CRM

OLL OLM

Control Word Register

Status Register

OUT n GATE n

CLK n

Bus interno

Control Logic

• Lo status register, quando è stato caricato, contiene:

(32)

Timer 8254

Indice Imposta Esci

CE - Down Conter

• Nella figura il contatore è indicato con l’etichetta CECE (Counting C Element). Si tratta di un down E

counter presettabile sincrono di 16 bit.

CE

CRL CRM

OLL OLM

Control RegisterWord

Status Register

Bus interno

Control Logic

(33)

Timer 8254

Indice Imposta Esci

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 RegisterWord

Status Register

OUT n

GATE n CLK n

Bus interno

Control Logic

(34)

Timer 8254

Indice Imposta Esci

Counter Register

CE

CRL CRM

OLL OLM

Control RegisterWord

Status Register

OUT n

GATE n CLK n

Bus interno

Control Logic

• 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.

CRM e CRL (counter register) sono due registri di 8 bit.

(35)

Timer 8254

Indice Imposta Esci

Inizializzazione di un contatore

• Nel caso in cui il contatore sia stato

programmato per un solo byte, l’altro byte verrà posto a zero.

(36)

Timer 8254

Indice Imposta Esci

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.

(37)

Timer 8254

Indice Imposta Esci

Control Word Format

SC1 SC0 RW1RW0 M2 M1 M0 BCD SC-Select Counter

SC1 SC0

0 0 Seleziona il Contatore 0

0 1 Seleziona il Contatore 1

1 0 Seleziona il Contatore 2

1 1 Read-Back Command

D7 D6 D5 D4 D3 D2 D1 D0

Il Read Back Command attiva uno dei diversi modi per latchare, leggere i contatori...

(38)

Timer 8254

Indice Imposta Esci

Control Word Format

SC1 SC0 RW1RW0 M2 M1 M0 BCD RW - Read/Write

RW1RW0

0 0 Counter Latch Command

0 1 Read/Write solo il byte meno significativo

1 0 Read/Write solo il byte più significativo

1 1 Read/Write il byte meno significativo prima, poi il byte più significativo

D7 D6 D5 D4 D3 D2 D1 D0

(39)

Timer 8254

Indice Imposta Esci

Control Word Format

SC1 SC0 RW1RW0 M2 M1 M0 BCD

M - Mode M2 M1 M0

0 0 1 Modo 1

X 1 0 Modo 2

X 1 1 Modo 3

1 0 0 Modo 4

1 0 1 Modo 5

0 0 0 Modo 0

D7 D6 D5 D4 D3 D2 D1 D0

(40)

Timer 8254

Indice Imposta Esci

Control Word Format

SC1 SC0 RW1RW0 M2 M1 M0 BCD BCD

BCD

0 Contatore binario a 16 bit 1 Contatore Decimale BCD

(Binary Coded Decimal) a 4 decimali

D7 D6 D5 D4 D3 D2 D1 D0

(41)

Timer 8254

Indice Imposta Esci

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.

Riferimenti

Documenti correlati

Pensato come riflessione critica sul ruolo che le donne hanno avuto nel processo di costruzione dell’Italia unita come soggetti attivi e come proiezioni dell’immaginario collettivo,

Inoltre è da dire che a differenza del settore privato, per i dipendenti pubblici i nuovi termini di pagamento e liquidazione Tfr cambiano a seconda delle cause di cessazione del

Il pediatra dovrà sorvegliare il “ritardo” che può essere a volte la manifestazione di una difficoltà dello sviluppo dovuta a cause precise, che si potranno

Se prende l’autobus la probabilità di arrivare in orario è 70%, se viene in metro la probabilità di arrivare in orario è 90%, in auto è 50%?. • Prendere l’autobus o la metro

Il progetto “Europe, Éducation, École”, al quale la Commissione europea ha confe- rito il 1° Premio per l’Innovazione nell’Istruzione nel 2006, è sempre stato fedele allo

Riorganizzazione e sostituzione della segnaletica verticale in tutto il centro storico, adeguandola.. alle indicazioni del

40.363 sull’At- to di Indirizzo integrativo per l’Area della Dirigenza medica,  veterinaria e sanitaria predisposto dal Comitato di Settore delle Regioni – si è espressa

dove si aveva in partenza una polarizzazione lineare a -45° e una lamina a quarto d'onda con asse veloce H, in quanto in questo caso la polarizzazione lineare iniziale H si trova