Encontré una lectura interesante de Texas Instruments aquí llamada Extendiendo el bus SPI para
comunicación de larga distancia por Thomas Kugelstadt. Parece bastante difícil simplemente hacer que funcione como SPI, pero dicen que puedes obtener (hasta) 100m +.
Diría que, definitivamente, realice la conversión SPI a RS485. Utilice los controladores diferenciales a través de cables de par trenzado blindados para obtener esa distancia de 100 m. Este es el tipo de tarea para la que fue diseñado.
Tal vez incluso use fibra óptica para el RS485 si desea un mínimo de ruido o problemas de retardo.
La capacitancia de 100 m de cable arruinará cualquier intento de protocolos seriales síncronos (basados en el reloj) como SPI, y al hacer el voltaje 12V empeorará el problema, ya que la velocidad de funcionamiento del amplificador operacional de transmisión necesitará para ser mucho más alto que si solo manejara 3.3 o 5V sobre la misma capacitancia, porque para cambiar el estado lógico tiene que producir más cambio en el voltaje en la línea.
Las señales diferenciales utilizadas en RS485 pueden operar a un nivel bajo agradable (+ -1.5V generalmente) y aún así ser muy rápidas. RS485 por lo general puede hacer las velocidades de transmisión estándar hasta 4000 pies de cable. Debido a que 100 m es solo alrededor de 300 pies, puede esperar que la tasa de baudios estándar de 115200 funcione bien, o incluso puede probar las tasas de baudios más altas si sus chips le permiten exprimir la mayor cantidad posible de rendimiento de su enlace RS485 SPI- > .
Después de la transmisión RS485, su chip de controlador de LED puede recibir comandos de protocolo SPI del chip de conversión de protocolo, como si no hubiera nada entre el chip de LED y el remitente.
Habrá retrasos para el SPI- > RS485 - > RS485 > conversión SPI (consulte las hojas de datos de los chips de conversión de protocolo para estos números) y, por supuesto, RS485 tiene un ancho de banda general más lento que SPI. Hay un chip NXP "SC16IS752" que encontré que puede hacer este SPI a RS485 por usted, de lo contrario Podría mirar hacer SPI a UART, luego adjuntar un transceptor RS485 en la salida de la UART antes de salir a los cables.