Temporizador/Contador Programable Intel 8253/8254: Modos y Formas de Onda

El Intel 8253 (y el compatible 8254) es un temporizador/contador programable de 3 canales y 16 bits utilizado en arquitecturas PC/XT/AT y en innumerables sistemas embebidos. Cada canal opera de forma independiente en uno de seis modos.

Modos de Operación

ModoNombreComportamientoUso Típico
0Interrupción en Recuento TerminalUn solo disparo: OUT va a bajo al cargar, alto en 0; genera IRQTic del sistema, interrupción retardada
1Un Solo Disparo Retriggerable por HardwareOUT bajo durante conteo de relojes después de flanco ascendente en GATEGeneración de pulsos, antirrebote
2Generador de FrecuenciaDivisión por N: OUT emite pulso bajo 1 clk cada N recuentosReloj de velocidad de transmisión, interrupción periódica
3Generador de Onda CuadradaOUT alterna cada N/2 recuentos (ciclo de trabajo 50 %)Tono de altavoz, tic del temporizador
4Estrobo Activado por SoftwareOUT alto; va a bajo 1 clk en recuento terminalEstrobo temporizado
5Estrobo Activado por HardwareComo el Modo 4 pero activado por flanco ascendente en GATETemporización de eventos externos

Características de la Forma de Onda

  • Modo 0: Un solo pulso positivo en TC.
  • Modo 1: Ancho de pulso bajo = recuento; retriggerable.
  • Modo 2: Pulso bajo periódico (1 clk de ancho) cada N relojes.
  • Modo 3: Onda cuadrada simétrica (período = N clks).
  • Modos 4/5: Un solo estrobo bajo en TC.

(Se omiten las imágenes de forma de onda; consulta las Figuras 9–14 del datasheet de Intel 8253 para los diagramas de tiempo exactos.)

Secuencia de Programación

  1. Escribe la Palabra de Control en el puerto 43h: SC1 SC0 RW1 RW0 M2 M1 M0 BCD.
  2. Escribe LSB luego MSB del recuento en el puerto del canal (40h/41h/42h).
  3. La señal GATE (bit 0 del puerto 61h para Ch2) habilita el conteo.

Asignación de PC Heredado

  • Ch 0 → IRQ0 (temporizador del sistema, 18.2 Hz predeterminado)
  • Ch 1 → Refresco de DMA (obsoleto)
  • Ch 2 → Tono de altavoz (bit 1 del puerto 61h)

El x86 moderno usa HPET/APIC; el 8254 se emula en el chipset/PCH para retrocompatibilidad.