Why Do RS-485 Buses Need Pull-Up and Pull-Down Resistors?
Introduction
RS-485 is one of the most widely used differential signaling standards in industrial automation and communication systems. It offers strong noise immunity, long transmission distances, and support for many nodes on a single bus. Yet in practical applications, engineers often face a basic question: Should pull-up and pull-down resistors be added to the A and B lines—and if so, what values are appropriate?
How the RS-485 Bus Works
According to the RS-485 standard, data is transmitted differentially over two lines (A and B). The receiver determines the logic level from the voltage difference between them: VAB = UA − UB. There are three possible states:
Logic 1: VAB > +200 mV — the transceiver outputs a logic high.
Logic 0: VAB < −200 mV — the transceiver outputs a logic low.
Indeterminate state: −200 mV ≤ VAB ≤ +200 mV — the receiver output may be high or low and cannot be guaranteed.
The indeterminate state must never appear on the bus during normal operation, because the receiver is expected to deliver only valid 0s and 1s.
When Does the Indeterminate State Occur?
There are two typical situations:
Bus idle: All transceivers are in receive mode and none is driving the bus. With no signal source present, the A and B lines sit at essentially the same voltage, so the differential voltage is near zero.
Bus open (line break): A transceiver becomes disconnected from the bus. The remaining receivers likewise see a differential voltage near zero.
In both cases, the differential voltage fails to exceed the ±200 mV threshold, so the bus state no longer reflects any driver’s output. The consequences are real communication errors. For example, if a receiver in the indeterminate state randomly outputs a low level, the UART interprets it as a start bit, causing misreading; if the output toggles between high and low, it corrupts the UART data stream entirely.
The Solution: Fail-Safe Biasing
The root cause of both failure modes is the same: when all transceivers are in receive mode, the A–B pair cannot maintain a defined voltage difference. The remedy is biasing the bus with resistors—typically a pull-up resistor on line A and a pull-down resistor on line B—so that a fixed differential voltage is maintained whenever the bus is idle or open.
How to Choose the Resistor Values
Selecting the right values is a trade-off among three competing requirements:
Small enough to guarantee the idle/open-bus differential voltage exceeds ±200 mV, eliminating the indeterminate state.
Large enough to reduce power consumption and heat, and to avoid overloading the transceiver’s drive capability.
Well matched with the transceiver input impedance, termination resistors, bus length, and node count to preserve impedance matching and signal integrity.
Example Calculation
For the open-line condition, the A–B voltage is determined by the pull-up resistor (RU), termination resistor (RT), pull-down resistor (RD), and the transceiver’s differential input resistance (RIN). Using typical values—RIN = 15 kΩ, VCC = 3.3 V, and RT = 120 Ω—the calculation shows that any R up to about 232.5 kΩ keeps the bus in a valid logic-1 state under a line break.
For the idle condition, most nodes contribute their own internal bias resistors plus the termination resistor. Accounting for m nodes with bias resistors and n total nodes, the required relationship can be derived from the resistor network, with the minimum differential set at 200 mV. This formula lets engineers compute suitable bias resistor values for any given node count.
In practice, the calculated value is only an ideal reference: bias resistors are usually built into the node devices, different devices may use different values, and the driver chip’s load capacity must be considered—so the resistors must not be made too small.
Conclusion
Pull-up and pull-down resistors on an RS-485 bus exist to maintain a defined differential voltage when the bus is idle or open, preventing the indeterminate state that causes UART misreads and communication failures. Choosing their values requires balancing bias voltage margins against power consumption, transceiver drive capacity, and impedance matching—ensuring stable, reliable communication across the whole network.
Leave a comment