El temporizador /contador Intel 8254

Anuncio
EL TIMER 8254
Microprocesadores
El temporizador /contador Intel
8254
•
•
•
•
Su Arquitectura interna
Modos de programación
Su interconexión con un µprocesador
Aplicaciones
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Características principales del 82C54
9 Frecuencia del reloj de entrada de 8MHz a 12MHz
9 Versió
Versión mejorada del NMOS 8253
9 Tres contadores independientes de 16 bits
9 Seis modos programables de Contador
9 Comando Read Back de Status
9 Conteo en Binario o BCD
9 Completamente compatible con TTL
9 Una fuente de poder de 5V
9 Baja Potencia
–
–
ICCSB (corriente en Stand By). ... . . . . . .10µ
.10µA
ICCOP (corriente en operació
operación) . .. .. . . . . 10mA a 8MHz
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Ejemplo de Aplicaciones del 8254
Algunas de las otras funciones computadora/timers comunes a
las microcomputadoras los cuales pueden ser implementados
con el 8254 son:
‰
‰
‰
‰
‰
‰
‰
‰
Reloj de Tiempo Real
Contador de Eventos
One-Shot Digital
Generador de baudaje Programable
Generador de Onda Cuadrada
Multiplicador Binario
Generador de forma de onda compleja
Controlador complejo de motor
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Arquitectura interna del 8254
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Arquitectura interna del 8254
D0-D7
WR
RD
A0
A1
Buffer
Buffer
deldelbus
bus
dededatos
datos
Contador
Contador00
CLK0
GATE0
OUT0
Lógica
Lógicadede
lectura/
lectura/
escritura
escritura
Contador
Contador1 1
CLK1
GATE1
OUT1
Registro
Registrodede
control
control
Contador
Contador2 2
CLK2
GATE2
OUT2
CS
BUS
BUSINTERNO
INTERNO
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Arquitectura interna de un contador del 8254
Bus
Businterno
internode
deDatos
Datos
Latch
Latchdedestatus
status
Registro
Registrodedecontrol
control
Lógica
Lógicadede
Control
Control
Registro
Registrodedestatus
status
Registro
Registrodedeconteo
conteo
(CRM)
(CRM)MSB
MSB
Registro
Registrodedeconteo
conteo
(CRL)LSB
(CRL)LSB
CONTADOR
CONTADORnn(CE)
(CE)
Latch
LatchDeDeSalida
Salida(OLM)
(OLM) Latch
Latchdedesalida
salida(OLL)
(OLL)
MSB
LSB
MSB
LSB
CLK n GATE n OUT n
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Distribución De Terminales
OUT0
GATE0
Contador 0
D0D0-D7
CLK0
OUT1
GATE1
CLK1
Contador 1
RD
WR
CLK2
A1
D6
D5
2
3
D4
D3
4
D2
D1
6
7
8
CLK0
OUT0
GATE0
GATE2
Contador2
1
D0
OUT2
A0
D7
CS
GND
24
23
22
21
20
5
9
10
11
12
8254
VCC
WR
RD
CS
A1
19
18
A0
17
OUT2
16
15
14
GATE2
13
OUT1
CLK2
CLK1
GATE1
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Tabla de verdad de la operación del 8254
CS
RD
WR
A1
A0
FUNCION
0
1
0
0
0
CARGA CONTADOR 0
0
1
0
0
1
CARGA CONTADOR 1
0
1
0
1
0
CARGA CONTADOR 2
0
1
0
1
1
ESCRIBIR PALABRA DE CONTROL
0
0
1
0
0
LEER CONTADOR 0
0
0
1
0
1
LEER CONTADOR 1
0
0
1
1
0
LEER CONTADOR 2
0
0
1
1
1
READ BACK (LEER STATUS)
1
X
X
X
X
BUS DE DATOS EN TRI- STATE
0
1
1
X
X
BUS DE DATOS EN TRI-STATE
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
FORMATO DE LA PALABRA DE CONTROL
D7
SC1
SC1
0
0
1
1
D6
D5
D4
SC0
SC0
RW1
RW1
RW0
RW0
Elegir contador:
0 contador 0
1 contador 1
0 contador 2
1 comando Read Back
0
0
1
1
D3
M2
M2
D2
D1
D0
M1M1
M0
M0
BCD
BCD
000
001
Operación:
0 comando de enclavamiento x 1 0
x11
1 leer/escribir byte bajo
100
0 leer/escribir byte alto
101
1 leer/escribir byte bajo y
después el alto
Modo:
modo 0
modo 1
modo 2
modo 3
modo 4
modo 5
Contador:
0 binario 16 bits
1 BCD 4 décadas
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Operaciones de lectura de conteo.
¾Existen tres posibles métodos para leer el valor de conteo de un
contador del 8254:
1).-Con un comando Read-Back.
2).-Leer simplemente el contador accediendo a su puerto
correspondiente:
este método requiere inhibir la entrada CLK al contador (por
ejemplo, a través de la línea GATE o utilizando circuitería
exterior de apoyo) con objeto de evitar leer la cuenta en medio
de un proceso de actualización de la misma, lo que daría un
resultado incorrecto.
3).- Con un comando de enclavamiento
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Formato de Comando Read-Back.
D7
D6
D5
11
11
-CONTEO
-CONTEO
D4
D3
D2
D1
D0
-STATUS
-STATUS CONTADOR2
CONTADOR2 CONTADOR1
CONTADOR1 CONTADOR0
CONTADOR0
00
A 1 los contadores seleccionados
0 si enclava la cuenta
de los contadores
seleccionados
0 si enclava el byte de status del contador
seleccionado
Permite enclavar la cuenta en varios latches de salida (OL's
(OL's ) de varios
contadores de una sola vez, sin requerir mú
múltiples comandos de
enclavamiento, poniendo el bit 5 a cero.
Los contadores permanecen enclavados hasta ser leí
leídos, los que no son leí
leídos
permanecen enclavados. Tambié
También es posible enviar informació
información de estado al
latch de salida ( OL), enclavá
á
ndola
para
que
puede
ser
leí
enclav
leída con comodidad
por el puerto que corresponda a ese contador.
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Palabra de status
D7
D6
OUTPUT
NULLCOUNT
COUNT
OUTPUT NULL
Valor de la
terminal out
D5
D4
RW1
RW1
RW0
RW0
D3
M2
M2
D2
D1
D0
M1M1
M0
M0
BCD
BCD
Modo del
contador activo
1 “Null count”
0 cuenta disponible para ser leída
Contador:
0 binario 16 bits
1 BCD 4 décadas
Al leer la palabra de status se permite leer el valor actual de la cuenta, así
así
como averiguar tambié
é
n
el
modo
programado
para
un
contador
y
el
estado
tambi
actual de la terminal OUT, ademá
además de verificar la bandera de cuenta nula
(Null Count)
Count) de los contadores que se indiquen
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Comando de enclavamiento (Counter Latch Command).
D7
SC1
SC1
D6
D5
D4
D3
D2
D1
SC0
SC0
00
00
XX
XX
XX
D0
XX
Este comando se enví
envía como una palabra de control
contador afectado: (A1=A0=1) con los bits 5 y 4 a cero.
0 0 contador 0
Cuando se enví
envía el comando, el latch de salida (OL) del
0 1 contador 1
contador seleccionado queda congelado hasta que la CPU
1 0 contador 2
lo lee, momento en el que se descongela y pasa de nuevo a
seguir a CE.
Esto permite leer los contadores al vuelo sin afectar la
cuenta en curso. Se pueden enviar varios de estos
comandos a los diversos contadores, cuyos latches de
salida (OL's
(OL's)) quedará
quedarán enclavados hasta ser leí
leídos.
Si se enví
envían varios comandos de enclavamiento al mismo contador, separados por un
cierto intervalo de tiempo, só
sólo se considerará
considerará el primero (por tanto, la cuenta leí
leída
corresponderá
corresponderá al valor del contador cuando fue enclavado por vez primera).
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Modos de programación del timer
8254
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Modo 0: Interrupt On Terminal Count (Interrupción al final de la
cuenta).
CLK
Pulso de
escritura
WR
GATE
Se carga la cuenta al
registro de conteo
(4)
OUT
CLK
Pulso de
escritura
WR
(3)
(2)
Inicia conteo
(3)
(4)
(1)
(0)
(2)
(1)
Final de conteo
(0)
Conteo detenido
GATE
OUT
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Modo 1:Hardware Retriggerable One-Shot (Monoestable
programable).
(4)
CLK
WR
GATE
(TRIGGER)
N=4
(3)
(2)
(1)
(0)
(4)
(3)
(2)
(1)
Disparos del monoestable
OUT
T=NTc
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Modo 2: Rate Generator (Generador de ritmo).
(4)
CLK
(3)
(2)
(1)
(0) (4) (3)
(2)
(1)
(0) (4) (3)
N=4
WR
GATE
OUT
T=NTc
un periodo de reloj (Tc)
N=cuenta cargada
Tc=periodo del reloj en CLK=1/fclk
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Modo 3: Square Wave Mode (Generador de onda cuadrada).
(4)
CLK
WR
(3)
(2)
(1)
(0) (4) (3)
(2)
(1)
(0) (4) (3)
N=4
GATE
OUT
T1
T0-
T= NTc
N = cuenta cargada
Tc = periodo del reloj en CLK = 1/fclk
Ya que es una onda cuadrada T1 = T0 = N/2
Si N es impar entonces T1 = (N+1)/2 y T0 = (N-1)/2
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
MODO 4: Software Triggered strobe Mode (Pulso Strobe iniciado
por programa)
(4)
CLK
(3)
(2)
(1)
(0)
N=4
WR
GATE
OUT
un periodo de reloj (Tc)
T=NTc
N=cuenta cargada
Tc=periodo del reloj en CLK=1/fclk
Strobe
Strobe
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
MODO 5: Hardware Triggered strobe Mode (Pulso Strobe iniciado
por hardware)
(4)
CLK
WR
(3)
(2)
(1)
(0)
N=4
GATE
(TRIGGER)
OUT
Disparo del Strobe
T=NTc
un periodo de reloj (Tc)
Strobe
Strobe
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Interconexión del 8254 con un
microprocesador
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Ejemplo de Conexión del 8254 con el Z80
Bus
Busde
deDatos
Datos
RD
IORD
IORQ
RD
IOWR
WR
WR
Z80
Z80 A0
A1
BusdedeDirecciones
Direcciones(Bajo)
(Bajo)
Bus
A2
A3
A4
A5
A6
A7
A0
A1
Contador 0
Timer
8254
Contador 1
Out 1
Gate 1
Clock 1
Contador 2
Out 2
Gate 2
Clock 2
CS
74LS138
A2
A3
A4
A5
A6
A7
A
B
C
G1A
G1B
G2
Out 0
Gate 0
Clock 0
Y1=84H-87H
Direcciones
Direccionesválidas
válidas
para
paraelel8254:
8254:
84h
84hÆ
Æcontador
contador00
85h
Æ
contador
85h Æ contador11
86H
86HÆ
Æcontador
contador22
87H
Æ
r.
87H Æ r.control
control
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
EJEMPLO DE APLICACIONES DEL
8254
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Control de velocidad de un motor de CD con PWM
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
CIRCUITO DE CONTROL DE SENTIDO DE GIRO DE UN
MOTORES DE CD USANDO UN CI (½) L293
+VS
M
3
6
16
8
+VCC=5v
½ L293B
7
D
1
VEN
2
C
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Circuito de un sensor óptico herradura para un encoder
DISCO RANURADO O ENCODER
Motor
Motor
+5V
220Ω
10 kΩ
CLK 0
CLK 0
7414
Al 8254
CIRCUITO SUGERIDO PARA LIMPIAR LOS PULSOS
ENVIADOS POR EL ENCODER
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Circuito para contar el número de revoluciones de un motor de CD
Bus de Datos
Motor de CD
Z80
Z80
PPI
PPI
8255
8255
8254
8254
L293
L293
INT
Out 0
Clk 0
+5v
gate0
10 kΩ
220 Ω
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Circuito L293B
doble puente” H”
PPI
PPI
8255
8255
+5V
+VS
alimentación
del motor
IN1
1
Out1
Motor de CD
4.7 kΩ
EN1
(½)L293B
(½)L293B
Out2
2
IN2
220 Ω
+5V
10 kΩ
4.7 kΩ
T0
8254
8254
GATE0 CONTADOR
CONTADOR00
74LS14
OUT 0
CLK 0
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Uso del 8254 para controlar el conteo del giro de un motor de CD
PA.7
PB.0
PB.1
PC.0
PPI
PPI
8255
8255
L293B
L293B
Start
Gate0
Contador0
Contador0
Encoder
Encoder
Clk0
Programado en modo 0
Out 0
INT
Z80
Tono de 1khz
Gate1
Contador1
Contador1 Out 1
Clk 1
fclk =2Mhz
Circuito
Circuito
DeDereloj
reloj
deldelz80
z80
Contador2
Contador2
Programado en modo 3
No
Noseseusa
usa
TIMER 8254
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Esquemático de la conexión del 8254 con el z80 para la práctica 9
4.7 K
2
7
10
15
PA.7
PPI
8255
+5V
PB.0
PB.1
1
9
16
8
1Y
2Y
3Y
4Y
1A
2A
3A
4A
3
6
11
14
MOTOR CD
D1
1/2EN
3/4EN
D2
1
2
D4
VCC1
VCC2
D3
L293
2
INT
7414
1
+5V
+5V
BUS DE DATOS
+5V
24
8
7
6
5
4
3
2
1
IORD
IOWR
BUS DE DIRECCIONES
22
23
19
20
A0
A1
PPI
8255
1
2
3
A7
A6
A5
6
4
5
A
B
C
74LS138
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
21
12
G0
OUT0
CLK0
8254 CLK1
G1
OUT1
RD
WR
A0
A1
OUT2
CLK2
CS
GND
G2
11
10
9
10K
2
7414
220
1
15
14
13
17
18
+5V
16
SENSOR ÓPTICO
84H-87H
SPEAKER
3
A2
A3
A4
VCC
D0
D1
D2
D3
D4
D5
D6
D7
2
2N3904
2.7 K
1
START
VS
PRACTICA NUM.9
APLICACIONES DEL TIMER /CONTADOR 8254
VCC
PC.0
CIRCUITO DE
RELOJ DEL
Z80
A7
1
A6 A5 A4 A3 A2 A1 A0
1 X
X
0
0 0
0
AL 8254
LAS DIRECCIONES SELECCIONADAS SON DE 84H A 87H
Carlos Canto
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Final
Finaldede
conteo
conteo
Out 0
1 segundo
Gate1
Pita
Pitalalabocina
bocinapor
por1 1seg.
seg.
Tono de 1KHZ
Out 1
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Inicio
Inicio
Ubica
Ubicaelel
Stack
Stack
Microprocesadores
Diagrama de flujo que muestran las tareas a realizar por el
programa
RSI
RSI
Configurar
Configurar
PPI
PPI
Detener
Detenerelel
motor
motor
Programar
Programar
ElEl8254
8254
iniciar
iniciarpitido
pitido
Bocina
Bocinaa a1khz
1khz
Inicializar
Inicializar
ElEl8254
8254
Habilitar
Habilitar
Interrupciones.
Interrupciones.
enenmodo1
modo1
Arranca
Arrancamotor
motor
Aquí
Aquí el Z80 entra en un
estado HALT hasta que ocurra
la interrupció
interrupción
Si
Delay
Delay1 seg
1 seg
Parar
Pararpitido
pitido
DeDebocina
bocina
Si
CALL
CALLRSI
RSI
Inicializar
Inicializar
ElEl8254
8254
Motor
Motorgiró
giró
1000
1000vueltas?
vueltas?
Out
Out0=alto?
0=alto?
Rehabilitar
Rehabilitar
Interrupciones.
Interrupciones.
No
RETI
RETI
Invertir
Invertirgiro
giro
deldelmotor
motor
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
Definición de los símbolos usados en el programa
STACK
PORT_A
PORT_B
PORT_C
CTRL_PPI
PAL_CTRL
CONT_0
CONT_1
CTRL_TIM
CONT_0_MOD0
CONT_1_MOD3
CONT_INICIAl_LSB
CONT_INICIAl_MSB
DIV_LSB
DIV_MSB
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
1000H
80H
81H
82H
83H
88H
84H
85H
87H
0F0H
07H
; Inicio del stack
; dirección del puerto A
; dirección del puerto B
; dirección del puerto C
; dirección del registro de control del PPI
; palabra de control del PPI el pto.Ch =entrada
; dirección del contador 0
; dirección del contador 1
; dirección del registro de control del 8254
; palabra de control para el contador 0, en modo 0
; palabra de control para contador 1 en modo 3
; Byte menos significativo del valor de conteo inicial
; Byte menos significativo del valor de conteo inicial
; Byte divisormenos significativo
; Byte divisor más significativo
Carlos E. Canto Quintal M.C.
M.C.
EL TIMER 8254
Microprocesadores
;UBICA EL STACK
LD SP, STACK
; CONFIGUARCIÓN DEL PPI
LD A , PAL_CTRL
OUT (CTRL_PPI) , A
; PROGRAMACIÓN DEL TIMER 8254
LD A , CONT_0_MOD0
OUT (CONT_0) , A
LD A , CONT_1_MOD3
OUT (CONT_1) , A
; Carga de palabra de control del PPI
;Configura el contador 0 en modo 0
; Configura contador 1 en modo 1
; INICIALIZACIÓN DEL TIMER 8254
CALL INICIA_8254
; HABILITACIÓN DE LA INTERRUPCIONES Y SELECCIÓN DEL MODO1
IE
IM1
LEER:
;ARRANCA EL MOTOR
IN A , (PTO_A)
AND 80H
JP NZ, LEER
LD A, 01H
OUT (PTO_B) , A
HALT
; Habilita las interrupciones del Z80
; Selección del modo 1 de interrupciones
;leer tecla start del puerto A
;enmascara bits no usados
;si no se oprimió la tecla vuelve a checar
; si se oprimió la tecla , arranca el motor
; espera que ocurra la interrupción
Carlos E. Canto Quintal M.C.
M.C.
INICIA_8254 :
;INICIALIZACIÓN DEL CONTADOR 0
LD A, CONT_INICIAL_LSB
OUT (CONT_0) , A
LD A, CONT_INICIAL_MSB
OUT (CONT_0) , A
;INICIALIZACIÓN DEL CONTADOR 1
LD A , DIV_LSB
OUT (CONT_2) , A
LD A , DIV_MSB
OUT (CONT_2) , A
;Carga el byte menos significativo del valor
; de conteo inicial al contador 0
;Carga el byte más significativo del valor
; de conteo inicial al contador 0
;Cargar al contador1 con el divisor de frecuencia
; menos significativo
; Cargar al contador1 con el divisor de frecuencia
; más significativo
RET
EL TIMER 8254
Microprocesadores
Generador de señales en una IBM PC
Carlos E. Canto Quintal M.C.
M.C.
Descargar