El dispositivo RS-485 defectuoso tiene un efecto irregular en los dispositivos vecinos en la configuración del bus

Estoy tratando de entender el misterio de cómo un transceptor RS-485 defectuoso, en un bus de red con varios dispositivos, parece tener una influencia muy irregular en el éxito de transmisión propio y de sus vecinos.

CONFIGURACIÓN
La configuración consta de una red de bus RS-485 con unos 20 dispositivos en la línea. Las placas RS-485 Breakout de Sparkfun ( Sparkfun BOB-10124 ) se utilizan como transceptores. Las resistencias de terminación de 220 ohmios se han eliminado de las placas para permitir la configuración de múltiples dispositivos. Los cables de par trenzado entre los dispositivos tienen longitudes de 14 a 30 metros. Por medidas de seguridad y cancelación de ruido se han instalado repetidores RS-485 ( RPT-485_422-2 ) entre 6 dispositivos cada uno.

Configuración del bus de red RS-485

PROBLEMA
Debido a problemas desconocidos (posiblemente: picos de energía o cortes de energía u otra forma de mal manejo) de vez en cuando un transceptor se daña. El análisis de transmisión muestra que parece existir un problema con varios dispositivos en la red. No es obvio qué transceptor causa el problema. Una vez que se encuentra el transceptor defectuoso (principalmente a través de pruebas de prueba y error) y se reemplaza, la velocidad de transmisión de todos los demás dispositivos vuelve a la normalidad.

Cuando el transceptor defectuoso se prueba solo (uno a uno en lugar de en un bus), parece funcionar. Las mediciones simples de resistencia entre pines en la placa del transceptor no muestran ninguna diferencia con una placa nueva sin usar. No hay signos de daños visibles en el tablero.

La siguiente imagen muestra el análisis del éxito de la transmisión de lo que sucede cuando el mismo transceptor defectuoso se inserta en diferentes posiciones en el bus de la red. A veces, el éxito de la transmisión del propio transceptor es del 0 % (en la posición n.° 11 o n.° 12), a veces es del 100 % (en la posición n.° 13 o n.° 15). A veces, sus dispositivos vecinos están al 0% o al 100% o en valores intermedios. Tenga en cuenta que estos resultados son constantes y no fluctuantes.

Transceptor defectuoso y su efecto en la tasa de éxito de la transmisión

Espero que alguien pueda ver un patrón en estos resultados, o tenga una idea de qué parte del transceptor podría haberse dañado. Tal vez alguien haya experimentado problemas similares con las redes RS-485 y pueda indicarme algunas direcciones. Con esta publicación aquí no estoy tratando de averiguar qué podría haber causado el daño al transceptor, sino tratando de entender cómo ese daño afecta a toda la red. Con el objetivo de poder diagnosticarlo más rápido en el futuro.


Aquí hay una imagen del transceptor utilizado en la configuración: la placa RS-485 Breakout de Sparkfun ( Sparkfun BOB-10124 ). Tenga en cuenta que la resistencia de terminación de 220 ohmios se eliminó para la configuración.

Placa de conexión Sparkfun RS-485

Un problema obvio con esta placa es la falta de una resistencia desplegable para desactivar de forma predeterminada la habilitación de transmisión (DE en el chip, RTS en la placa) hasta que se active explícitamente mediante el software en ejecución. Probablemente deberías agregar esto cuando lo conectes. De lo contrario, solo uno de estos sin software en ejecución que lo controle activamente puede bloquear todo el bus.

Respuestas (2)

Creo que para diagnosticar correctamente esto, necesitará escuchar a escondidas con algo como un convertidor FTDI rs458 , junto con un osciloscopio. Con el alcance puede ver cuando un transceptor agarra y suelta la línea. Es posible que deba sondear manualmente cada nodo y revisar cada respuesta. Si puede identificar el módulo que mantiene la línea "abajo", vea si su pin de habilitación correspondiente se mantiene alto. Si la línea no se mantiene presionada, podría significar que dos nodos están intentando responder a la vez (problema de firmware atmega).

Asegúrese de haber terminado el sistema con dos resistencias de 120 ohmios según las instrucciones del repetidor.

Muchos ingenieros ignoran la señal de tierra cuando crean una red RS485 porque el RS485 es conocido por "comunicación de 2 hilos".

¿Conectas la señal de tierra así como las dos señales de datos?

Cuando no conecta la señal a tierra, el transceptor RS485 se dañará debido a las posibles diferencias de tierra.

Y es posible que necesite dos resistencias de polarización (algunas personas las llaman resistencia pullup y pulldown).

Hay dos señales en el RS485: A y B (algunas personas las llaman TRX+ y TRX-). Y el transceptor RS485 emite una señal al controlador UART de acuerdo con la diferencia entre A y B de la siguiente manera:

AB > 150 mV: salidas altas AB < -150 mV: salidas bajas Si AB está entre -150 mV y +150 mV, el estado de salida es impredecible. Por lo tanto, se requieren resistencias de polarización en el circuito RS485.

Las resistencias de polarización en el circuito RS485 mantienen la línea de señal A y B en un nivel alto o bajo en el estado inactivo de RS485. (Ver abajo.)

A: debería permanecer en estado alto B: debería permanecer bajo en estado inactivo

Esto hace que la línea de señal sea alta cuando no hay datos. Cuando no hay resistencias de polarización, puede haber datos basura cuando no hay datos de transmisión.