Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org 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 modo Modo 0: Interrupt on terminal count Modo 1: Hardware retriggerable one-shot Modo 2: Rate generator Modo 3: Square wave Modo 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 D0 SC1 SC2 RW1 RW0 M2 M1 M0 BCD BCD 1 contagem em BCD 0 contagem binária M2 M1 M0 Seleciona modo RW1 RW0 00 counter latch 01 read/write LSB 10 read/write MSB 11 read/write LSB/MSB SC1 SC0 Seleciona timer Copyright (c) Walter Fetter Lages p.7
Programação A programação do modo e do valor da contagem pode ser feita em qualquer ordem, desde que o modo de um determinado contador seja programado 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á efeito para um contador após a leitura completa do seu 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 D0 SC1 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-back Status D7 D6 D5 D4 D3 D2 D1 D0 1 1 COUNT STATUS CNT 2 CNT 1 CNT 0 0 D7 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 cada 15µ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 IO61H:1 IO61H:0 A1..0 IO40H..43H #IORD #IOWR D7..0 PCLK=14.31818MHz/3/2 1 Vcc U2 CLR 2 D Q 5 D7 D6 D5 D4 D3 D2 D1 D0 8254 U1 1 D7 2 D6 3 D5 4 D4 5 D3 6 D2 7 D1 8 D0 9 CLK0 10 OUT0 11 GATE0 Vcc WR RD CS CLK2 OUT2 GATE2 CLK1 GATE1 Vcc 24 23 22 21 A1 20 A1 A0 19 A0 18 17 16 15 14 12 GND 13 OUT1 Vcc Vcc 7474 10 PRE 11 CLK U3 1 2 Vcc 7408 Q 8 3 R1 4K7 Q1 B BC327 E C CONN1 1 2 R2 33R C1 3 10nF 4 Vcc PCLK 3 CLK Q 6 PRE 7474 4 Vcc 12 D Q CLR 9 13 U2 DRQ0 #DACK0 IRQ0 TITLE FILE: pcpit.sch PAGE 1 OF 1 PC Timer REVISION: DRAWN BY: 1 Walter Fetter Lages Copyright (c) Walter Fetter Lages p.22