Como vimos en los contadores asincronos, los contadores de rizo no pueden ser utilizados para llevar cuentas precisas, cuando necesitamos la mayor precisión posible, se deben utilizar los Contadores Síncronos o "Paralelos".
A diferencia de su contraparte el contador de rizo, el contador síncrono o "Paralelo" lleva una conexión un tanto diferentes sobre los FF, esto puede aumentar su complejidad, pero es la única manera de obtener el menor retraso posible para operar de manera confiable y alcanzar mayores velocidades de conteo.
En los contadores paralelos, todos los FF cambian al mismo tiempo, lo que reduce la propagación a un solo valor (el tiempo que tarda en cambiar de estado un solo FF).
La siguiente figura ilustra el circuito de un contador síncrono (Paralelo):
Al comparar el circuito síncrono y el asíncrono, podremos observar diferencias muy marcadas:
Observemos por un momento la secuencia de conteo de este circuito:
Como podemos observar en la gráfica anterior, el primer BIT siempre cambia de estado con cada pulso de reloj, el segundo cambia cada dos, el tercero cada cuatro, y el cuarto cada ocho.
En los contadores asíncronos, este efecto es automático y no hay que preocuparse por él, pero en el caso de los contadores síncronos, tenemos que forzar a cada FF a complementarse de manera precisa y controlada
Para que este cambio se lleve a cabo, se utilizan las dos compuertas, tomemos como ejemplo la compuerta de dos entradas, solamente cuando sus dos entradas se encuentren en el estado alto (BIT 1 = 1 y BIT 2 =1), la salida será alta, y por lo tanto "J-K" del tercer FF también, al llegar el pulso del reloj, este podrá complementarse. Y en el caso de la compuerta de tres entradas el caso es idéntico, solamente cuando sus tres entradas sean altas, su salida será alta, y el cuarto FF podrá cambiar.
En otras palabras, EL FF 1 se complementa sin ayuda alguna, ya que sus entradas "J-K" le permiten hacerlo libremente, el segundo FF depende de la salida del primero, el tercero depende de de los dos primeros, el cuarto de los tres primeros, y así sucesivamente si le seguimos colocando más BITS (FF) al contador.
Los cambios en las entradas de las compuertas suceden con cada pulso del reloj, de manera que mientras la transición correcta llega, los FF que deban complementarse ya están "preparados" y responden inmediatamente a la señal de reloj.
La principal ventaja de este tipo de contadores sobre los asíncronos radica en que todos los FF sin importar cuántos sean, cambian al mismo tiempo, sincronizados por la señal de reloj.
Una ventaja derivada de la primera es que el tiempo de propagación se reduce al mínimo, ya que el conteo sólo debe propagarse por una o dos compuertas y un FF (Ya que cambian al mismo tiempo, y no dependen de otro FF para operar).
Por lo que el retardo de estos contadores va a ser mucho menor al de un contador asíncrono con el mismo número de FF (BITS).
Con anterioridad vimos como un contador asíncrono "normal" (Conteo ascendente) podía ser modificado para hacer el conteo descendente. En el caso de los contadores síncronos es la misma mecánica.
La siguiente figura nos muestra un contador MOD 8, con controles separados de cuenta ascendente/descendente.
El principio de operación es el mismo, la diferencia es que tenemos dos pines de control, cada uno va a ser activo en el estado alto, y por obvias razones no pueden estar en el mismo estado al mismo tiempo, ya que el contador puede producir errores o cuentas impredecibles.
SI mantenemos en el estado alto el pin "Cuenta ascendente" las señales de cada FF que llegarán al siguiente serán las de las salidas "normales".
Si lo hacemos al contrario, las señales que serán usadas serán las de las salidas "negadas". Produciendo la cuenta hacia arriba o hacia abajo.
Una gran necesidad en un circuito contador es la capacidad de poder modificar la cuenta a voluntad del usuario, (de otra manera tendríamos que esperar a que llegara al número deseado de manera autónoma).
La gran mayoría de circuitos contadores integrados en un solo chip cuentan con uno o más tipos de entradas de control para este fin.
La siguiente figura nos muestra un ejemplo de las mismas.
El funcionamiento del contador en general es el mismo que habíamos visto antes, ero con la ventaja de que podemos enviar el contador a un número arbitrario en el momento que lo necesitemos.
Para este efecto, el número a cargar se pone en las entradas de datos de carga en paralelo, en formato binario.
Y cuando lo necesitemos, lo único que tenemos que hacer es enviar un pulso a la entrada de activar carga, y el número establecido con anterioridad será enviado (cargado) a la salida.
NOTA: La información acerca de los circuitos contadores armados de forma discreta (Con FF y compuertas lógicas) no es muy extensa ya que no son aplicadas comúnmente. Sólo son para propósitos de comprender el funcionamiento de los mismos, antes de pasar a los contadores integrados en un chip.
Para evitar lo complejo y obsoleto de los contadores discretos (Circuitos con FF y compuertas lógicas), se utilizan los contadores integrados en un solo chip, en el mercado se puede conseguir una amplia gama de modelos con diferentes características, como Números MOD, entradas de pre-establecimiento, etc.
La siguiente figura nos muestra el circuito integrado de la familia TTL 74LS193.
Un contador síncrono MOD 16 pre-fijable y reset asíncrono y con salidas de acarreo.
En la siguiente tabla se describen los nombres de cada uno de los pines
Entrada CPU: Esta entrada sólo responderá a las TP (Transiciones positivas) de la señal de reloj, se puede identificar claramente por la falta de un círculo o una línea debajo del símbolo de la entrada. Y su propósito es el de enviar los pulsos de reloj para activar la cuenta Ascendente.
Entrada CPD: Esta entrada sólo responderá a las TP (Transiciones positivas) de la señal de reloj, se puede identificar claramente por la falta de un círculo o una línea debajo del símbolo de la entrada. Y su propósito es el de enviar los pulsos de reloj para activar la cuenta Descendente.
Entrada PL: Esta entrada sólo será activa al estar en el estado BAJO, se puede identificar claramente por el pequeño círculo o una línea debajo del símbolo de la entrada. Y su propósito es el de enviar los pulsos para activar la carga de un número paralelo pre-establecido.
Entrada MR: Esta entrada sólo será activa al estar en el estado BAJO se puede identificar claramente por el pequeño círculo o una línea debajo del símbolo de la entrada. Esta entrada es la encargada de activar el RESET general, enviando todas las salidas al estado BAJO, es decir, al número 0000.
Entradas D0 - D3: Estas entradas sólo serán activas al estar en el estado ALTO, se puede identificar claramente por la falta de un círculo o una línea debajo del símbolo de la entrada. SU propósito es el de albergar el número binario paralelo que va a ser cargado al activar el pin PL.
Salidas Q0 - Q3: Las cuatro salidas del contador, desde el LSB (Q0), hasta el MSB (Q3).
Salida TCU: Esta salida enviará un pulso cada vez que el contador se recicle, en el modo de conteo ascendente.
Salida TCD: Esta salida enviará un pulso cada vez que el contador se recicle, en el modo de conteo descendente.
En la siguiente tabla se explica las acciones que generan las diferentes combinaciones en las entradas:
Un tipo de contadores que funcionan de manera especial son los llamados "Registros de corrimiento", el contador de anillo o "registro de corrimiento circulante" es el más sencillo de ellos.
Este nombre se toma de la manera en la que está conectado el circuito contador, Cada FF transfiere el estado presente en su entrada al siguiente FF con cada pulso de la entrada de reloj, y el último FF regresa ese estado al primero, cerrando así el "Anillo".
La siguiente figura nos muestra el circuito de un contador de anillo
La siguiente tabla nos muestra la secuencia que siguen los datos al pasar por lo FF, esto suponiendo que el estado de cuenta inicial fuera de: Q3 = 1, Q2=0, Q1=0, y Q0=0.
En la gráfica podemos observar el corrimiento de los datos sobre los cuatro FF.
El número MOD de un contador de anillo puede ser tan grande como lo necesitemos, sólo se necesita agregar más FF al anillo.
Aunque su uso es menos eficaz que el de los contadores normales, esta configuración sigue vigente gracias a que no es necesaria la decodificación de las salidas (Como sucede con los contadores asíncronos y síncronos), la salida decodificada es obtenida directamente de la salida del FF que deseemos.
Haciendo una pequeña modificación al contador de anillo básico, podemos crear otro tipo de contador de anillo. El contador Johnson u de anillo trenzado.
El circuito básico es en esencia el mismo, el único cambio que necesitamos hacer es en la salida del último FF (la que cierra el anillo con la entrada del primer FF).
En vez de utilizar la salida "normal" para enviarla a la entrada del prime FF, se toma la salida Negada.
La siguiente tabla nos muestra la secuencia que siguen los datos al pasar por lo FF.
Como podemos observar en la secuencia, el número MOD de un contador tipo Johnson siempre será el doble de los FF que lo conformen.
Este tipo de contadores está limitado a un número MOD que siempre será PAR.
Con esto termina este pequeño tutorial de los Contadores, espero que las dudas hayan encontrado una respuesta satisfactoria, y que la información aquí contenida sea de gran utilidad para el lector.
Autor: Apollo