¿Cómo multiplexar un reloj entre múltiples salidas seleccionables?

0

Me gustaría enrutar una única señal de reloj a uno de varios destinos posibles por medio de unas pocas (2 o 3) líneas de selección de dirección.

Antecedentes: Estoy manejando 595 registros de turnos desde un microcontrolador (Arduino por ahora, posiblemente ESP8266 más adelante). Quiero tener múltiples (probablemente 4, posiblemente 5 o 6) cadenas separadas de SR que puedan manejarse por separado, de modo que pueda (por ejemplo) conducir 14 presentaciones de segmentos en cada cadena y desplazar (desplazar) cada una por separado. Mi diseño original tenía todas las cadenas SR compartiendo las líneas \ $ \ text {SER} \ $, \ $ \ text {RCLK} \ $, y \ $ \ text {SRCLK} \ $ del microcontrolador, y usando un 3- 8 decodificador para manejar el \ $ \ overline {\ text {SRCLR}} \ $ como una especie de "selección de cadena". Sin embargo, me di cuenta de que \ $ \ overline {\ text {SRCLR}} \ $ también borra los registros de entrada, lo que arruinaría la capacidad de desplazar las salidas ... Necesitaría "rellenar" cada cadena SR después de su \ $ \ overline {\ text {SRCLR}} \ $ era bajo.

Mi siguiente idea fue usar un \ $ \ text {SRCLK} \ $ separado para cada Cadena SR. La opción B de esta respuesta ESE sugiere el mismo enfoque. Siempre que \ $ \ text {SRCLK} \ $ no cambie, cualquier señal en \ $ \ text {SER} \ $ no cambiará los registros de entrada y cualquier cambio en \ $ \ text {RCLK} \ $ will reenganche los mismos datos a la salida. Sin embargo, no quiero tener múltiples pines físicos para los múltiples relojes porque (a) restricciones de conteo de pines, y (b) probablemente usaré el puerto SPI de hardware para enviar datos a las cadenas SR.

Lo que me lleva a la pregunta. Suponiendo que tengo un solo pin de reloj (salida) del microcontrolador, ¿cómo puedo enviar esa señal a solo 1 de varios destinos posibles? Suponga que hay 3 líneas de dirección que manejan un decodificador 3-8, dándome 8 señales "SR Chain Select". Estoy considerando usar una puerta AND para cada Cadena SR, con el reloj como entrada para cada una, y las señales de Selección de 8 Cadenas como la otra entrada para cada una (ignorando por ahora que la mayoría de los decodificadores de 3-8 dan salida a 7 altas y 1 baja , así que es probable que necesite un inversor en cada línea de salida del decodificador). Vea el esquema a continuación (solo se muestran 4 puertas Y para tamaño reducido). ¿Es esta la mejor solución o hay un mejor enfoque?

simular este circuito : esquema creado usando CircuitLab

    
pregunta Jason Clark

3 respuestas

1

Lo que está buscando es algo así como un 74 (HC) 138 o 238 . La diferencia es que las 138 salidas no seleccionadas son altas y las bajas seleccionadas, mientras que las 238 tienen bajas no seleccionadas y altas seleccionadas. En ambos casos, el IC tiene, además de las 3 líneas de dirección, 3 líneas de selección, una de las cuales puede usar como entrada de su reloj.

simular este circuito : esquema creado usando CircuitLab

Ten en cuenta que tendrás que tener cuidado. Si cambia las líneas de dirección mientras el reloj está alto, obtendrá un borde ascendente en la salida recién seleccionada.

    
respondido por el WhatRoughBeast
3

La mayoría de los decodificadores 3- > 8 tienen una entrada de datos (o habilitación), alimenta el reloj a eso y no necesitas los puertos AND adicionales.

    
respondido por el Wouter van Ooijen
0

Una forma más sencilla de hacerlo es a través de un demultiplexor. Esto toma una entrada y la enruta a una salida basada en una dirección de entrada.

enlace

Una palabra de precaución: ¡asegúrese de que el multiplexor que elija pueda manejar la velocidad de su reloj!

    
respondido por el TylerH

Lea otras preguntas en las etiquetas