RS485 direction control using Rabbit 4000

I am currently working on a design using the rabbit 4000 which requires a half duplex RS485 connection. The RS485 driver I am testing with at the moment requires a toggle between the driver enable and receiver enable to arbitrate the bidirectional bus. The receiver enable is inverted so I only need one line to toggle between transmit and receive messages. Does anyone have any suggestions on where I should take this line from? RTS? General Output? I would rather not have to deal with the state of this signal in my code every time I want to send or receive. Does anyone know if there is a driver which doesn’t require enables?

Your options are to use a general I/O port to control the direction over a two wire half duplex RS485 connection, or switch your hardware to a 4 wire full duplex RS485 connection. Running a two wire RS485 port will always require that your program controls the direction control, as this sets whether the driver portion of the RS485 transceiver is enabled to transmit a signal or not. With a 4 wire port, you have a dedicated driver that is always driving one pair of wires and a receiver on the other pair. With this setup you can use the standard RS232 driver for the serial port as there is no longer a direction issue. If you’re stuck with half duplex, just beware that when transmitting you don’t switch off your driver before it is done sending all the bits as this is not instantaneous after writing the data to the port buffer.


You can use a driver like the MAX13487E it as a auto direction feature.