Upload
hoanganh
View
235
Download
0
Embed Size (px)
Citation preview
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
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
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
Pinagem
Copyright (c) Walter Fetter Lages – p.4
Diagrama dos Contadores
Copyright (c) Walter Fetter Lages – p.5
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
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
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
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
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
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
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
Modo 0 Interrupt on Terminal Count
Copyright (c) Walter Fetter Lages – p.13
Modo 1 HW Retriggerable One-Shot
Copyright (c) Walter Fetter Lages – p.14
Modo 2 Rate Generator
Copyright (c) Walter Fetter Lages – p.15
Modo 3 Square Wave
Copyright (c) Walter Fetter Lages – p.16
Modo 4 Software Triggered Strobe
Copyright (c) Walter Fetter Lages – p.17
Modo 5 Hardware Triggered Strobe
Copyright (c) Walter Fetter Lages – p.18
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
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
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
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