Electrical – TTL output levels on SN75176 transceivier

differentialrs485ttluart

I have a system that communicates between two subsystems over a distance with UART. The UART signals are converted to RS485 by using the SN75176 differential bus transceiver. A microcontroller on one side always transmits data from its UART pins to the SN75176 transceiver, and the other side also has an SN75176 transceiver that receives these signals and convert them back to TTL (UART) for the microcontroller on the receiver side.

Basically, the transceiver circuit on the transmitter side looks like this:

Transmitter

The transceiver circuit on the receiver side looks like this:

Receiver

The communications work fine. However, I have noticed by analysing the UART signals, the output level on the receiver side is between 0.2 V and 4.2 V, as shown in the following measurement (this is the signal UART-MAIN-RX from the receiver circuit above. Note also that the string "Test123" was used in this case):

Output

The SN75176 datasheet mentions that the output of the transceiver is TTL, and that the output signals should vary between 3.0 V to 3.7 V. Why am I observing even higher signal levels in my case? I am particularly afraid that if I connect this higher-level "TTL" output directly to the microcontroller UART pins, that it could damage the microcontroller.

Best Answer

The VOH value is specified for an output current that would be used by a TTL input. Your microcontroller has CMOS inputs, which have nearly infinite input impedance, so the actual voltage will be a little bit higher:

SN75176B high-level output voltage vs. output current

You could put a strong pull-down resistor on the RX signal line. However, there are no guarantees, and the graph above shows only typical values, so you should better use some 'real' level-shifting circuit or device. Or it might be a better idea to use a 3 V receiver chip with CMOS output.