¿Hay alguna forma de usar Half Duplex RS485 sin usar un pin de controlador dedicado para RE - DE?

4

He conectado el circuito de referencia que estoy usando para una aplicación de comunicación simple MODBUS (Read Coil). Me faltan los pines en mi controlador y no quiero usar un pin de controlador dedicado para RE y DE.

En el circuito anterior, ¿Existe alguna forma de que el MAX-485-CTRL siempre permanezca BAJO y se coloque ALTO automáticamente cuando hay una señal en DI utilizando alguna combinación de condensadores?

    
pregunta Indrajeet Patil

3 respuestas

4

He investigado esto antes y después de una búsqueda rápida en Google this es lo que Encontré la última vez que miré:

simular este circuito : esquema creado usando CircuitLab

Básicamente, cuando el pin TX está alto (inactivo), el condensador se cargará lentamente hasta que se alcance el umbral del inversor de activación Schmitt, momento en el que cambiará el MAX485 al modo de recepción.

Cuando desee transmitir, el bit de inicio (y cualquier bit 0 posterior) descargará rápidamente el condensador a través de la conmutación del diodo sobre el inversor de activación Schmitt, lo que provocará que el MAX485 entre en el modo de transmisión. Durante cualquier bit 1, el capacitor comenzará a cargarse nuevamente, aunque lentamente debido a la resistencia hasta que finalmente vuelva a cambiar al modo de recepción.

Debe seleccionar los valores de R-C de manera que el condensador no alcance el umbral de funcionamiento positivo del inversor hasta que haya transcurrido el tiempo suficiente para un byte de datos. Cada byte UART siempre comenzará con un bit de inicio (0) que mantendrá el MAX485 en modo de transmisión mientras está enviando.

Para ahorrar espacio, puede obtener inversores de activación Schmitt en paquetes de una sola puerta que no son más grandes que un transistor de montaje en superficie; el 74LVC1G14 sería suficiente para el trabajo.

    
respondido por el Tom Carpenter
2

En realidad, he usado el siguiente circuito y funcionó a 9600 baudios: -

Hay dos cosas a tener en cuenta, sin embargo: -

  • Hay una tendencia a que el primer bit de transmisión sea un poco corto
  • No puede esperar que vuelva a RX hasta algún tiempo después de que se envíe el último bit de TX debido a la descarga natural del condensador de 1000 pF.
respondido por el Andy aka
0

Uno podría tratar de usar un monoflop reutilizable para la línea CTRL, que se dispara en una línea LOW TX y mantiene la DE alta durante aproximadamente un tiempo de bit. Esto funcionará si, y solo si, el bus RS485 está precargado para el valor inactivo "1".

Pero un pin del microcontrolador probablemente sea mucho más barato, incluso cuando necesite usar un paquete más grande para el µC que tiene más pines disponibles.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas