Polarización RS485 (MAX489)

Estoy haciendo un dispositivo cliente RS485. El prototipo puede transmitir y recibir con éxito desde un servidor Modbus, utilizando el modo de 2 hilos (semidúplex). Está prevista la operación full dúplex, pero aún no la he probado.

¿ El MAX489 requiere resistencias de polarización pull up/down? No puedo encontrar ninguna mención en sus documentos sobre esto, ni detalles sobre el sesgo 'a prueba de fallas'.

En realidad, menciona que hay un pull-up para una condición de red abierta. ¿Es esto suficiente o también se necesita un menú desplegable?

Respuestas (3)

La hoja de datos dice en la primera página:

La entrada del receptor tiene una función a prueba de fallas que garantiza una salida lógica alta si la entrada tiene un circuito abierto.

(Tenga en cuenta que "entrada" significa ambos pines de entrada diferencial).

La tabla 2 muestra lo mismo. Por lo tanto, no necesita la resistencia de polarización para este receptor si no tiene resistencias de terminación. Si cualquier otro receptor en el bus no tiene esta función, o si tiene resistencias de terminación (que fuerzan un voltaje diferencial cero si ningún transmisor está manejando el bus), el bus aún necesita polarización.

Hay receptores que garantizan un alto nivel cuando la tensión diferencial es cero; esos no necesitarían sesgo en ningún caso. El MAX489 no es uno de esos.

En un receptor sin función a prueba de fallas, usaría dos resistencias: una resistencia pull-up para forzar la entrada no inversora alta y una resistencia pull-down para forzar la entrada inversora hacia abajo. Debido al receptor diferencial , esto se interpretaría como un nivel alto; un receptor diferencial no funcionaría con una sola resistencia de extracción, porque la otra entrada estaría flotando o aún al mismo nivel.

Si la función a prueba de fallas se implementa con resistencias, entonces el comportamiento especificado implicaría que hay dos resistencias, una en cada pin. Pero la hoja de datos no menciona ninguna resistencia pull-up/-down; cómo se implementa realmente la función a prueba de fallas no le importa.

Entonces, ¿la familia MAX tiene disposiciones completas a prueba de fallas? Si solo el pull-up, ¿es eso suficiente?
Estoy teniendo un comportamiento extraño. Con solo el dispositivo maestro, sin agregar resistencias externas, obtengo Vab = 270 mV. Si pongo resistencia(s) de terminación, 150 ohm, en su lugar, Vab cae a un cero sólido. Eso me tiene desconcertado.
Por capricho, coloqué resistencias de 470 ohmios como un pullup en el pin A y un pulldown en B. Esto me dio Vcc en Vab, como se esperaba. Luego agregué terminadores de 150 ohmios a cada extremo del cable (cable de 50 ohmios) y sin dispositivo obtuve alrededor de 350 mV como Vab. Luego conecté un solo esclavo (2 hilos) y Vab no cambió y las comunicaciones con la RTU fueron exitosas.
He aclarado mi respuesta. Obtuvo un Vab de cero porque el transmisor estaba inactivo (no fluye corriente y no hay corriente implica que no hay caída de voltaje sobre la resistencia de terminación).
Entonces, entiendo que eso significa que con Vab = 0 y sin ningún dispositivo en el circuito, ¿no hay una impedancia de arranque a prueba de fallas en el IC? No puedo hablar de los dispositivos que puedo encontrar, y casi siempre habrá una terminación, así que supongo que debo forzar la polarización y terminar con eso.
Sí, el MAX489 no tiene protección contra fallas para Vab = 0 (ni resistencias pull-up/-down ni ningún otro mecanismo).

La polarización de las redes RS485 es un tema que realmente no es específico de la parte de la interfaz que está utilizando. También tenga en cuenta que, si bien la interfaz utiliza dos cables de señalización, es esencial que también interconecte dispositivos con un cable GND.

Puede encontrar todo tipo de información en línea con respecto a RS485, pero hay un libro electrónico en línea publicado por B&B Electronics que quizás desee revisar detalladamente. En él encontrará una gran cantidad de información sobre la polarización y las terminaciones de la interfaz. La siguiente imagen tomada del eBook en la página 38 muestra el tipo de base que usaría en una red donde se usan terminaciones.

ingrese la descripción de la imagen aquí

Dice que está tratando de implementar un Modbus, que requiere terminaciones de 150 ohmios, no de 120 ohmios.
también la terminación en la parte superior parece que tiene una impedancia incorrecta: 120||470||470
@OlinLathrop: en realidad, la pregunta es una combinación de Rs485 y Modbus tal como está escrito. :-(
@Jasen: acabo de mostrar una imagen del libro blanco de B&B. Si no está de acuerdo con su contenido, puede ser bueno que lo retome con Advantec/B&B.
Uso un convertidor B&B USB-485 todo el tiempo y es un gran dispositivo, me encanta. El documento al que hace referencia @MichaelKaras es una gran lectura, aunque parecen invertir el uso de A/B +/- en comparación con lo que suelo ver. otras cosas buenas de TI. Usaré 650 y 120 como mis valores R. Trabajo para Schneider, terminamos casi siempre en 120 a pesar de lo que pasa con el Modbus std. dice...

Si está tratando de implementar un Modbus, entonces el lugar correcto para buscar es en la especificación de Modbus.

La especificación Modbus dice que cada extremo del bus diferencial debe terminar con 150 Ω entre las dos líneas diferenciales. Esto significa que las líneas de autobús parecen estar unidas con 75 Ω a cualquier cosa que conduzca el autobús.

La especificación Modbus también permite la "polarización de línea". Básicamente, se trata de poner resistencias pullup y pulldown en la línea para que flote hasta el estado inactivo. Si se utilizan, estas resistencias deben ser de 450 a 650 Ω y deben estar cerca del bus maestro.

Gracias por la información. Lo mejor que puedo decir es que el 489 tiene el pullup (valor desconocido), pero no puedo encontrar ninguna mención de que tenga un pulldown en la A.