You are on page 1of 25

SISTEMAS BASADOS EN MICROPROCESADORES

TEMPORIZADOR PROGRAMABLE:
8253/54

FASE II

Ing. Mario Urrutia Espinoza

17/06/2017 MUE 1
Introduccin

17/06/2017 MUE 2
Son chips temporizadores que pueden ser
empleados como reloj de tiempo real, contador de
sucesos, generador de ritmo programable, generador
de onda cuadrada, etc.
En una PC se usa para:
Generar una interrupcin que ocurre a 18.2 Hz
Hacer que se refresque la DRAM
Constituir una fuente de temporizacin para diferentes
dispositivos
El 8254 es una versin de velocidad mas alta que el
8253
La PC tiene un 8253 u 8254 decodificado en los
puertos 40H-43H

17/06/2017 MUE 3
Caractersticas

17/06/2017 MUE 4
Definicin de terminales
D7..D0: BUS de datos bidireccional de 3 estados.
CLK 0: CLOCK 0, entrada de reloj al contador 0.
OUT 0: Salida del contador 0.
GATE 0: Puerta de entrada al contador 0.
CLK 1: CLOCK 1, entrada de reloj al contador 1.
OUT 1: Salida del contador 1.
GATE 1: Puerta de entrada al contador 1.
CLK 2: CLOCK 2, entrada de reloj al contador 2.
OUT 2: Salida del contador 2.
GATE 2: Puerta de entrada al contador 2.
Lneas de direccin para seleccionar uno de los tres contadores o
el registro de la palabra de control.
A0 A1 FUNCION
A0..A1: 0 0 Contador 0
0 1 Contador 1
1 0 Contador 2
1 1 Palabra de control
-CS: Habilita la comunicacin con la CPU.
Permite al 8254 aceptar datos de la CPU, es decir que el MP
-WR:
escribe sobre el 8254
Permite al 8254 enviar datos a la CPU, es decir que el MP lee del
-RD:
8254

17/06/2017 MUE 5
Diagrama de bloques

CLK 0

D7-D0 Registro del canal


CTD 0 GATE 0
de datos
OUT 0

RD CLK 1
WR
A0 Lgica L/E CTD 1 GATE 1
A1
CS OUT 1

CLK 2
Registro palabra
de control CTD 2 GATE 2

OUT 2

17/06/2017 MUE 6
Descripcin de sus partes
El buffer del bus de datos, de 8 bits y tres
estados, comunica el 8254 con el bus de datos
del CPU.
La lgica de lectura y escritura acepta
entradas de control y genera seales del
mismo tipo para las partes funcionales del
8254. Las lneas A0..A2 seleccionan uno de
los tres contadores o el registro de la palabra
de control, para poder leerlos o escribirlos.

17/06/2017 MUE 7
El registro de la palabra de control es seleccionado
cuando A0=A1=1, este registro slo puede ser escrito (se
puede obtener informacin de estado, con el comando read-
back del 8254, no disponible en el 8253).
Los contadores 0, 1 y 2 tienen las siguientes
caractersticas:
Son idnticos en su funcionamiento
Son totalmente independientes y cada uno de ellos
puede ser programado en una modalidad diferente.
Son de 16 bits y pueden contar en binario o en BCD
La frecuencia mxima de entrada es de 10 MHz
Cada uno tiene su entrada de reloj, entrada de
compuerta y su salida

17/06/2017 MUE 8
Programacin

17/06/2017 MUE 9
Descripcin Operacional

Tras encender la PC, el 8253/8254 est en un


estado indefinido; con un modo, valor de
cuenta y estado de salida aleatorios.
Es entonces cuando hay que programar los
contadores que se vayan a emplear.
El resto, no importa dejarlos de cualquier
manera.

17/06/2017 MUE 10
Programacin
Para programar un contador del 8254 hay que enviar
primero una palabra de control y, despus, un valor de
cuenta inicial.
Los contadores se seleccionan con las lneas A0 y A1;
el valor A0=A1=1 selecciona la escritura de la palabra
de control (en la que se identifica el contador
implicado). Por tanto, el 8254 ocupa normalmente 4
direcciones de E/S consecutivas ligadas a los
contadores 0, 1, 2 y al registro de la palabra de
control.
Para enviar la cuenta inicial se utiliza simplemente el
puerto E/S ligado al contador que se trate.

17/06/2017 MUE 11
Formato de la palabra de control

17/06/2017 MUE 12
Operaciones de escritura.

Para programar hay que tener en cuenta dos


cosas:
Escribir siempre primero la palabra de control,
antes de enviar la cuenta inicial al contador.
Dicha cuenta inicial debe seguir exactamente el
formato seleccionado en la palabra de control
(enviar slo byte bajo, enviar slo byte alto, o
bien enviar ambos consecutivamente).
Como cada contador tiene su propio puerto y la
palabra de control indica el contador al que est
asociada, no hay que seguir un orden especial a
la hora de programar los contadores.

