¿Qué problemas podrían ocurrir al encadenar 40 registros de turnos?

15

Estoy planeando encadenar 40 x 74HC595 registros de desplazamiento . La cadena completa de 74HC595 se controlará mediante un microcontrolador de 5 V, que generará el SDI , CLOCK & LATCH señales.

Cada registro de desplazamiento y el microcontrolador tendrán su propio PCB, como se ilustra en el diagrama a continuación:

Debido a las limitaciones mecánicas, la distancia entre cada registro de desplazamiento será de unos 30 cm (12 in), por lo que las señales de control viajarán a lo largo de una distancia de aprox. 12 m (40 pies). Además, todo el sistema se montará en un entorno muy ruidoso (cerca de luces fluorescentes, cables de alimentación, etc.)

Mi preocupación es que las señales de control serán muy ruidosas y que los registros de desplazamiento puedan generar errores. Estaba pensando en:

  • Usar un búfer IC en cada placa para amortiguar las señales de control. ¿Cuál recomendaría?
  • Uso de cables blindados entre las placas para las señales
  • Reducir la frecuencia CLOCK tanto como sea posible. Solo necesito actualizar el contenido de los registros unas cuantas veces al día.

¿Son las soluciones anteriores una buena cosa que hacer? ¿Qué más puedo hacer para reducir al mínimo el ruido (potencial) en los cables de señal?

    
pregunta m.Alin

3 respuestas

14

Utilice buffers de activación de Schmitt en las entradas de cada placa. Limpiarán las señales para que cualquier ruido no emita pulsos falsos en el reloj, por ejemplo. El 74LVC3G17 es un búfer triple que no se invierte.

También, pase las señales en búfer al siguiente tablero. De lo contrario, todas las entradas serían paralelas y usted puede exceder la salida del ventilador del microcontrolador de conducción (estoy pensando especialmente en la carga capacitiva total). La cadena margarita de las señales de reloj y latch proporcionará un retraso en toda la cadena, pero los datos también lo harán, y usted planea ir a baja velocidad de todos modos.

    
respondido por el stevenvh
9

El problema que puede ocurrir es que algunos SR se sincronizan antes de los siguientes SR, por lo que la próxima SR registrará los datos incorrectos. Una solución (¿estándar?) Para esto es conectar el reloj a partir de la última SR.

Consideraría agregar un búfer (¿schmit-trigger?) en cada placa para las 3 líneas de señal.

(editar) Bajar la frecuencia del reloj no ayudará (a menos que fuera demasiado alto para empezar). Los problemas que puede tener en los bordes del reloj, que tendrá de todos modos, sin importar qué tan baja elija su frecuencia de reloj.

    
respondido por el Wouter van Ooijen
8

El mayor problema cuando se encadenan los registros de turnos es garantizar que la relación de tiempo entre el reloj utilizado por cada placa se use para recibir datos y que el cambio en los datos de la placa anterior sea predecible. El hecho de que la salida del 74HC595 cambie en el mismo borde que el reloj es un poco molesto en ese sentido. Yo sugeriría que la señal del reloj se almacene en búfer a medida que pasa por cada placa y que la señal de datos que sale del 74HC595 de una placa se pase por un búfer que lo demore un tiempo un poco más largo que el búfer del reloj.

Alternativamente, puede usar un registro de desplazamiento como 74HC4094 que tiene su cambio de salida de datos en la caída del borde del reloj, o puede agregar un flip flop entre la salida del último 74HC595 en el tablero y la siguiente, y hacer que ese flip flop retenga su salida en el borde descendente del reloj que controla el 74HC595 (quizás pase el reloj a través de dos inversores para amortiguar y alimentar la señal de reloj invertida al flip flop).

Si la cantidad de salidas de 74HC595 que utilizará es una (o más) menos que la cantidad suministrada por sus chips (p. ej., en una placa con dos 74HC595, en realidad solo necesita 15 salidas), puede alimentar la última 74HC595. una placa con un reloj invertido de los demás, pero eso le costaría el uso de una salida 74HC595 por cada vez que la señal pase entre un reloj no invertido 74HC595 y un reloj invertido 74HC595.

    
respondido por el supercat

Lea otras preguntas en las etiquetas