programmable interval timer - ece.ufrgs.brfetter/eng04476/pit.pdf · programmable interval timer...

22
Programmable Interval Timer 8253/8254 Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Microprocessadores II Copyright (c) Walter Fetter Lages – p.1

Upload: hoanganh

Post on 06-Sep-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Programmable Interval Timer8253/8254

Walter Fetter [email protected]

Universidade Federal do Rio Grande do Sul

Escola de Engenharia

Departamento de Engenharia Elétrica

Microprocessadores II

Copyright (c) Walter Fetter Lages – p.1

Page 2: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Introdução

• Os 8253/8254 são temporizadores programáveis• Interface com o barramento do processador• 3 contadores decrescentes de 16 bits

independentes• Clock, Gate, Output

• 6 modos de operação• O 8253 não suporta read-back• Fmáx=2MHz (8253) 10MHz (8254)

Copyright (c) Walter Fetter Lages – p.2

Page 3: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Diagrama de Blocos

A1 A0 Seleção

0 0 contador 0

0 1 contador 1

1 0 contador 2

1 1 palavra de controle

Copyright (c) Walter Fetter Lages – p.3

Page 4: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Pinagem

Copyright (c) Walter Fetter Lages – p.4

Page 5: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Diagrama dos Contadores

Copyright (c) Walter Fetter Lages – p.5

Page 6: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modos de Operação

• Cada timer pode operar em um modoModo 0: Interrupt on terminal countModo 1: Hardware retriggerable one-shotModo 2: Rate generatorModo 3: Square waveModo 4: Software triggered strobe

(retriggerable)Modo 5: Hardware triggered strobe

(retriggerable)

Copyright (c) Walter Fetter Lages – p.6

Page 7: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Palavra de Controle

D7 D6 D5 D4 D3 D2 D1 D0SC1 SC2 RW1 RW0 M2 M1 M0 BCD

• BCD1 contagem em

BCD0 contagem binária

• M2 M1 M0Seleciona modo

• RW1 RW000 counter latch01 read/write LSB10 read/write MSB11 read/write

LSB/MSB• SC1 SC0

Seleciona timerCopyright (c) Walter Fetter Lages – p.7

Page 8: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Programação

• A programação do modo e do valor da contagempode ser feita em qualquer ordem, desde que omodo de um determinado contador sejaprogramado antes da sua contagem

• Para reprogramação da contagem não énecessário reprogramar o modo• O efeito de uma reprogramação da contagem

depende do modo de operação

Copyright (c) Walter Fetter Lages – p.8

Page 9: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Leitura dos Contadores

• Leitura direta do contador• O clock deve estar inibido

• Comando de counter latch• Um novo comando de conter latch só terá

efeito após a leitura completa da contagem• Comando de read-back

• Um novo comando de read-back só terá efeitopara um contador após a leitura completa doseu status e da sua contagem

Copyright (c) Walter Fetter Lages – p.9

Page 10: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Counter Latch

• Comando enviado para o registrador de controle• A contagem do contador selecionada é

armazenada• A contagem deve ser lida do endereço do

contador, no formato em que foi programada

D7 D6 D5 D4 D3 D2 D1 D0SC1 SC2 0 0 X X X X

Copyright (c) Walter Fetter Lages – p.10

Page 11: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Read-back

• Comando enviado para o registrador de controle• Armazena o status e a contagem dos contadores

selecionados• Status e contagem devem ser lidos do endereço

do contador• Sempre que o status e a contagem estiverem

armazenados, o status é lido primeiro

Copyright (c) Walter Fetter Lages – p.11

Page 12: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Read-back e Status

• Read-backD7 D6 D5 D4 D3 D2 D1 D0

1 1 COUNT STATUS CNT 2 CNT 1 CNT 0 0

• StatusD7 D6 D5 D4 D3 D2 D1 D0

OUTPUT NULL COUNT RW1 RW0 M2 M1 M0 BCD

Copyright (c) Walter Fetter Lages – p.12

Page 13: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modo 0 Interrupt on Terminal Count

Copyright (c) Walter Fetter Lages – p.13

Page 14: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modo 1 HW Retriggerable One-Shot

Copyright (c) Walter Fetter Lages – p.14

Page 15: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modo 2 Rate Generator

Copyright (c) Walter Fetter Lages – p.15

Page 16: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modo 3 Square Wave

Copyright (c) Walter Fetter Lages – p.16

Page 17: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modo 4 Software Triggered Strobe

Copyright (c) Walter Fetter Lages – p.17

Page 18: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Modo 5 Hardware Triggered Strobe

Copyright (c) Walter Fetter Lages – p.18

Page 19: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

Operação do Gate

Modo Baixo ou Descida Subida Alto

0 desabilita contagem habilita contagem

1 inicia contagem

reseta saída no

próximo clock

2 desabilita contagem inicia contagem habilita contagem

coloca saída em alto

imediatamente

3 desabilita contagem inicia contagem habilita contagem

coloca saída em alto

imediatamente

4 desabilita contagem habilita contagem

5 inicia contagem

Copyright (c) Walter Fetter Lages – p.19

Page 20: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

8254 no PC

• Endereço base=40h• Todos os contadores com

clock=14.31818MHz/12=1.19MHz• Contador 0

• Modo 0• Inicializado com 0000=65536=> 18.2Hz• Gate sempre em 1• Out conectado à IRQ0

Copyright (c) Walter Fetter Lages – p.20

Page 21: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

8254 no PC

• Contador 1• Modo 2• Gate sempre em 1• Out conectado ao circuito de refresh• Programado para gerar um pulso a cada15µs

• Contador 2• Modo 3• Gate conectado ao bit 0 da porta de I/O 61h• Out conectado através de um AND com o bit

1 da porta 61h ao driver do auto-falante

Copyright (c) Walter Fetter Lages – p.21

Page 22: Programmable Interval Timer - ece.ufrgs.brfetter/eng04476/pit.pdf · Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org ... 2 desabilita contagem inicia contagem

8254 no PC

1 D7

2 D6

3 D5

4 D4

5 D3

6 D2

7 D1

8 D0

9 CLK0

10 OUT0

11 GATE0

12 GND 13OUT1

14GATE1

15CLK1

16GATE2

17OUT2

18CLK2

19A0

20A1

21CS

22RD

23WR

24Vcc

8254 U1Vcc

Vcc Vcc

D0

D1

D2

D3

D4

D5

D6

D7

A0

A1

3 CLK

2 D 5Q

1

CLR

4

PRE

6Q

7474

U2

Vcc

11 CLK

12 D 9Q

13

CLR

10

PRE

8Q

7474

U2

Vcc

Vcc

7408

31

2

U3

R14K7

B

C

E

Q1

BC327

R2

33R

C1

10nF

32 41

CO

NN

1

Vcc

DRQ0

IRQ0

#DACK0

PCLK

#IOWR#IORD

IO40H..43HA1..0

IO61H:1

D7..0

PCLK=14.31818MHz/3/2

IO61H:0

FILE: REVISION:

DRAWN BY: PAGE OF

TITLEPC Timer

pcpit.sch

1 1

1

Walter Fetter Lages

Copyright (c) Walter Fetter Lages – p.22