17/06/2017 MUE 13
Entonces, se puede enviar la palabra de control de cada
contador seguida de su cuenta inicial, o enviar todas las
palabras de control para los 3 contadores y despus las 3
cuentas iniciales, o enviar cualquier combinacin
intermedia de estas secuencias (por ejemplo: enviar la
palabra de control para el contador 0, despus la palabra
de control para el contador 1, despus la parte baja de la
cuenta para el contador 0, luego la parte baja de la cuenta
para el contador 1, la parte alta de la cuenta para el
contador 0, etc...).
Un nuevo valor de cuenta inicial puede ser almacenado
en un contador en cualquier momento, sin que ello afecte
al modo en que ha sido programado (el resultado de esta
operacin depender del modo de funcionamiento).

17/06/2017 MUE 14
Operaciones de lectura.
Existen tres posibles mtodos para leer el valor de un
contador en el 8254:
I. Utilizar el comando de enclavamiento
II. Usar el comando Read-Back, slo disponible en el
8254 y no en el 8253.
III. Leer el contador accediendo a su puerto
correspondiente. Este mtodo requiere inhibir la
entrada CLK al contador (a travs de la lnea GATE
o utilizando circuitera exterior de apoyo) con objeto
de evitar leer la cuenta en medio de un proceso de
actualizacin de la misma, lo que dara un resultado
incorrecto.

17/06/2017 MUE 15
Modos de funcionamiento

Hay disponibles 6 modos de funcionamiento


(modo 0 a modo 5) en cada contador
El modo se elige a travs de los bits M0, M1
y M2 de la palabra de control
A continuacin se detallan dichos modos:

17/06/2017 MUE 16
A. MODO 0: Interrupt On Terminal Count (Interrupcin al final de la cuenta).
Es empleado para contar sucesos. Tras escribir la palabra de control, OUT
est inicialmente en estado bajo, y permanecer as hasta que el contador
alcance el cero: entonces se pone a 1 y no volver a bajar hasta que se
escriba una nueva cuenta o una nueva palabra de control.
La entrada GATE puesta a 0 permite inhibir la cuenta, sin afectar a OUT.
Tras escribir la cuenta inicial y la palabra de control en el contador, la cuenta
inicial ser cargada en el prximo pulso del reloj conectado (CLK), pulso
que no decrementa el contador: para una cuenta inicial N, OUT
permanecer a 0 durante N+1 pulsos del reloj tras escribir la cuenta inicial.
Si se escribe una nueva cuenta mientras GATE=0, sta ser cargada en
cualquier caso en el siguiente pulso del reloj: cuando GATE suba, OUT se
pondr en alto tras N pulsos del reloj (y no N+1 en este caso).

17/06/2017 MUE 17
B. MODO 1: Hardware Retriggerable One-Shot (Monoestable programable).
OUT ser inicialmente alto y bajar en el pulso de reloj que sigue al flanco de subida
de GATE, permaneciendo en bajo hasta que el contador alcance el cero. Entonces,
OUT sube y permanece activo hasta el pulso del reloj que siga al prximo flanco de
subida de GATE.
Tras escribir la palabra de control y la cuenta inicial, el contador est preparado. Un
flanco de subida de GATE provoca la carga del contador y que OUT baje en el
prximo pulso del reloj, comenzando el pulso One-Shot de N ciclos de reloj de
duracin. El contador vuelve a ser recargado si se produce un nuevo flanco de
subida de GATE, de ah que OUT permanezca en bajo durante N pulsos de reloj tras
la ltima vez que suceda esto. El pulso One-Shot puede repetirse sin necesidad de
recargar el contador con el mismo valor.
Si se escribe una nueva cuenta durante un pulso One-Shot, el One-Shot en curso no
resulta afectado, a menos, lgicamente, que se produzca un nuevo flanco de subida
de GATE, en ese caso, el contador sera recargado con el nuevo valor.

17/06/2017 MUE 18
C. MODO 2: Rate Generator (Generador de ritmo).
En este modo, el contador funciona como un divisor por N. Es empleado tpicamente
para las interrupciones.
OUT estar inicialmente en alto. Cuando el contador se decremente hasta el valor 1,
OUT pasar a estado bajo durante un pulso del reloj; tras ello, volver a subir y el
contador se recargar con la cuenta inicial, repitindose el proceso. Este modo es, por
tanto, peridico, y la misma secuencia se repite indefinidamente. Para una cuenta inicial
N, la secuencia se repite cada N ciclos de reloj (CLK).
Si GATE=0 la cuenta descendiente se detiene: si GATE es bajado durante un pulso de
salida, OUT sube inmediatamente. Un flanco de subida en GATE provoca una recarga
del contador con el valor de cuenta inicial en el siguiente pulso del reloj (despus, como
cabra esperar, OUT bajar tras los N pulsos del reloj correspondientes): GATE puede
ser utilizado para sincronizar el contador.
Tras escribir la palabra de control y la cuenta inicial, el contador ser cargado en el
prximo pulso del reloj: OUT bajar N pulsos de reloj despus

