¿Qué circuitos integrados de registro de desplazamiento estoy buscando?

Estoy diseñando un proyecto que requiere muchas más E/S que las que ofrece un microcontrolador típico. No hay problema, correcto, solo use registros de desplazamiento y esas cosas. Espera, no, ¿por qué tengo problemas?

Estoy planeando manejar 24 salidas con una línea de datos en serie, un reloj y una selección de chip. 16 de las salidas están conectadas a LED y las 8 restantes están conectadas a una pantalla LCD HD44780. Entonces, lo que pensé en hacer para los 16 LED fue conectarlos a dos contadores de 8 bits que alimentan el bit de datos en serie al LED específico y luego cambian a la siguiente salida consecutiva cuando están cronometrados, como un demultiplexor, pero en serie. Para la pantalla LCD, necesito retener los datos y enviarlos todos a la vez, por lo que necesito un registro paralelo en serie de 8 bits y esperar hasta que pasen 8 relojes para habilitarlo.

Encontrar un IC que haga lo último es fácil, 74HC595 parece hacerlo, pero para los LED, parece que no puedo encontrar un chip de la serie 7400 que haga lo que quiero. Todos los que puedo encontrar mantienen valores anteriores y simplemente los cambian, y los decodificadores que encontré 1) no tienen una línea de datos, siempre son verdaderos cuando se seleccionan y 2) requieren una palabra binaria, no un reloj. Si aún no está claro, quiero algo que haga lo que está a la izquierda:

Juro que he usado un chip que hace lo que estoy pensando antes al conducir una matriz de LED, pero no recuerdo su número. Cualquier ayuda sería apreciada.

Respuestas (3)

No entiendo por qué no puedes usar el 74HC595 para los LED.

Cambie sus datos, luego haga sonar el reloj para que el registro de almacenamiento contenga ese valor de 8 bits. Siempre que no esté pulsando el reloj del registro de almacenamiento, puede cambiar bits durante todo el día sin afectar los bits de salida finales.

Puede usar la misma línea de datos en serie para todas sus salidas y simplemente 'cerrar' selectivamente qué registro de desplazamiento se bloqueará.

Por favor, deje un comentario si he entendido mal lo que está haciendo. Elaboraré más mi respuesta.

Me gustaría mantener una conexión directa con el LED. Si lo conecto a un registro de desplazamiento, tengo que cronometrar varias veces y reiniciar el chip una y otra vez para cada salida posterior. Si tengo una conexión directa, lo que quiera que muestre el LED es lo que pase a través de los datos en serie, y solo lo registro para que haga lo que quiera en el siguiente.

El elemento de la izquierda no es un registro de desplazamiento en absoluto; se conoce como un "pestillo direccionable". 74xx259 es un ejemplo.

Sin embargo, no conozco ningún componente comercial que tenga un contador interno; todos esperan que proporcione la dirección binaria de 3 bits para el pestillo que se actualizará.

Sería fácil crear un dispositivo de este tipo usando PAL o CPLD.

Además, si tiene un bus SPI o I2C en su controlador (o está dispuesto a usar uno en GPIO), hay muchos tipos de chips de expansión de E/S disponibles para estos buses. Un ejemplo que he usado es el Microchip MCP23S17 (SPI) / MCP23017 (I2C). Cada chip te da 16 líneas más de GPIO.

No entiendo por qué no puedes usar el 74HC595. Aquí están todas las opciones que veo.

74HC299, registro de desplazamiento universal de 8 bits; 3 estados, si puede hacer tres estados de sus salidas mientras cambia.

Registro de desplazamiento de entrada en serie 74HC594 con registros de salida

Registro de desplazamiento de entrada en serie 74HC595 con pestillos de salida

Registro de desplazamiento de entrada en serie 74HC596 con registros de salida y salidas de colector abierto

74673 Registro de desplazamiento de entrada y salida en serie de 16 bits con registros de almacenamiento de salida, salidas de tres estados, si necesita 16 bits.

Se necesitaron dos personas para decirlo, pero finalmente me di cuenta de que realmente no hay ninguna razón por la que no pueda usar el 595, ya que estoy sincronizando lo suficientemente rápido como para que una conexión directa realmente no importe de todos modos.