Using Spider UART on a single wire

I am considering a project which uses a UART with RX and TX connected to the same line.
This requires that the TX line be in a high impedance state and only connect to the line
when it is transmitting. There are multiple units connected on wire.

The RX line has to be receiving at all times.

I should really start checking the documentation to see if there is a register bit to do
this, but I figured I would ask a question. :slight_smile:

Maybe a diode? plus a resistor?

Anyone have an idea how to do this?

Thanks

You need to ‘tri-state’ your transmit electrical circuit (similar to how RS485 and CAN transceivers work). MOSFETS can be used to do this. I believe most transceivers use a totem pole (high and low FET) arrangement.

You could also use an RS485 tranceiver, for example, and just set one of the lines to the asserted state. This will be out of spec, but if you use a good transceiver it will work. (We’ve had field installations where one side of the pair was not connected that worked fine).

I believe on the Spider there’s only certain pins that can be/always are configured to be open drain (and they’re the I2C pins). On Cerberus and friends, however, I believe any of the GPIO pins can be configured as open drain, but the firmware does not support this, I don’t think.