Saltar al contenido principal
LibreTexts Español

11.3: Contadores síncronos

  • Page ID
    154410
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    ¿Qué es un Contador S incrónico?

    Un contador síncrono, a diferencia de un contador asíncrono, es aquel cuyos bits de salida cambian de estado simultáneamente, sin ondulación. La única forma en que podemos construir un circuito contador de este tipo a partir de los flip-flops J-K es conectando todas las entradas de reloj juntas, de modo que todos y cada uno de los flip-flop reciban exactamente el mismo pulso de reloj al mismo tiempo:

    04351.png

    Ahora bien, la pregunta es, ¿qué hacemos con las entradas J y K? Sabemos que todavía tenemos que mantener el mismo patrón de frecuencia de división por dos para poder contar en una secuencia binaria, y que este patrón se logra mejor utilizando el modo “toggle” del flip-flop, por lo que el hecho de que las entradas J y K deben ser ambas (a veces) “altas” es claro. No obstante, si simplemente conectamos todas las entradas J y K al riel positivo de la fuente de alimentación como lo hicimos en el circuito asíncrono, esto claramente no funcionaría porque todos los flip-flops se alternarían al mismo tiempo: ¡con todos y cada uno de los pulsos de reloj!

    04352.png

    Examinemos nuevamente la secuencia de conteo binario de cuatro bits, y veamos si hay otros patrones que predicen la alternancia de un bit. El diseño de circuito de contador asíncrono se basa en el hecho de que cada alternancia de bit ocurre al mismo tiempo que el bit anterior cambia de un “alto” a un “bajo” (de 1 a 0). Como no podemos cronometrar la alternancia de un bit en base a la alternancia de un bit anterior en un circuito contador síncrono (para hacerlo crearía un efecto ripple) debemos encontrar algún otro patrón en la secuencia de conteo que pueda usarse para activar un bit toggle:

    Al examinar la secuencia de conteo binario de cuatro bits, se puede ver otro patrón predictivo. Observe que justo antes de alternar un poco, todos los bits anteriores son “altos”:

    14059.png

    Este patrón también es algo que podemos explotar en el diseño de un circuito contador.

    Contador síncrono “Up”

    Si habilitamos cada flip-flop J-K para alternar en función de si todas las salidas anteriores del flip-flop (Q) son o no “altas”, podemos obtener la misma secuencia de conteo que el circuito asíncrono sin el efecto ripple, ya que cada flip-flop en este circuito será cronometrado exactamente al mismo tiempo:

    04353.png

    El resultado es un contador sincrónico “up” de cuatro bits. Cada una de las chanclas de orden superior está lista para alternar (ambas entradas J y K “altas”) si las salidas Q de todas las chanclas anteriores son “altas”. De lo contrario, las entradas J y K para ese flip-flop serán ambas “bajas”, colocándolo en el modo “latch” donde mantendrá su estado de salida actual en el siguiente pulso de reloj. Dado que el primer flip-flop (LSB) necesita alternar en cada pulso de reloj, sus entradas J y K están conectadas a V cc o V dd, donde estarán “altas” todo el tiempo. El siguiente flip-flop solo necesita “reconocer” que la salida Q del primer flip-flop es alta para estar lista para alternar, por lo que no se necesita ninguna puerta AND. Sin embargo, los flip-flops restantes deben estar listos para alternar solo cuando todos los bits de salida de orden inferior son “altos”, de ahí la necesidad de puertas AND.

    Contador síncrono “abajo”

    Para hacer un contador síncrono “hacia abajo”, necesitamos construir el circuito para reconocer los patrones de bits apropiados que predicen cada estado de alternancia mientras se cuenta regresiva. No es sorprendente, cuando examinamos la secuencia de conteo binario de cuatro bits, vemos que todos los bits anteriores son “bajos” antes de una palanca (siguiendo la secuencia de abajo hacia arriba):

    14060.png

    Dado que cada flip-flop J-K viene equipado con una salida Q' así como una salida Q, podemos usar las salidas Q' para habilitar el modo toggle en cada flip-flop sucesivo, siendo que cada Q' será “alto” cada vez que la Q respectiva sea “baja”:”

    04354.png

    Circuito de contador con modos de conteo seleccionables “arriba” y “abajo”

    Llevando esta idea un paso más allá, podemos construir un circuito contador con seleccionable entre los modos de conteo “arriba” y “abajo” al tener líneas duales de puertas AND detectando las condiciones de bit apropiadas para una secuencia de conteo “arriba” y “abajo”, respectivamente, luego usar puertas OR para combinar las salidas de la puerta AND con las J y K entradas de cada flip-flop siguiente:

    04355.png

    Este circuito no es tan complejo como podría aparecer primero. La línea de entrada de control arriba/abajo simplemente permite que la cadena superior o la cadena inferior de puertas AND pasen las salidas Q/Q' a las etapas siguientes de los flip-flops. Si la línea de control arriba/abajo es “alta”, las puertas Y superiores se habilitan, y el circuito funciona exactamente igual que el primer circuito contador síncrono (“arriba”) que se muestra en esta sección. Si la línea de control arriba/abajo se hace “baja”, las puertas AND inferiores se habilitan, y el circuito funciona de manera idéntica al segundo circuito (contador “abajo”) que se muestra en esta sección.

    Para ilustrar, aquí hay un diagrama que muestra el circuito en el modo de conteo “ascendente” (todos los circuitos deshabilitados se muestran en gris en lugar de negro):

    04356.png

    Aquí, se muestra en el modo de conteo “hacia abajo”, con la misma coloración gris que representa circuitos deshabilitados:

    04357.png

    Los circuitos de contador arriba/abajo son dispositivos muy útiles. Una aplicación común es en el control de movimiento de la máquina, donde los dispositivos llamados codificadores de eje rotativo convierten la rotación mecánica en una serie de pulsos eléctricos, estos pulsos “sincronizan” un circuito contador para rastrear el movimiento total:

    04358.png

    A medida que la máquina se mueve, gira el eje del codificador, haciendo y rompiendo el haz de luz entre el LED y el fototransistor, generando así pulsos de reloj para incrementar el circuito contador. Así, el contador integra, o acumula, el movimiento total del eje, sirviendo como una indicación electrónica de hasta dónde se ha movido la máquina. Si lo único que nos importa es rastrear el movimiento total, y no nos importa dar cuenta de los cambios en la dirección del movimiento, esta disposición será suficiente. Sin embargo, si deseamos que el contador incremente con una dirección de movimiento y decremente con la dirección inversa del movimiento, debemos usar un contador arriba/abajo, y un circuito codificador/descodificador que tenga la capacidad de discriminar entre diferentes direcciones.

    Si rediseñamos el codificador para tener dos conjuntos de pares LED/fototransistores, esos pares alineados de tal manera que sus señales de salida de onda cuadrada estén 90 o desfasadas entre sí, tenemos lo que se conoce como codificador de salida en cuadratura (la palabra “cuadratura” simplemente se refiere a un 90 o separación angular). Un circuito de detección de fase puede fabricarse a partir de un biestable tipo D, para distinguir una secuencia de impulsos en sentido horario de una secuencia de pulsos en sentido antihorario:

    04359.png

    Cuando el codificador gira en sentido horario, la onda cuadrada de señal de entrada “D” conducirá a la onda cuadrada de entrada “C”, lo que significa que la entrada “D” ya será “alta” cuando la “C” haga una transición de “baja” a “alta”, ajustando así el flip-flop tipo D (haciendo que la salida Q sea “alta”) con cada pulso de reloj. Una salida Q “alta” coloca el contador en el modo de conteo “Arriba”, y cualquier pulso de reloj recibido por el reloj desde el codificador (desde cualquiera de los LED) lo incrementará. Por el contrario, cuando el codificador invierte la rotación, la entrada “D” se retrasará por detrás de la forma de onda de entrada “C”, lo que significa que será “baja” cuando la forma de onda “C” pase de “baja” a “alta”, forzando al flip-flop tipo D al estado de reinicio (haciendo que la salida Q sea “baja”) con cada pulso de reloj. Esta señal “baja” ordena al circuito contador disminuir con cada pulso de reloj del codificador.

    Este circuito, o algo muy parecido, está en el corazón de cada circuito de medición de posición basado en un sensor codificador de pulsos. Estas aplicaciones son muy comunes en robótica, control de máquinas herramienta CNC y otras aplicaciones que involucran la medición de movimiento mecánico reversible.


    This page titled 11.3: Contadores síncronos is shared under a GNU Free Documentation License 1.3 license and was authored, remixed, and/or curated by Tony R. Kuphaldt (All About Circuits) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.