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

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

Circuito de referencia RS485

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

Respuestas (3)

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

esquemático

simular este circuito : esquema creado con CircuitLab

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

Cuando desee transmitir, el bit de inicio (y cualquier bit 0 subsiguiente) descargará rápidamente el capacitor a través de la conmutación del diodo sobre el inversor disparador Schmitt, lo que hará que el MAX485 entre en 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 RC de modo que el capacitor no alcance el umbral positivo del inversor hasta que haya pasado suficiente tiempo 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 envía.

Para ahorrar espacio, puede obtener inversores de disparo Schmitt en paquetes de puerta única que no son más grandes que un transistor de montaje en superficie: el 74LVC1G14 sería suficiente para el trabajo.

De hecho, he usado el siguiente circuito y funcionó a 9600 baudios: -

ingrese la descripción de la imagen aquí

Sin embargo, hay dos cosas a tener en cuenta: -

  • 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 TX debido a la descarga natural del capacitor de 1000 pF.

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

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