Si tiene un problema con los protocolos serie como SPI a más de 5 metros, la respuesta simple es reducir la velocidad de reloj para recibir datos desde dispositivos remotos. Ir a algo como CAN no es una solución simple para mi forma de pensar, pero, por supuesto, esto puede ser necesario si las distancias lo justifican y no puede bajar la velocidad, PERO piense en esto ...
Poner un micro en ambos extremos (o el extremo remoto) para permitir las comunicaciones de tipo CAN significa que su rendimiento global de recuperación de datos desde un dispositivo remoto se limitará sin tener una velocidad de datos significativamente mayor a través del enlace CAN y usted Tendremos que adaptar su transmisión SPI maestra actual para que sea compatible con CAN y esto podría significar que, en lugar de simplemente enviar un reloj SPI y un CE, tendrá que enviar una solicitud más formal para que los datos remotos le sean devueltos.
La forma más sencilla es reducir la velocidad del reloj para adaptarse al cable y, si es necesario, utilizar controladores y receptores equilibrados, es decir, hacer que todo funcione con la demora que se obtiene al introducir los 5 metros de cable. Es fácil cuando se envían datos a un dispositivo remoto: tanto el reloj como los datos llegan en gran parte sincronizados, pero tratar de recuperar los datos es el verdadero problema en largas distancias: el dispositivo receptor recibe el reloj y sincroniza sus datos con el clk entrante, pero por El momento en que vuelve al maestro las cosas están sesgadas una respecto a la otra.
Por eso sugiero considerar la reducción de la velocidad del reloj: los sesgos no serán tan malos (como porcentaje) y es menos probable que den errores.