RS485 resistencias pull-up, pull-down y EOL

1

Voy a conectar varios microcontroladores entre sí con RS485 de half-duplex, pero no hay maestro o esclavo absoluto, cada micro debe poder comunicarse entre sí y esto causará problemas si ambos quieren enviar datos a al mismo tiempo (uno hace que A alto y B bajo y el otro A bajo y B alto, eso causará un cortocircuito), así que estoy pensando en agregar resistencias de pull-up y pull-down a las líneas y enviar datos al cambiar de estado del pin TxEn en lugar del pin TxDt de los circuitos integrados RS485.

Aquí está mi problema:

  • Los resistores pull-up, pull-down y EOL forman un divisor de voltaje en el Líneas de datos RS485, ¿produce problemas de comunicación de datos?
  • ¿Qué sucede si ignoro los resistores EOL y solo aplico pull-ups y desplegables en ambos extremos?
  • ¿Existe alguna relación entre la longitud máxima del cable y el valor de las resistencias?
  • ¿El uso de un voltaje de datos más alto aumenta la fiabilidad de la transmisión de datos? En caso afirmativo, ¿hay algún CI RS485 de 12V? (12V son los valores máximos absolutos de MAX485 y LTC1685, ¿qué pasa con el factor de seguridad?)

Por cierto, si tengo dos resistencias EOL de 100 ohmios y voltaje de datos de 5 V, significa que la comunicación consume 100 mA, que es demasiado alta para un dispositivo que consume solo 5 mA, y hace que los dispositivos tengan un regulador de voltaje grande y capacitores en comparación ¡Con otros componentes!
^^^ Un diagrama que encontré en la hoja de datos de LTC1685 ^^^

    
pregunta Vahid

3 respuestas

2

Lo que estás sugiriendo no es necesariamente una mala idea, pero no funcionará con los controladores RS485. RS485 es impedancia emparejada; eso significa que el conductor puede verse como un conductor perfecto seguido de una resistencia, que tiene aproximadamente la misma resistencia que la resistencia de terminación (exactamente la misma en el caso ideal). Por lo tanto, si agrega un pullup lo suficientemente fuerte como para vencer la resistencia de terminación, el conductor nunca podrá tirarlo hacia abajo lo suficiente. Sin embargo, la buena noticia es que dos controladores RS485 "en corto" no deberían causar ningún daño, debido a la resistencia "incorporada" (probablemente no sea en realidad una resistencia sino algún tipo de fuente de corriente; el resultado es el mismo).

Incluso si funcionara, perdería todos los beneficios de tener una línea de transmisión con impedancia igualada. También puede dejar de lado el controlador RS485 y simplemente usar los pines del microcontrolador con un poco de pullup en el orden de 1kOhm. Por cierto, esto es exactamente lo que se hace en I2C . Me parece que el protocolo podría satisfacer sus necesidades, si no está interesado en líneas de comunicación largas (> 1m o así). Si es así, debería usar los transceptores RS485 como fueron diseñados o probablemente no obtendrá los resultados que está buscando.

Para responder a las preguntas específicas:

  • Los resistores pull-up, pull-down y EOL forman un divisor de voltaje en las líneas de datos RS485. ¿Tiene problemas de comunicación de datos?

    Sí, como se explicó anteriormente.

  • ¿Qué sucede si ignoro los resistores EOL y solo aplico pull-ups y pull-downs en ambos extremos?

    Eso "funcionaría" si las resistencias son lo suficientemente grandes para que los conductores las superen, y lo suficientemente pequeñas como para que la comunicación no sea lenta (vea la siguiente respuesta). Lo puse entre comillas porque estás perdiendo la propiedad de impedancia igualada, lo que significa que obtendrás reflejos en las líneas de datos. Si transmite lo suficientemente lento y / o su cable es lo suficientemente corto, esto no será un problema, pero también puede usar otra cosa como I2c.

  • ¿Existe alguna relación entre la longitud máxima del cable y el valor de las resistencias?

    Sí, aunque es difícil dar números sin mucha más información. Básicamente, la capacitancia parásita del cable forma un filtro de paso bajo RC con la resistencia pullup / pulldown. Por lo tanto, cuanto más baja sea la resistencia, más rápida será, pero más corriente utilizará. La capacitancia del cable depende de la acumulación del cable, pero es lineal con su longitud, por lo que cuanto más largo sea el cable, más lento será.

  • ¿El uso de un voltaje de datos más alto aumenta la fiabilidad de la transmisión de datos? En caso afirmativo, ¿hay algún CI RS485 de 12V? (12V son los valores máximos absolutos de MAX485 y LTC1685, ¿qué pasa con el factor de seguridad?)

    Si el margen de ruido es el mayor problema, entonces sí. Sin embargo, para RS485, el ruido no debería ser tan significativo porque es diferencial: mientras use un par trenzado, el ruido debería emparejarse de manera similar para ambas líneas, haciéndolo cancelar. No sé la respuesta a la pregunta de seguimiento, pero no creo que sea una cosa: si el voltaje es más alto, también utilizará más corriente con las mismas resistencias de terminación, que están estandarizadas.

  • Por cierto, si tengo dos resistencias EOL de 100 ohmios y voltaje de datos de 5 V, significa que la comunicación consume 100 mA, que es demasiado alta para un dispositivo que consume solo 5 mA, y hace que los dispositivos tengan un regulador de voltaje grande y Condensadores en comparación con otros componentes!

    ¿Alguna vez te has preguntado por qué los conmutadores de red y los módems funcionan tan bien? Desafortunadamente, este es el costo de poder conducir correctamente largas líneas de transmisión.

respondido por el Flaks
1

Los resistores EOL son necesarios solo para los dispositivos de extremo a extremo en la red RS485, no los use entre nodos.

El pull up / down cargará la red y agregará estrés a los controladores RS485, intente usar métodos de paso de token para transferir el modo maestro (transmisor) entre dispositivos

si los nodos están muy alejados del medio ambiente, utilice este documento para proteger su red

    
respondido por el Raj
1

Los transceptores RS-485 tienen la protección de sobrecarga necesaria para manejar otros transmisores que están activos al mismo tiempo. Sin embargo, el protocolo que está ejecutando arriba debe poder detectar y manejar tales conflictos. (Para resumir, compruebe que lo que recibe es lo mismo que está enviando. Muchos buses de varios maestros, como CAN o I²C, generalmente manejan esto en hardware).

El valor de las resistencias de terminación no está determinado por la longitud del cable sino por la impedancia característica del cable. (Aquí, 150 || (330 + 330) 122 ≈ 150.) Si los omite, obtendrá reflejos de los bordes de su señal y solo podrá utilizar velocidades de datos muy bajas.

Las resistencias pull-up / down a menudo se llaman "resistencias a prueba de fallas"; su propósito es obtener un estado de bus específico incluso cuando no hay ningún transmisor activo. No los necesita realmente si todos los receptores tienen un circuito a prueba de fallas incorporado (el LTC1685 lo tiene), pero no es tan resistente al ruido.

La especificación RS-485 define la corriente de salida y el voltaje del controlador; la transmisión de 12 V no está permitida. (Los transceptores no envían realmente el V CC completo al bus, pero una corriente alta es el precio que debe pagar por una comunicación confiable en largas distancias en entornos ruidosos).

    
respondido por el CL.

Lea otras preguntas en las etiquetas