17/06/2017 MUE 19
D. MODO 3: Square Wave Mode (Generador de onda cuadrada).
Este modo es empleado normalmente para la generacin de una seal de onda
cuadrada. Este modo es similar al 2, con la diferencia de que la salida OUT conmuta al
transcurrir la mitad de la cuenta: inicialmente est en alto, pero al pasar la mitad de la
cuenta pasa a estado bajo hasta que la cuenta finaliza. Este modo es tambin peridico:
la onda resultante para una cuenta inicial N tiene un perodo de N ciclos.
Si GATE=0 la cuenta descendiente se detiene.
Tras escribir la palabra de control y la cuenta inicial, el contador ser cargado en el
prximo pulso del reloj
Escribir un nuevo valor de cuenta durante el funcionamiento del contador no afecta a la
actual secuencia de cuenta; si se recibe un flanco de subida de GATE antes del final del
medio-perodo el contador se recargar con ese nuevo valor de cuenta inicial tras el
prximo pulso del reloj y volver a comenzar, en caso contrario se recargar con el
nuevo valor tras finalizar con normalidad el medio-ciclo en curso.
Para valores de cuenta impares, la duracin a nivel alto de OUT ser un perodo de reloj
mayor que la duracin a nivel bajo.

17/06/2017 MUE 20
E. MODO 4: Software Triggered Mode (Pulso Strobe iniciado por software)
OUT est en alto al principio; cuando la cuenta inicial expira, OUT baja durante
un pulso de reloj y luego vuelve a subir. El proceso se inicia cuando se escribe
la cuenta inicial.
GATE=0 inhibe el contador y GATE=1 lo habilita.
Tras escribir la palabra de control y la cuenta inicial, el contador ser cargado
en el prximo pulso del reloj: como ese pulso no decrementa el contador, para
una cuenta inicial N, OUT no bajar hasta N+1 pulsos de CLK.
Si se escribe una nueva cuenta durante el proceso, se cargar en el prximo
pulso CLK y continuar el proceso de cuenta con la nueva cuenta escrita.

17/06/2017 MUE 21
F. MODO 5: Hardware Triggered Strobe (Pulso Strobe iniciado por
hardware).
OUT estar en alto al principio: con el flanco de subida de la seal GATE, el
contador comienza a decrementar la cuenta. Cuando llega a cero, OUT baja
durante un pulso CLK y luego vuelve a subir.
Despus de escribir la palabra de control y la cuenta inicial, el contador no ser
cargado hasta el pulso de reloj posterior al flanco de subida de GATE. Este
pulso CLK no decrementa el contador: por ello, ante una cuenta inicial N, OUT
no bajar hasta que pasen N+1 pulsos de reloj. GATE no afecta a OUT.
Si una nueva cuenta inicial es escrita durante el proceso, la actual secuencia
del contador no ser alterada; si se produce un flanco de subida en GATE
antes de que la nueva cuenta sea escrita, el contador ser cargado con la
nueva cuenta en el prximo pulso del reloj.

17/06/2017 MUE 22
Generacin de formas de onda con el 8254
El 8254 se conecta para funcionar en los puertos
E/S: 0700H, 0702H, 0704H y 0706H
Las direcciones se decodifican con un PAL 16L8
El PAL genera una seal de habilitacin para
escritura en el 8254
Esta conexin con el programa respectivo permite
generar una onda cuadrada de 100 KHz en OUT 0 y
un pulso continuo de 200 KHz en OUT 1.
Se utiliza el modo 3 para el contador 0 y el modo 2
para el contador 1
El conteo programado en el contador 0 es de 80 y el
del contador 1 es 40.
Estos conteos generan las frecuencias de salida
con un reloj de entrada de 8 MHz

17/06/2017 MUE 23
V CC

Reloj 8 MHz

U2
D0 8
D1 7 D0
D2 6 D1 9
D3 5 D2 CLK0 11
D4 4 D3 G0 10 Onda cuadrada
D5 3 D4 OUT0 de 100 KHz
D6 2 D5 15
D7 1 D6 CLK1 14
D7 G1 13 Pulso
-RD OUT1
22 continuo de
-WR 23 RD 18
WR CLK2 200 KHz
A1 19 16
A2 20 A0 G2 17
A1 OUT2
-WAIT2 21
<< CS
8254

M/-IO 1 19
A0 2 I1 O1 18
A3 3 I2 O2 17
A4 4 I3 O3 16
A5 5 I4 O4 15
A6 6 I5 O5 14
A7 7 I6 O6 13
A8 8 I7 O7 12
A9 9 I8 O8
A10 11 I9
I10
16L8
A11
A12
A13
A14
A15
Programa
PUSH AX ; salvar registros
PUSH DX

MOV DX, 706H ; direccionar palabra de control


MOV AL, 00110110B ; modo 3
OUT DX, AL ; programar control para contador 0
MOV AL, 01110100B ; modo 2
OUT DX, AL ; programar control para contador 1

MOV DX, 700H ; direccionar contador 0


MOV AL, 80 ; cargar conteo de 80
OUT DX, AL
XOR AL, AL
OUT DX, AL

MOV DX, 702H ; direccionar contador 1


MOV AL, 40 ; cargar conteo de 40
OUT DX, AL
XOR AL, AL
OUT DX, AL

POP DX ; recuperar registros


POP AX
RET

17/06/2017 MUE 25

You might also like