You're currently on: Catalog » Guides » SN75176BP: send serial data over two wires with RS-485
A microcontroller's serial port (UART) works fine across a desk, but over tens or hundreds of metres of cable, noise and ground differences corrupt the bits. RS-485 solves that by sending each bit as a voltage difference between two wires. The TI SN75176BP is a classic RS-485/RS-422 transceiver in an 8-pin DIP: one driver and one receiver that share the same pair of wires. This guide explains how differential signalling works, what each pin does, and follows one byte across the bus from start to finish.
An ordinary logic signal is single-ended: the receiver compares one wire against its own ground. If a motor or a long cable puts 2 V of noise on that wire, or the two ends of the cable sit at slightly different ground potentials, a 0 can turn into a 1.
RS-485 is differential. The driver puts the bit on two wires, A and B, in opposite directions: for a logic 1, A is higher than B; for a logic 0, B is higher than A. The receiver only looks at the difference A − B. Noise induced in a twisted pair lands on both wires almost equally, so it shifts both voltages but hardly changes their difference. The SN75176BP's receiver reports a 1 when A − B is at least +0.2 V and a 0 when it is −0.2 V or lower, with about 50 mV of hysteresis in between.
RS-485 is also a bus: up to 32 standard transceivers can hang on the same pair. Since a single pair carries both directions, only one node may drive it at a time. That is called half duplex, and it is why the SN75176BP has separate enable pins for its driver and receiver.
The SN75176BP is the PDIP-8 (P package) version of the SN75176B. The logic pins are on one side and the bus and supply pins on the other (TI SLLS101I, Figure 4-1):
Because DE is active high and /RE active low, the two pins can be tied together and driven by one microcontroller output, DIR. DIR = 1 turns the driver on and the receiver off (transmit); DIR = 0 does the reverse (listen). The UART's TX pin goes to D and its RX pin comes from R. The figure shows two such nodes joined by a twisted pair:
Termination: a long cable behaves like a transmission line with a characteristic impedance of about 120 Ω for typical twisted pair. A 120 Ω resistor across A and B at each end absorbs the signal instead of reflecting it (TI Figure 7-1). For a few metres at 9600 baud you might get away without it, but it is the correct habit.
Bias (fail-safe): when no node is transmitting, every driver is off and A and B float. The receiver function table then says the output is unknown, and a UART sees noise as start bits. Two 560 Ω resistors, A to +5 V and B to GND, hold the idle bus at 5 V × 60 Ω / (560 + 60 + 560) Ω ≈ +0.25 V, since the two 120 Ω terminations in parallel make 60 Ω. That is above the +0.2 V threshold, so every receiver reads a steady 1 – exactly the UART idle level.
Pull-up on RX: while a node transmits, its own /RE is high and R floats. A 10 kΩ pull-up keeps the microcontroller's RX pin at idle (1) during that time instead of picking up noise.
Two SN75176BP chips are enough for a working link on a breadboard, for example between two Arduino Uno boards, two 8051 systems or a microcontroller and a USB-to-serial adapter with a 5 V TTL UART. You need:
The idea of switching an output into a high-impedance state so that several devices can share one line is explained step by step in SN74LS126AN: four 3-state buffers on one shared bus, and the open-drain alternative in SN74LVC07A: how an open-drain buffer works. For a UART at the other end of the cable, the 80C31 in Build a complete 80C31 computer on breadboards has one built in, and 8051 assembly: a quick start with DOS/51 shows how to program it.
All pin numbers, function tables, voltage levels and switching times come from TI's data sheet SLLS101I (SN65176B, SN75176B, revised August 2025), which lists the SN75176BP as the PDIP-8 (P) package, 0 to 70 °C. The diagrams are our own drawings; check the data sheet before you design a product around the chip.
TI SN75176BP in the iMania shop · TI data sheet SLLS101I (PDF)
We use cookies to provide you with the best possible experience. They also allow us to analyze user behavior in order to constantly improve the website for you.