Salir tan rápidamente de las cosas que he hecho anteriormente al tratar de enviar señales de controlador SPI a través de rangos largos usando un cable de 18 AWG o, según todas las recomendaciones que hemos estado leyendo, usando transmisión/recepción bidireccional MAX485 o RS232 con cable cat5/6 .
La fase inicial 1 de nuestra construcción es permanecer con los controladores SPI para los LED y luego pasar a programables, por lo que se agrega Pi o basado en Arduino y se eliminan los controladores SPI. No queremos hacer eso para esta fase si podemos evitarlo.
Estoy usando varios controladores LED SPI diferentes, como btf lighting sp108e y 602e (en la foto). También tenemos 608es para integración de música (entrada de activación en el controlador SPI):
Que tienen una señal de salida de 1,5 a 2 voltios nominalmente:
Queremos usar módulos de transmisión/recepción en ambos extremos del cable con entrada directa desde el controlador SPI al transmisor y el extremo de recepción termina en una tira de LED (WS2815).
Los módulos serían algo así:
Para la conversión de TTL a 485, cuando conecto mi circuito a través de mi salida al lado del LED para la recepción ya no está limpia, y estoy viendo una salida de 200 mv en una forma de onda completamente diferente:
el 485 afirma que solo puede funcionar con datos de 3.3/5V. ¿Necesito cambiar mis datos de voltaje SPI a uno de esos y cuál sería la mejor manera de hacerlo?
¿El cambio de voltaje afectará la fase de datos? ¿También solucionará el problema con las líneas de transmisión A y B, ya que en este momento no obtengo el inverso de A en la línea B?
¿Necesito un terminador en el lado del receptor de este circuito? He leído que en muchos de estos circuitos lo haces.
Pensé que este circuito sería más sencillo con la salida TTL de los controladores SPI, pero algo se está perdiendo durante la transmisión/recepción; mi sospecha es el disparador de voltaje para el circuito, pero realmente no lo entiendo bien. suficiente y buscando ayuda.
ACTUALIZAR:
Esta es la configuración actual que está funcionando, pero tengo algunas preguntas con respecto a la configuración RS485 de tierra.
El lado frontal 485 tiene una de las dos tierras vinculadas al RXD, ya que cuando se conectó a la tierra real provocó una duplicación del voltaje y un aumento en el brillo del LED.
Según otra recomendación, la transmisión (TXD) en el extremo del receptor RS485 se conecta a tierra, lo que una vez hecho, permitió el control de la tira WS2815.
La resistencia de terminación estaba causando problemas con el parpadeo de los LED cuando se apagó la alimentación a través del controlador, los 120 ohmios empeoraron y luego se cambiaron a 100 ohmios, lo que redujo el parpadeo.
Una vez retirada, la tira de LED no se desvaneció más. No puedo encontrar una hoja de especificaciones real para estos RS485 en particular, sin embargo, dicen que tienen un cortocircuito para el conjunto A+/B- (120 ohmios), particularmente para la transmisión de larga distancia agregada al controlador.
Por último, mirando los esquemas y el circuito recomendado para el WS2815, se recomienda que los datos secundarios (BI) se conecten a tierra para la primera ejecución, luego ejecuciones adicionales a los datos de las líneas primarias.
Para la configuración de conexión a tierra en esto, esto suena anormal, especialmente en el lado frontal 485 para mí, aunque la segunda conexión a tierra todavía está conectada a tierra a la fuente de alimentación para el 485 5V in.
¿Esto me va a causar problemas a largo plazo? En realidad, funciona perfectamente en esta configuración con el SP602E ingresando directamente a la línea de datos en el 485.
Usando el módulo UART a 485 como en este video.
Parece que su suposición es correcta y que el voltaje del controlador LED no es lo suficientemente alto como para proporcionar transiciones de borde utilizables al convertidor TTL-RS485. Específicamente, el voltaje ALTO del controlador está por debajo del Vih de cualquier controlador de línea que esté en ese convertidor. Deberá usar algo como un SN74AVCH1T45 para subir los niveles.
Para la terminación, eso depende de si hay un terminador integrado en la placa que está utilizando, pero debe coincidir con el cable que esté utilizando. El cable ethernet antiguo normal es de 100 ohmios.
Podría estar equivocado, pero según su pregunta, sospecho que puede estar confundiendo algunas cosas. Menciona RS232 pero luego también menciona 485, que son diferentes protocolos de transmisión de señal de "alcance más largo".
En general, lo que intenta hacer puede funcionar: codificar las señales en un extremo, enviarlas a través del cable largo y reconstruirlas en el otro extremo. Pero faltan algunas cosas.
No especificas los detalles de tu "SPI"; por lo general, un protocolo SPI tiene 4 cables, Salida/Entrada/Reloj/Habilitar. La Salida/Reloj/Habilitar van en una dirección y la Entrada va en otra; sin embargo, usted menciona los LED de conducción que generalmente usan un protocolo similar a SPI con solo OUT y Clock, tal vez también una línea de habilitación. La única razón por la que señalo esto es que si necesita la línea "In" (también conocida como línea MISO), deberá codificarla a la inversa. Lo que está mostrando en el alcance podría ser una de estas señales: una señal diferencial podría parecer muy ruidosa, pero la idea es que la información se transmita como la diferencia entre el primer y el segundo cable, y ambos cables se ven afectados más o menos. lo mismo, la diferencia es inmune al ruido.
Sabiendo eso, ¿ha puesto un chip receptor en el otro extremo? No puede tomar la señal RS485/RS422 y simplemente enviarla a su dispositivo (en realidad podría, pero dejemos esto por ahora). Necesita un receptor compatible que tome la señal diferencial de dos hilos y la convierta de nuevo en una señal que alimenta a su circuito. Lo mismo si está utilizando RS232: ese es un protocolo de un solo cable, pero los niveles de voltaje oscilan hacia arriba o hacia abajo para hacerlos más inmunes al ruido, pero aún necesita un receptor en el otro extremo.
Y, por supuesto, si necesita la línea de retorno, necesitará un chip codificador en el otro extremo y un chip receptor en el otro lado.
Por último, y eso se aplica si usa RS485 o RS232, deberá asegurarse de que los chips del transmisor y el receptor puedan operar a una frecuencia lo suficientemente alta para su protocolo. En RS485/422, no es raro tener chips que solo pueden llegar a 250 KBps versus otros que pueden llegar a 10 MBps.
Hay varias razones por las que puede no estar funcionando.
Vamos a abordarlo uno por uno:
En tu caso
Si usa un transceptor RS-485, normalmente funcionan con 0~5 V o 0~3,3 V. Significa que los niveles de salida no son compatibles con su LED. Necesitará algún nivel de cambio entre el transceptor y el primer LED. Por ejemplo , CD40109B La hoja de datos SW2815 puede tener algunos errores, realmente creo que los niveles de comunicación no son VDD sino VCC, por lo que probablemente no necesite un cambiador de nivel. 2. Terminación de bus de 100 ohmios a 120 ohmios entre A+ y B- en el extremo del receptor (lado cerrado a los LED).
Tiempos para su transceptor Si desea recuperar una forma de onda que en este caso tiene un ancho de pulso de 220 ns ~ 380 ns, un transceptor de 1 Mbit puede no ser suficiente. Por ejemplo, el transceptor SN65HVD1792 ( Hoja de datos ) muestra el tiempo de subida/bajada de la salida diferencial del controlador hasta 300 ns, que está muy cerca de su límite. Esto puede o no ser un problema.
Todo el sistema
Este es el aspecto que debería tener su sistema. EDITAR: No es que sepamos que el emisor es un SP601E, es posible que necesite un convertidor de nivel para adaptar el nivel para el transceptor RS-485, el mismo razonamiento que el n. ° 1, pero al revés.
simular este circuito : esquema creado con CircuitLab
arrendajo
Sólo yo
Sólo yo
LGTZ73
LGTZ73
Sam Gibson
LGTZ73
Tony Estuardo EE75
LGTZ73
Tony Estuardo EE75
Raúl m.
LGTZ73
LGTZ73