Largas cadenas de registros de desplazamiento

Quiero configurar una pantalla LED y estoy buscando usar un montón de chips de controlador LED de 16 bits (como TI TLC5927 ) para ejecutar una matriz LED de 16x16. Entonces me gustaría juntar algunas de estas pantallas de 16x16 para hacer una pantalla más grande. Como son encadenables, eso debería funcionar en principio.

El problema, tal como lo veo, es distribuir las señales CLK, LATCH y OE, ya que los chips no las vuelven a controlar. Y estoy pensando que la pequeña y débil salida de Arduino no va a manejar mucho más de 20 o 30 chips antes de que las señales se vuelvan demasiado borrosas para ser consideradas digitales.

Entonces... ¿la solución es colocar un búfer 74HCT125 cada tantos chips para volver a controlar las señales CLK, LATCH y OE? ¿Alguna dificultad con ese enfoque? Tal vez solo lo estoy pensando demasiado.

Pregunta similar: electronics.stackexchange.com/questions/40242/… He usado búferes de activación Schmitt, como sugirió Steven en su respuesta y funcionó bien, al menos para 16 registros encadenados en una distancia de aproximadamente 10 m
He visto 74HCT125 utilizado como búfer para líneas SPI en varias placas LED comerciales

Respuestas (1)

Siempre que todas las señales sean impulsadas por una sola fuente, que es en su caso, su solución funcionará. Sin embargo, estas señales generalmente necesitan muy poca corriente. Para una pequeña cantidad de circuitos integrados, debería estar bien sin ellos. Para 20-30, sí, tampón. También tenga en cuenta que muchos circuitos integrados introducirán un pequeño retraso de propagación en su línea de datos. En el peor de los casos, esto requerirá que también retrase su reloj, etc. para compensar la posibilidad de que el reloj llegue antes que los datos si opera a una frecuencia muy alta.

Sí, probablemente lo ejecutaré con un Arduino, así que no creo que ejecute el reloj a una velocidad no superior a 2 MHz :-)
En aras de la exhaustividad, a 2 MHz el período del reloj es de 500 ns, lo que significa que los datos se configuran 250 ns antes de la transición del reloj. Incluso suponiendo que el tiempo de estabilización cero sea suficiente (como en el caso de que los datos estén disponibles justo antes o en el momento de la transición del reloj. Por lo general, necesita algún tiempo de configuración/estabilización), y suponiendo que utiliza un búfer por resistencia de cambio para el En aras de la simplicidad en el cálculo, eso significa que para 25 registros encadenados puede tener una diferencia de propagación máxima, es decir, el tiempo de propagación del registro de desplazamiento menos el del búfer debe ser inferior a 10 ns. Está apretado.
Gracias por las adiciones, probablemente no usaría un búfer por registro de desplazamiento, eso parece una exageración... y de todos modos, el 74HC125 tiene un retraso de propagación del orden de 10 ns. Probablemente solo colocaría un búfer de reimpulsión cada 5 o 10 registros de desplazamiento. Y si hubiera problemas, ralentizar un poco el reloj :)
Tu no entiendes. Poner un búfer por registro de desplazamiento mejora la situación, ya que cada búfer compensa el retraso introducido por su correspondiente registro de desplazamiento. Si tiene uno por diez, entonces un búfer tiene que compensar el retraso de diez registros de turno. Es probable que el registro de desplazamiento tenga más retraso por IC, y lo que es importante es el retraso entre las dos cadenas de señal, no el retraso independiente. Pero te haces una idea ahora de todos modos. Toda la suerte :)