Estoy planeando encadenar 40 registros de desplazamiento x 74HC595 . Toda la cadena de 74HC595 estará controlada por un microcontrolador de 5 V, que generará las señales SDI
, CLOCK
& .LATCH
Cada registro de desplazamiento y el microcontrolador tendrán su propia PCB, como se ilustra en el siguiente diagrama:
Debido a limitaciones mecánicas, la distancia entre cada registro de desplazamiento será de unos 30 cm (12 pulgadas), 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 los registros de desplazamiento podrían generar cosas incorrectas. Estaba pensando en:
CLOCK
frecuencia tanto como sea posible. Solo necesito actualizar el contenido de los registros unas cuantas veces al día.¿Son buenas las soluciones anteriores? ¿Qué más puedo hacer para mantener al mínimo el ruido (potencial) en los cables de señal?
Utilice búferes de activación Schmitt en las entradas de cada placa. Limpiarán las señales para que cualquier ruido no dé pulsos falsos en el reloj, por ejemplo. El 74LVC3G17 es un búfer triple no inversor.
Además, pase las señales almacenadas en búfer a la siguiente placa. De lo contrario, todas las entradas serían paralelas y es posible que exceda la distribución del microcontrolador de conducción (estoy pensando especialmente en la carga capacitiva total). La cadena de margaritas de las señales de reloj y pestillo dará un retraso de ondulación a lo largo de la cadena, pero los datos también lo harán, y de todos modos planea ir a baja velocidad.
El problema que puede ocurrir es que algunos SR registren antes que el siguiente SR registre, por lo que el próximo SR registrará los datos incorrectos. Una solución (¿estándar?) para esto es cablear el reloj comenzando en el último 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 alta para empezar). Los problemas que puede tener ocurren en los bordes del reloj, que tendrá de todos modos, sin importar qué tan baja elija su frecuencia de reloj.
El mayor problema al encadenar registros de desplazamiento es garantizar que la relación de tiempo entre el reloj utilizado por cada placa para recibir datos y 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. Sugeriría que la señal del reloj debe almacenarse en un búfer a medida que pasa por cada placa y que la señal de datos que sale del 74HC595 de una placa debe pasar por un búfer que la retrasará un poco más que el búfer del reloj.
Alternativamente, podría usar un registro de desplazamiento como el 74HC4094 que tiene su cambio de salida de datos en el borde descendente del reloj, o podría agregar un flip flop entre la salida del último 74HC595 en el tablero y el siguiente tablero, y tener ese flip flop enganche su salida en el flanco descendente del reloj que impulsa los 74HC595 (tal vez pase el reloj a través de dos inversores para amortiguarlo y alimentar la señal del reloj invertido al flip flop).
Si el número de salidas 74HC595 que utilizará es uno (o más) menos que el número proporcionado por sus chips (por ejemplo, en una placa con dos 74HC595, en realidad solo necesita 15 salidas), puede alimentar el último 74HC595 en 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 pasa entre un 74HC595 de reloj no invertido y un 74HC595 de reloj invertido.
joel b
m.alin
stevenvh
joel b