Un bus SPI bidireccional (maestro - > esclavo - > maestro) es el más problemático de tratar. Considere las comunicaciones mucho más simples de maestro a esclavo: tanto los datos como el reloj permanecen sincronizados en su ruta hacia el esclavo.
Sin embargo, cuando el esclavo transmite al maestro, lo hace sincronizando con el reloj retrasado que recibe del maestro. Ese retraso se debe al tiempo de propagación a través del canal (cable, PCB, etc.). Luego está el retraso adicional de la devolución de datos, es decir, dos lotes de retraso de propagación y el maestro podría terminar tratando de recibir datos que han cambiado una parte significativa de un ciclo de reloj.
Con un reloj de 1 MHz, el período es 1000 ns y si los datos recibidos del esclavo han cambiado más de un cuarto de este tiempo (250 ns), entonces hay problemas.
La velocidad de propagación del espacio libre es de 300,000,000 m / s o, dicho de otra manera, 3.333 ns por metro. El cable puede duplicar esta cifra y no esperaría que esto fuera peor para una PCB, por lo que, suponiendo un caso más desfavorable de 7 ns por metro, podría correr 250/7 metros y no tener problemas de retardo. Eso es casi un viaje redondo de 36 metros o 18 metros de cable.
No estoy diciendo que los niveles de señal serán totalmente adecuados después de 18 metros, pero que 18 metros no deberían producir un retraso de ida y vuelta espectacular.
También hay que tener en cuenta las reflexiones y la regla general es que se vuelven significativas si la longitud del cable se aproxima a una décima parte de la longitud de onda de la frecuencia relevante más alta. ¿Qué frecuencia puedes preguntar? Bueno, el reloj es de 1 MHz y contiene armónicos que generalmente se consideran importantes hasta el séptimo, por lo que la frecuencia en cuestión es de 7 MHz. Esto tiene una longitud de onda en el espacio libre de aproximadamente 43 metros y, si se ejecuta en un cable "lento", podría ser de 20 metros.
Por esta razón (y la décima regla de oro) no quisiera ir más allá de 2 metros sin prestar atención a los terminadores de línea. Se pueden agregar a las líneas SPI sin demasiada dificultad, pero si no las quieres, diría que 2 metros es tu límite.