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.