Timer/intervallo programmabile Intel 8253/8254: modalità e forme d'onda
L'Intel 8253 (e compatibile 8254) è un timer/contatore programmabile a intervalli a 3 canali 16-bit usato in architetture PC/XT/AT e innumerevoli sistemi embedded. Ogni canale opera indipendentemente in una delle sei modalità.
Modalità operative
| Modalità | Nome | Comportamento | Uso tipico |
|---|---|---|---|
| 0 | Interrupt on Terminal Count | One-shot: OUT va basso al caricamento, alto a 0; genera IRQ | System tick, interrupt ritardato |
| 1 | Hardware Retriggerable One-Shot | OUT basso per count clock dopo fronte di salita su GATE | Generazione impulsi, debounce |
| 2 | Rate Generator | Divide-by-N: OUT impulsa basso 1 clk ogni N conteggi | Orologio baud-rate, interrupt periodico |
| 3 | Square Wave Generator | OUT commuta ogni N/2 conteggi (50% duty) | Tono altoparlante, timer tick |
| 4 | Software Triggered Strobe | OUT alto; va basso 1 clk al terminal count | Strobe temporizzato |
| 5 | Hardware Triggered Strobe | Come Modalità 4 ma attivato da fronte di salita su GATE | Timing evento esterno |
Caratteristiche delle forme d'onda
- Modalità 0: Singolo impulso positivo al TC.
- Modalità 1: Impulso basso larghezza = count; retriggerabile.
- Modalità 2: Impulso basso periodico (1 clk largo) ogni N clock.
- Modalità 3: Onda quadra simmetrica (periodo = N clks).
- Modalità 4/5: Singolo strobo basso al TC.
(Immagini delle forme d'onda omesse; consultare il datasheet Intel 8253 Figure 9–14 per i diagrammi di timing esatti.)
Sequenza di programmazione
- Scrivi Control Word sulla porta 43h: SC1 SC0 RW1 RW0 M2 M1 M0 BCD.
- Scrivi LSB poi MSB del count sulla porta del canale (40h/41h/42h).
- Il segnale GATE (porta 61h bit 0 per Ch2) abilita il conteggio.
Mappatura PC legacy
- Ch 0 → IRQ0 (system timer, 18.2 Hz default)
- Ch 1 → DMA refresh (obsoleto)
- Ch 2 → Speaker tone (porta 61h bit 1)
I moderni x86 usano HPET/APIC; l'8254 è emulato in chipset/PCH per retrocompatibilità.