Requisito previo: temporizador de intervalos programable 8254 Después del encendido, el estado del 8254 no está definido. El modo, el valor de conteo y la salida de todos los contadores no están definidos. El funcionamiento de cada contador se determina cuando se programa. Cada contador debe programarse antes de que pueda usarse. No es necesario programar contadores no utilizados. Los contadores se programan escribiendo una palabra de control y luego un conteo inicial.
Palabra de control de 8254: el formato de la palabra de control de 8254 es:
Aquí, usando el valor de SC1 y SC0, seleccionamos un contador específico:
SC1 | SC0 | SELECCIÓN |
---|---|---|
0 | 0 | C0 |
0 | 1 | C1 |
1 | 0 | C2 |
1 | 1 | Volver a leer el estado |
Los valores de RW1 y RW0 se utilizan para decidir la operación de lectura y escritura:
RW1 | RW0 | SELECCIÓN |
---|---|---|
0 | 0 | Comando de contraenganche |
0 | 1 | Byte inferior de lectura/escritura |
1 | 0 | Lectura/escritura de bytes más altos |
1 | 1 | Lectura/escritura del byte inferior seguido del byte superior |
Los valores de M2, M1, M0 se utilizan para decidir los modos de funcionamiento del 8254:
M2 | M1 | M0 | MODO OPERATIVO |
---|---|---|---|
0 | 0 | 0 | MODO 0 |
0 | 0 | 1 | MODO 1 |
X (0/1) | 1 | 0 | MODO 2 |
X (0/1) | 1 | 1 | MODO 3 |
1 | 0 | 0 | MODO 4 |
1 | 0 | 1 | MODO 5 |
El LSB de Control Word se usa para seleccionar si el contador es binario o BCD. Si el bit es 0 funciona como contador binario y si su valor es 1 funciona como contador BCD. Modos de funcionamiento de 8254:
- Modo 0 (interrupción en el conteo de terminales): el modo 0 se usa normalmente para el conteo de eventos. Después de que se escribe la palabra de control, OUT es inicialmente bajo y permanecerá bajo hasta que el contador llegue a cero; se decrementa en 1 después de cada ciclo de reloj. OUT luego sube y permanece alto hasta que se escribe un nuevo conteo o una nueva palabra de control de modo 0 en el contador. GATE = 1 habilita el conteo, GATE = 0 deshabilita el conteo.
- Modo 1 (One Shot reactivable por hardware): OUT será inicialmente alto. OUT bajará en el pulso CLK después de un disparador para comenzar el pulso de un solo disparo, y permanecerá bajo hasta que el contador llegue a cero.
- Modo 2 (Generador de tasa) – El valor inicial de OUT es bajo. Cuando el conteo está habilitado, se vuelve alto y este proceso se repite periódicamente. Valor de conteo = Frecuencia de Entrada / Frecuencia de Salida. Este modo funciona como un divisor de frecuencia.
- Modo 3 (Generador de onda cuadrada): el conteo está habilitado cuando GATE = 1 y deshabilitado cuando GATE = 0. Este modo se usa para generar una forma de onda cuadrada y se genera un período de tiempo (igual al conteo). Si N es conteo y es par, entonces el tiempo de activación = N/2 y el tiempo de inactividad = N/2 Si N es impar, el tiempo de activación = (N + 1) / 2 y el tiempo de inactividad = (N – 1) / 2
- Modo 4 (estroboscópico activado por software): en este modo, el conteo se habilita usando GATE = 1 y se desactiva con GATE = 0. Inicialmente, el valor de OUT es alto y se vuelve bajo cuando el valor de conteo está en la última etapa. El conteo se vuelve a cargar para el pulso de reloj subsiguiente.
- Modo 5 (luz estroboscópica activada por hardware): OUT inicialmente será alta. El conteo se activa con un flanco ascendente de GATE. Cuando el conteo inicial haya expirado, OUT bajará durante un pulso de reloj y luego volverá a subir. Después de escribir la palabra de control y el conteo inicial, el contador no se cargará hasta que el reloj pulse después de un disparo.
Publicación traducida automáticamente
Artículo escrito por harshit-chhabra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA