Shift Register para largas distancias

1

Estoy usando un SN74HC165 Shift Register para leer la señal de algunos interruptores. Con el circuito integrado SN74HC165 cerca del microcontrolador, el circuito a continuación funciona perfectamente. Pero físicamente tengo que poner el microcontrolador a una distancia de 2.5 m del IC. Con esta distancia estoy perdiendo algunos datos, principalmente la señal K8. Estoy usando resistencias pull-up con el valor de 10K. ¿Alguien sabría una manera de mejorar esta señal y evitar la pérdida de datos a esta distancia?

    
pregunta Eduardo Cardoso

4 respuestas

2

Eche un vistazo a la señal del reloj, en particular, en un osciloscopio en el extremo del circuito integrado, es probable que esté sonando como una campana y que la SR haga el reloj varias veces. Puede probar una resistencia en serie de aproximadamente 50-100 ohmios en serie con la unidad de reloj (cerca del microcontrolador), pero eso no es lo ideal.

Sería mejor usar un controlador y receptor diferencial LVDS y un par trenzado debidamente terminado, al menos para la señal del reloj.

Si falla, ralentiza el reloj con un RC y usa un disparador Schmitt (ya que el SN74HC165 carece de una entrada de reloj ST) como 74HC14 para limpiar el reloj en el otro extremo debería funcionar, siempre que sea aceptable para correr el reloj en Una frecuencia mucho más baja.

    
respondido por el Spehro Pefhany
1

La explicación más obvia parece ser el tiempo de propagación (la pérdida de datos del interruptor K8 parece confirmar eso). La resistencia de los cables también puede ser una explicación.

Intentaría disminuir la velocidad en baudios entre MCU e IC, haciendo que la señal CLK sea de una frecuencia suficientemente baja. Además, agregue retrasos entre la activación / desactivación de las señales SH y CLK_INH y la transferencia de datos.

Al hacerlo, se asegurará de que las señales se propaguen de manera que se respeten los tiempos de IC.

    
respondido por el naggety
1

Si por

  

perdiendo algunos datos, principalmente la señal K8

quiere decir que el K8 tiende a ser incorrecto, la situación parece muy extraña, ya que cada bit en la secuencia se trata de manera idéntica, independientemente de la distancia.

K8 es el primer bit que sale, por lo que la secuencia recibida debería ser

[K8, K7, ..., K1]

Si hay algún problema de tiempo (el reloj es demasiado temprano, demasiado tarde), es decir, tiene algo que ver con el retraso de la propagación, obtendrías algo como

[?, K8, K7, ..., K2]

o

[K7, K6, ..., K1,?]

donde? es un valor muestreado incorrectamente.

Creo que uno de estos es más probable que obtener más errores en el bit K8.

Un problema potencial, basado en su diagrama, es la falta de conexión a tierra del microcontrolador. ¿Funciona estrechamente acoplado a las líneas de datos? No es así, podría tener una gran inductancia en sus líneas, que no solo crea un filtro de paso bajo (que limita los tiempos de aumento de la señal y provoca demoras), sino que también crea un gran acoplamiento entre líneas. Por ejemplo, un flanco ascendente en una señal (es decir, el reloj), podría acoplarse a otra (es decir, los datos). O viceversa. El registro de desplazamiento podría incluso sincronizarse con una transición lógica de sus pines de salida.

Intente colocar todos los cables cerca uno del otro.

¿Qué pasa con la conexión de tensión de alimentación entre los dos circuitos integrados? ¿Ambos circuitos integrados están desacoplados correctamente con un condensador entre VCC y tierra? Si no, puede ver una gran caída de voltaje cuando ocurren transiciones lógicas. Esto podría explicar por qué tiene un problema con el primer bit y no con los otros. La señal de carga se lee en todos los bits a la vez, lo que podría causar una gran caída de voltaje temporalmente, afectando el primer bit que sale, pero se estabiliza después de eso.

Intente aumentar la capacidad de desacoplamiento entre VCC y GND en ambos circuitos integrados.

    
respondido por el jpcgt
0

No sé cómo se ven sus señales en un alcance, pero cuando tengo problemas debido a cables largos y señales no diferenciales, a menudo una simple tapa de 0.1µF de la señal de larga distancia a tierra ayuda a disociar el ruido . El valor óptimo del límite puede depender de las velocidades / tiempos que necesite.

    
respondido por el Bort

Lea otras preguntas en las etiquetas