RS-485 basics: how to calculate unit loads and the maximum number of nodes on your network


As my colleague Bart Stiller mentioned in the first installment of this series, RS-485 is a multipoint differential bus, shown in Figure 1. This means that all of the nodes on the bus share one common transmission medium, and therefore every node placed onto the bus adds a load in parallel to all of the existing network transceivers and termination resistors. As the total number of nodes increases, the loading on each and every driver increases as well.

Figure 1: Multipoint RS-485 bus

To set practical and measureable limits for RS-485 output drivers, the Telecommunications Industry Association (TIA)/Electronic Industries Alliance (EIA)-485 standard created a hypothetical “unit load,” and then limited the maximum number of unit loads that can be presented to any driver on an RS-485 bus to 32. The standard states that a driver must be able to drive a minimum 1.5 differential signal across a maximum of 32 unit loads in parallel with two 120Ω termination resistors.

You can determine the unit-load parameter by sweeping the input voltage from -7 to +12V on one bus pin, with the other bus pin held at ground, and then measuring the input leakage current. You will measure both bus pins individually, with the transceiver both in a powered and unpowered state. As you can imagine, the input leakage current depends on the input voltage; thus, when calculating the unit load, Equation 1 uses the worst-case ratio of input voltage to leakage current:

where VIN {-7 … + 12V}.

In figure 2, the bounds of -7 and +12V in the standard are meant to allow up to ±7V of ground-potential difference (GPD) between a driver output and a receiver, with the driver’s output voltage varying between GND and 5V. Therefore, -7V represents a receiver seeing a respective driver pin driving the bus low with a -7V GPD, while +12V represents a receiver seeing a respective driver pin driving the bus high with a +7V GPD.


Figure 2: Maximum GPD of a standard RS-485 transceiver

One unit load is equivalent to 1mA of input leakage current at +12V. This load represents a single-ended load with respect to ground. Another easy way to think of the unit load is the equivalent of a 12kΩ resistance from either the A or B bus pins (and the Y and Z pins for full-duplex transceivers) to ground.

Once you’ve found the maximum ratio of input voltage to leakage current, you can calculate the equivalent unit load by dividing that ratio by 12kΩ, expressing the result in terms of a fraction of the unit load.

Using this unit-load ratio, you can then easily calculate the maximum number of any variety of transceivers that the network can handle. For example, if you were looking at TI’s SN65HVD82 RS-485 transceiver, which has a one-eighth unit-load input impedance, you would be able to place a theoretical maximum of 256 nodes on the network, as shown in Equation 2:

Table 1 shows the relationship between unit load, bus leakage current, equivalent input resistance and the maximum number of devices that can be on the network for a few typical unit loads.

Table 1: Unit-load characteristics

If you recall from the second installment in this series, the common-mode load for an RS-485 driver-output test circuit is 375Ω; see Figure 3. That is because it is the equivalent of 32 unit loads (12kΩ) in parallel.

Figure 3: RS-485 driver-output test circuit with common-mode load

Moreover, if you are trying to figure out how many transceivers you can place on your network, the RS-485 data sheet will have a unit-load parameter or a maximum input leakage current that can be used for calculating the unit load. The smaller the unit load, the more devices you can place onto the network.

In the next installment of this series about RS-485 basics, I’ll discuss standard terminations and how to use receiver fail-safe terminations. I hope you will come back to read it, or log in and email subscribe to Analog Wire!

Additional resources:

  • Thanks you for your great article.

    I work as a hardware designer on a devices that uses 485 bus. One time our manufacturer bought a fake 485 driver, and we not noticed it until we start to use the devices in the real installation.

    With the aim that this does not happen again i want to design a production test that tested the unit load parameters of each device.

    As I use a 1/8 unit load drivers I think the following test will be ok:

    Step 1:  "Sweeping the input voltage from -7 to +12V on one bus pin, with the other bus pin held at ground, and then measuring the input leakage current. You will measure both bus pins individually, with the transceiver both in a powered and unpowered state."  After that I will use Equation 1. Driver is a "1/8 unit load driver is equation 1 result is bigger than 96000.

    Step 2: Using the circuit of the Figure 3 but changing the 375 Ohm by 46.8 Ohm and sweeping the input voltage from -7 to +12V, I measure Vod and it have to be bigger than 1.5V.

    ¿are you agree with these procedure?

    Thanks in advance.