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:


The transceiver circuit on the receiver side looks like this:


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):


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.

  • \$\begingroup\$ "output signals should vary between 3.0 V to 3.7 V" - Where do you see this in the datasheet? \$\endgroup\$
    – vofa
    Commented Jan 19, 2018 at 20:40
  • \$\begingroup\$ The 3.7 V spec is on page 6 in table 7.5 "Electrical Charateristics - Driver", where it states that the typical High-level output voltage (V_OH) is 3.7 V. However, I realise now that the 3.0 V spec is a misread on my side - I saw that in the diagrams on pages 9-11 for the input waveform. Am I missing something obvious here? \$\endgroup\$
    – wave.jaco
    Commented Jan 19, 2018 at 20:45
  • \$\begingroup\$ That V_OH is specified at a specific output current. Look at figures 1-6. \$\endgroup\$
    – vofa
    Commented Jan 19, 2018 at 20:49
  • \$\begingroup\$ That makes sense. I must admit I have neglected to look at figure 1 in particular. So the output voltage V_OH will vary depending on the output current? \$\endgroup\$
    – wave.jaco
    Commented Jan 19, 2018 at 20:54
  • 1
    \$\begingroup\$ See TYPICAL OF RECEIVER OUTPUT on page 16. That is why fig. 4 is what it is. \$\endgroup\$
    – lakeweb
    Commented Jan 19, 2018 at 21:00

1 Answer 1


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.

  • \$\begingroup\$ I did not consider the fact that the microcontroller has CMOS inputs. So if I were to stick to the SN75176, would it be wise to use a dedicated logic level shifter in order to bring the output down to 3.0 - 3.3 V? \$\endgroup\$
    – wave.jaco
    Commented Jan 19, 2018 at 21:06
  • \$\begingroup\$ I'd use a dedicated shifter only if that is the only thing that you happen to have lying around. For simple downshifting of a unidirection signal, you can use any buffer with an overvoltage-tolerant input (e.g., (SN)74LVC1G34/125), or a resistor with a diode clamp, or a resistor divider. But that depends on the speed you need, and would be a different question. \$\endgroup\$
    – CL.
    Commented Jan 19, 2018 at 21:12
  • \$\begingroup\$ The buffer sounds like a good option. I have consulted the microcontroller's datasheet now and I noticed that the pins used for the UART peripheral are actually up to 5 V tolerant. So in this case it should not be a problem then. \$\endgroup\$
    – wave.jaco
    Commented Jan 19, 2018 at 21:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.