Both Methods Change Voltage Levels, Why Can Only One Communicate Over Long Distances

Thread Starter

Embededd

Joined Jun 4, 2025
175
I am trying to understand what fundamentally changes when RS-485 transceivers are added between two microcontrollers.

Suppose I have two MCUs, MCU A and MCU B, connected directly by a single data line. If MCU A wants to transmit a logic '1', it simply drives the data line to 5 V, and MCU B reads that voltage as a logic '1'. This works reliably over a short distance (around 1 meter).

Now let's modify the setup by placing an RS-485 transceiver on each MCU. Instead of one data line, there are now two lines (H and L). During transmission, the driver might set one line to about 3.5 V and the other to about 1.5 V, and the receiving transceiver detects the voltage difference to determine the transmitted bit.

What I am struggling to understand is this:

In both cases, the transmitter is simply setting voltages on wires, and the receiver is reading those voltages. Before adding RS-485, the communication was only suitable for about 1 meter. After adding the RS-485 transceivers, the same data can travel hundreds of meters.

What is the fundamental reason this happens? What is the "magic" performed by the RS-485 transceivers that makes the signal much more reliable over long distances? I am looking for the physical or electrical explanation rather than just "it uses differential signaling."

Note: This is not a homework or school assignment. I've described the specific part that I'm struggling to understand.
 

crutschow

Joined Mar 14, 2008
38,598
The problem is transmission-line reflections on a line not terminated in its characteristic impedance, which can corrupt the signal voltage levels when the line propagation delay becomes comparable to the signal rise and fall times.
Thus if the signal data line is terminated in it's characteristic impedance to eliminate this reflection (about 100Ω for twisted pair wire, for example, and the signal driver is capable of driving that impedance), then you can go much longer than 1 meter.

The differential signal of RS-485 is just to minimize the effects of any common-mode (ground) voltage difference between the transmitter and receiver.

That all make sense?
If you are not familiar with transmission-line theory, ask Google.
 

WBahn

Joined Mar 31, 2012
33,004
When you apply 5 V to the end of one line, the voltage at the other end will not be 5 V. It will be affected by such things as the voltage drop across the non-zero resistance of the line as well as picking up electrical noise (the wire acts as an antenna). Over short distances, these disturbances aren't sufficient to cause the receiver to misinterpret the data, but beyond some length they are. If you run two wires, each wire will largely be affected the same way -- the effects will be "common mode". So if the net effect is to cause the 3.5 V line to end up being 2.5 V at the other end, the 1.5 V line will end up close to 0.5 V. The difference between them will still be close to 2 V. This give much greater noise immunity.
 

MrChips

Joined Oct 2, 2009
34,972
There are three major differences between direct TTL connections and RS-485 communications.

1) Controlled bandwidth. When you step a TTL single from 0 V to +5 V, you are generating very high frequencies. This create distortions at a receiving end that is not properly terminated. Transmission line drivers such as RS-485 have controlled rise-times that limits the bandwidth.

2) Every conductor is a transmission line. RS-485 networks have to be properly terminated to match the characteristic impedance of the transmission line. The reduces reflections and distortions.

3) RS-485 uses balanced signalling. A and B signals are complementary. The receiver subtracts the A and B signals. This makes the signaling more immune to common mode noise and interference.
 

John P

Joined Oct 14, 2008
2,065
it simply drives the data line to 5 V,
What is this "it simply drives the data line to 5 V" business? You've never said what that 5V is measured against. Most likely you'll say "Relative to ground", but how do you know that ground at one end of the line is the same as ground at the other end? It's actually a rather tricky thing to test. But there's a way to avoid it: send the data over 2 lines simultaneously, where one line goes high as the other goes low. Then instead of checking a voltage relative to ground (and hoping that ground voltage matches at the two ends) you measure one line against the other. You no longer need to care how high or low the lines are relative to ground! In fact some authorities will tell you that an RS-485 line doesn't require a ground wire connecting the driver and receiver at all. And then consider the effect of electrical interference. Say a big motor starts up somewhere close to your transmission line. A pulse gets radiated into the line, and your single wire might give you a false transition. But with RS-485, both conductors receive the pulse, and at the receiver end, both may change, but the key question is still "Which one is higher?" and that's much less likely to be affected.
 
Top