Contadores programables
Un contador es un divisor de frecuencia y un registro de estado al mismo tiempo. Lo que lo vuelve programable es poder decidir por hardware —o por software, más adelante— en qué número arranca, hasta dónde llega y en qué sentido cuenta. Todo el temporizado digital sale de ahí.
01De dónde venimos: contar es dividir
En lógica secuencial se armaron contadores con flip-flops sueltos. Ahora se usan circuitos integrados contadores, que traen todo resuelto adentro y agregan las patas que permiten programarlos. Pero la idea de fondo no cambió, y conviene tenerla presente porque es la que explica cada aplicación:
Cada etapa de un contador binario divide la frecuencia por dos. Q0 cambia una vez por cada pulso de reloj, Q1 una vez cada dos, Q2 una cada cuatro. Un contador de n etapas es entonces, al mismo tiempo, un contador módulo 2n y un divisor por 2n. La misma pata sirve para leer un número o para sacar una frecuencia más baja.
| Etapas | Cuenta hasta | Módulo | División de frecuencia |
|---|---|---|---|
| 4 (una década binaria) | 15 | 16 | f/16 en la última salida |
| 8 | 255 | 256 | f/256 |
| 12 | 4095 | 4096 | f/4096 |
| 14 (CD4020) | 16383 | 16384 | f/16384 |
| 24 (CD4521) | 16777215 | 224 | 32768 Hz → 1 Hz con 15 etapas |
Esa última fila es el reloj de cuarzo de pulsera: un cristal de 32 768 Hz —que es 215— dividido quince veces da exactamente un pulso por segundo. Los cristales de reloj tienen ese valor justamente porque cae redondo en una cadena de flip-flops.
02Asincrónico y sincrónico: la diferencia que importa
Los dos cuentan igual. La diferencia está en cuándo cambia cada etapa, y se paga en velocidad y en pulsos falsos.
El reloj entra sólo en la primera etapa; cada flip-flop dispara al siguiente. Los cambios se propagan en cadena.
- Menos circuito interno, más barato: el CD4040 mete 12 etapas en un DIP16.
- Retardo total = n × tPLH. En 12 etapas de 10 ns son 120 ns de corrimiento.
- Durante ese corrimiento aparecen estados intermedios falsos: al pasar de 0111 a 1000 el contador exhibe 0110, 0100, 0000 y recién 1000.
- Sirve como divisor de frecuencia, no para decodificar estados.
El reloj llega a todas las etapas a la vez; una red de compuertas decide cuáles cambian en ese flanco.
- Todas las salidas cambian juntas: no hay estados falsos.
- La frecuencia máxima no depende de la cantidad de etapas.
- Es el único que se puede decodificar sin riesgo (por ejemplo, para encender un display o disparar un actuador).
- Casi todos los contadores programables —74190/191/192/193, 4029, 4510, 4516— son sincrónicos.
Si con un contador asincrónico se decodifica el estado 8 (1000) con una compuerta AND, esa compuerta se activa por unos nanosegundos también en la transición 7 → 8, mientras las etapas se acomodan. Un osciloscopio rápido lo ve como una púa. Un flip-flop conectado a esa salida la toma como un pulso real y el circuito falla una vez cada tanto, sin patrón aparente. Es una de las fallas más difíciles de encontrar en el banco. La solución: contador sincrónico, o validar la decodificación con el reloj.
03El catálogo que se usa en el taller
No hace falta memorizarlo, pero sí saber en qué familia buscar. Las hojas de datos completas de la serie 40XX están reunidas en la publicación de lógica digital del sitio.
| Integrado | Tipo | Módulo | Para qué se elige |
|---|---|---|---|
| 7490 | Asincrónico | 2 + 5 = 10 | Década clásica TTL. Trae dos secciones separadas: ÷2 y ÷5. Reset a 0 y reset a 9. |
| 7493 | Asincrónico | 2 + 8 = 16 | Igual que el anterior pero binario. Es el que se usa para armar módulos raros con reset. |
| 74192 / 74193 | Sincrónico | 10 / 16 | Sube y baja por dos entradas de reloj separadas. Con carga paralela. El caballito de batalla del contador programable TTL. |
| 74190 / 74191 | Sincrónico | 10 / 16 | Igual pero con un solo reloj y una pata U/D̄ que elige el sentido. |
| 74163 | Sincrónico | 16 | Carga y borrado sincrónicos: no genera pulsos falsos. El preferido para módulos por carga. |
| CD4017 | Johnson | 10 | Diez salidas decodificadas: se enciende una por vez. Secuenciadores y luces. |
| CD4020 / 4040 / 4060 | Asincrónico | 214 / 212 / 214 | Divisores largos. El 4060 trae además el oscilador a cristal adentro. |
| CD4029 | Sincrónico | 10 o 16 | Programable en todo: sentido, binario o BCD, con carga paralela. Muy usado en CMOS. |
| CD4510 / 4516 | Sincrónico | 10 / 16 | Los equivalentes CMOS del 74192/193. |
| CD4553 / 4026 / 4033 | Sincrónico | 10 | Contador + decodificador de siete segmentos en el mismo chip. Frecuencímetros y cuentavueltas. |
- CLK — reloj. Fijarse si es activo por flanco de subida (↑) o de bajada (↓); el símbolo en la hoja de datos es un triangulito, con círculo si es de bajada.
- CLR / MR / RESET — lleva la cuenta a cero. Puede ser asincrónico (actúa apenas llega) o sincrónico (espera el flanco).
- LOAD / PE — carga en las salidas el número presente en las entradas paralelo.
- P0…P3 / J1…J4 — entradas paralelo: el número que se carga.
- U/D̄ — sentido de la cuenta.
- CE / ENT / ENP — habilitación. Con la habilitación en reposo el contador queda congelado pero no se borra.
- TC / RCO / CARRY — «terminal count»: avisa que se llegó al final. Es la pata con la que se arma la cascada.
04Programar el módulo: las dos maneras
Un 74193 cuenta hasta 16 y un 4510 hasta 10. ¿Y si hace falta contar hasta 6, como en los segundos de un reloj, o hasta 12? Se le acorta la cuenta. Hay dos técnicas y no son equivalentes.
a) Por reset: detectar el estado N y borrar
Se decodifica con una compuerta el primer estado que no se quiere y se lo manda al reset. El contador pasa por ese estado un instante y vuelve a cero.
Ese pasaje relámpago por el estado 6 tiene tres consecuencias prácticas:
- Si un display está conectado a las salidas, alcanza a parpadear el dígito de más. Con brillo alto se llega a notar.
- Si otro circuito lee esas salidas, puede tomar el 6 como un valor válido.
- El pulso de reset es muy angosto (decenas de nanosegundos). En CMOS lento a veces ni alcanza a borrar todos los flip-flops y el contador se cuelga en un estado raro. Se resuelve con un flip-flop que estire el pulso, o usando la otra técnica.
b) Por carga sincrónica: mucho más limpio
Con un contador de carga y borrado sincrónicos (74163, o el 74193 usando su carga paralela), la corrección ocurre en el flanco de reloj, junto con todos los demás cambios. No hay estado fantasma ni pulso angosto.
Para contar N estados con un contador de 4 bits hay dos caminos simétricos:
- Contando para arriba: se carga el valor inicial 16 − N y se usa el acarreo de salida (que aparece en 15) para recargarlo. Ejemplo: para N = 6 se carga 10 y cuenta 10, 11, 12, 13, 14, 15 → recarga.
- Contando para abajo: se carga N − 1 y se recarga cuando llega a 0. Para N = 6 se carga 5 y cuenta 5, 4, 3, 2, 1, 0 → recarga. Es la forma que usan los temporizadores de los microcontroladores, y por eso conviene acostumbrarse a ella.
Los segundos van de 00 a 59: hacen falta una década completa para las unidades y un módulo 6 para las decenas.
- Unidades: un 4510 en modo BCD, módulo 10, sin nada agregado. Su acarreo sale una vez cada 10 segundos.
- Decenas: otro 4510 al que se le decodifica el 6 con una AND entre Q1 y Q2 (110 = 6) hacia el reset. Cuenta 0…5 y vuelve.
- El acarreo de las decenas, una vez cada 60 s, alimenta el contador de minutos.
El módulo total de la pareja es 10 × 6 = 60. La entrada tiene que ser exactamente 1 Hz: de ahí que un reloj de cuarzo divida 32 768 por 215, o que una versión sencilla arranque de los 50 Hz de la red dividiendo por 50.
05Expansión: poner contadores en cascada
Un integrado solo llega hasta 10 o hasta 16. Todo lo demás se arma encadenando, y la forma de encadenar es lo que distingue una cascada que funciona a 20 MHz de una que se cuelga a 2 MHz.
El acarreo de una etapa se conecta al reloj de la siguiente. Es lo que se hace con contadores asincrónicos y con el 74192/193.
Simple, pero los retardos se suman etapa por etapa y las salidas no cambian todas juntas.
El reloj entra en todas las etapas a la vez y el acarreo se conecta a la habilitación de la siguiente: la etapa alta sólo cuenta en el flanco en que la baja está en su último estado.
Todo el conjunto sigue siendo sincrónico, sin importar cuántas etapas tenga. Es la forma correcta cuando hay que decodificar la cuenta.
El módulo total de una cascada es el producto de los módulos. Con dos décadas y un módulo 6 se obtiene 600; con un módulo 6 y uno de 10, los 60 segundos. Si hace falta un módulo primo o cualquier número raro —por ejemplo dividir 50 Hz por 50 para obtener 1 Hz— conviene armar un solo contador binario largo y decodificar el valor final, en vez de encadenar módulos chicos.
06El 4017: contar sin decodificar
Es un caso aparte y merece su sección porque resuelve solo un problema entero. Adentro no hay un contador binario sino un registro de desplazamiento en anillo (Johnson) con la decodificación ya hecha: en lugar de cuatro salidas binarias tiene diez salidas, y en cada pulso se enciende una sola.
- Luces secuenciales tipo auto fantástico (con el 4017 + un 555 de reloj).
- Secuenciador de pasos para un motor.
- Divisor por cualquier número del 2 al 10, llevando la salida N al reset.
- Distribuidor de tiempos para multiplexar displays.
- CP0 avanza con flanco de subida; CP1 (inhibit) sirve para frenarlo o para usar flanco de bajada.
- MR (reset) vuelve a Q0. Activo en alto.
- Q5-9 es una salida de acarreo que queda en alto durante la mitad del ciclo: sirve para encadenar 4017 sin lógica extra.
El reloj que lo hace avanzar sale casi siempre de un 555 en astable: ahí se puede elegir la velocidad del secuenciador con un solo par R-C.
07Aplicaciones típicas
Una cascada de décadas con la entrada abierta por una compuerta durante exactamente 1 s. Lo que quede en el contador son los hertz. Es el circuito que se estudia en mediciones en CA y que se retoma completo en instrumentos digitales.
Base de tiempo de 1 Hz → módulo 60 (segundos) → módulo 60 (minutos) → módulo 12 o 24 (horas). Cada bloque es la misma pareja de contadores con distinto reset.
Un contador descendente que se recarga con un número N cada vez que llega a cero entrega f/N. Cambiando N —con llaves, con un teclado o desde un microcontrolador— se cambia la división. Es el corazón de un sintetizador PLL, con el que se elige la frecuencia de un transmisor.
Un contador que alimenta una red R-2R genera una rampa escalonada. Comparada contra una señal da un conversor A/D de rampa, que se ve en conversores A/D y D/A.
Un sensor óptico entrega un pulso por vuelta de un eje que gira a 1500 RPM. Se quiere mostrar las vueltas por minuto en tres dígitos.
- 1500 RPM = 1500/60 = 25 pulsos por segundo.
- Si se cuenta durante 1 s se leen 25: hay que mostrar RPM, no pulsos por segundo. Se cuenta entonces durante 60 s, o se multiplica por 60 eligiendo una ventana de 1 s y contando pulsos de un disco de 60 ranuras.
- Solución práctica: disco de 6 ranuras y ventana de 1 s. Se cuentan 1500 × 6/60 = 150 pulsos, y el display muestra directamente las centenas y decenas de RPM con una coma fija (150 → 1500 RPM con el último cero pintado en el frente).
- Hacen falta tres décadas en cascada (módulo 1000) y una compuerta de ventana. Con el resultado en 150 sobre 999, el rango llega hasta 9990 RPM.
08En el laboratorio
Armar un CD4040 con un reloj de 10 kHz del generador de funciones. Con el osciloscopio de dos canales, dejar el canal 1 en el reloj y recorrer con el canal 2 las salidas Q1 a Q6, midiendo la frecuencia en cada una. Anotar la tabla: 5 kHz, 2,5 kHz, 1,25 kHz, 625 Hz, 312,5 Hz, 156,25 Hz. Es la comprobación directa de que contar y dividir son la misma cosa.
Con un 74193 (o 4516) y una compuerta NAND de cuatro entradas, armar sucesivamente los módulos 5, 7, 9 y 12 por reset. Verificar cada uno con LED en las cuatro salidas y el reloj bien lento (1 Hz de un 555). Después repetir el módulo 12 por carga paralela y comparar en el osciloscopio la salida Q3 en los dos casos: en la versión por reset se ve la púa del estado fantasma.
Base de tiempo de 1 Hz + década 4510 + módulo 6, con dos displays de siete segmentos a través de 4511. Verificar que la cuenta va de 00 a 59 y vuelve a 00 sin saltarse el 59 ni mostrar un 60 parpadeante. Si el 60 aparece, el reset no está tomado de las salidas correctas.
555 astable a 2 Hz → 4017 → diez LED. Después, llevar Q6 al reset y comprobar que el ciclo pasa a seis pasos. Por último, usar la salida Q5-9 para encadenar un segundo 4017 y armar un secuenciador de veinte pasos.
En CMOS ninguna entrada puede quedar sin conectar, ni siquiera las que no se usan. Una entrada flotante toma cualquier valor, oscila y hace consumir corriente al integrado. Todas las entradas de reset, carga y habilitación que no se usen van a masa o a VDD según corresponda. Es la causa número uno de los contadores CMOS «que cuentan cualquier cosa».
09Errores frecuentes
| Síntoma | Causa habitual |
|---|---|
| El contador salta números o cuenta de a dos | Rebote del pulsador que hace de reloj. Hace falta un antirrebote (R-C + Schmitt, o un 555 monoestable). |
| La cuenta se cuelga en un número raro | Pulso de reset demasiado angosto, o entradas CMOS sin conectar. |
| El display muestra un dígito de más, parpadeando | Estado fantasma del módulo por reset asíncrono. Pasar a carga sincrónica o apagar el display durante el reset. |
| Con la cascada, la etapa alta avanza dos veces | Se tomó el acarreo por nivel en vez de por flanco, o se conectó a un reloj de flanco contrario al que corresponde. |
| Funciona lento y falla al subir la frecuencia | Cascada tipo ripple: los retardos acumulados superan el período del reloj. Pasar a cascada por habilitación. |
| La decodificación dispara sola | Glitch de decodificación sobre un contador asincrónico. Validar con el reloj o usar sincrónico. |
| Cuenta bien con LED pero falla manejando un relé | El ruido de la bobina vuelve por la alimentación. Desacoplar con 100 nF en cada integrado y diodo volante en el relé. |
| El 4017 enciende dos salidas a la vez | Reloj con flancos sucios o lentos. Pasar la señal por un Schmitt trigger (40106). |
10Autoevaluación
¿Cuántos flip-flops hacen falta para un contador módulo 12 y cuál es su capacidad real?
Cuatro, porque con tres sólo se llega a 8. La capacidad natural de cuatro etapas es 16, así que hay que acortar la cuenta: se decodifica el 12 (1100) hacia el reset, o se carga el 4 y se cuenta hasta el desborde.
¿Por qué un cristal de reloj es de 32 768 Hz?
Porque 32 768 = 215. Quince etapas de división binaria —que es lo que hay adentro de cualquier contador— entregan exactamente 1 Hz sin ninguna corrección.
¿Qué es el estado fantasma y cómo se elimina?
Es el paso brevísimo por el estado que se decodifica para resetear: el contador llega a ese valor y recién ahí se borra, de modo que existe durante el retardo de propagación. Se elimina programando el módulo por carga sincrónica, o con un contador de borrado sincrónico como el 74163.
Con tres décadas en cascada y un reloj de 1 MHz, ¿qué frecuencia sale de la última?
1 MHz / (10 × 10 × 10) = 1000 Hz. Cada década divide por diez.
¿Por qué un contador asincrónico no se puede decodificar con seguridad?
Porque sus etapas no cambian a la vez: durante la propagación aparecen combinaciones intermedias que no corresponden a ningún estado de la cuenta. Una compuerta decodificadora las ve y genera pulsos falsos de pocos nanosegundos.
Se quiere dividir por 7 una señal. ¿Cómo se hace con un contador de 4 bits?
Dos caminos. Ascendente: decodificar el 7 (0111) hacia el reset, con lo que el contador recorre 0…6 y vuelve: siete estados. Descendente y limpio: cargar 6 y recargar al llegar a 0, o cargar 16 − 7 = 9 y recargar con el acarreo. La segunda no tiene estado fantasma.
¿Qué ventaja tiene el 4017 frente a un 4510 con decodificador?
Que ya trae las diez salidas decodificadas y garantiza que sólo una está activa por vez, sin glitches. Ahorra el decodificador y el riesgo de que dos salidas se pisen durante la transición.
En una cascada por habilitación, ¿a dónde va el reloj de la segunda etapa?
Al mismo reloj que la primera. Lo que va del acarreo de la primera a la segunda es la habilitación de conteo, no el reloj. Así todo el conjunto cambia en el mismo flanco y sigue siendo sincrónico.
Un contador de 4 bits arranca en 0110 apenas se enciende el circuito, sin haber contado nada. ¿Qué pasa?
Los flip-flops toman un estado aleatorio al alimentarse. Falta un reset de encendido (power-on reset): un R-C que aplique un pulso de borrado durante los primeros milisegundos.
¿Por qué el temporizador de un microcontrolador cuenta hacia abajo?
Porque detectar el cero es más barato que comparar contra un número arbitrario: alcanza con una NOR de todos los bits. Contando hacia abajo desde N − 1 se programa cualquier módulo con la misma lógica de detección.