Estoy experimentando mucho ruido en una red RS485 que armé usando chips ST485. Las longitudes de los cables son muy cortas (<1 m de longitud total del cable), estoy polarizando correctamente las señales A y B y he probado con y sin un terminador (parece que no hay diferencia), y solo estoy corriendo en 19200 baudios.
Sospecho que el problema es el ruido del suelo, ya que estoy usando las señales de entrada RS485 para configurar los niveles de PWM para los LED de alta potencia (hasta 1000 mA momentáneamente a 3,8 V). Estoy usando una conexión de cuatro cables entre cada nodo (+12 V, GND, RS485-A, RS485-B, con el RS485-A y -B un par de cables de conexión trenzados).
Aunque no se sugiere en la hoja de datos de ST485, ¿sería suficiente agregar un cable de tierra de señal entre las entradas de tierra del dispositivo RS485, con resistencias de 100 Ω en serie entre la tierra del dispositivo RS485 y el cable de tierra de señal? ¿O debería pensar en agregar aislamiento completo al dispositivo RS485, incluido un transformador para fuente de alimentación flotante y optoaisladores en las líneas de señal A y B? ¿O es esto excesivo?
Gracias de antemano.
EDITAR Sé que estoy recibiendo ruido porque para obtener el efecto deseado (brillo particular de luces LED particulares), tengo que usar un CRC-8 en cada paquete (para eliminar paquetes defectuosos en el extremo receptor) y enviar cada mensaje dos veces (para compensar los paquetes defectuosos caídos), e incluso entonces sigo recibiendo paquetes incorrectos en el extremo receptor.
EDITAR Se eliminaron los comentarios de error de velocidad en baudios, ya que la velocidad en baudios es, de hecho, muy precisa.
Supongo que el consumo de corriente pulsada en el suministro de +12v es lo que está poniendo el ruido en las señales RS-485. Para fines de depuración, intente desconectar los LED. Si sus problemas de ruido desaparecen, sabrá que es esa corriente pulsada de 1 amperio. Suponiendo que ese sea el caso, su trabajo será reducir los picos de corriente en el cable de +12v (que también están en el cable GND). Un filtro que use un inductor + large_cap ayudaría. Usar un cable diferente donde la energía esté aislada de los datos también podría ayudar.
mi baudio real es 19966, un 3,8%, ¿podría ser ese mi problema?
Tendría que decir que sí, especialmente si usa el modo maestro/esclavo de 9 bits. Con start y stop hace estos 11 Bits que tienen que pasar. Incluso con 8 bits "normales" (que dan como resultado 10 bits transferidos), el error debería ser mucho menor que el 5%.
mi F_CPU a 8MHz
¿Cómo se generan estos 8 MHz? Un "reloj interno" suele tener un 1% o más de error. Con ese 1% agregado, su 3.8% cae "por la ventana".
Tenga en cuenta que también debe considerar los errores de reloj del lado receptor. Esta es la razón por la que la mayoría de la gente usa el llamado "cuarzo de velocidad en baudios".
Un error del 3,8% es demasiado alto, cambie su cristal o use una tasa de baudios que tenga un error menor. No será la causa de su problema de ruido, aunque el ruido tendrá más efecto que si el error fuera menor.
Kortuk
jpc
jpc
leon heller
Damián