0
\$\begingroup\$

I need to connect five stations via RS-485 MODBUS RTU. The stations are 1-2 m apart, and each one has three RS-485 devices within fairly close proximity to each other. The distance to the bus master is also within a couple of meters. I plan to use marine NMEA200 cabling products for the wiring, but I wonder what I can do to simplify things.

The most obvious bus would look like this (D is a device, T is a termination resistor):

T-----+-+-+-----+-+-+---…---T
      | | |     | | |
      | | |     | | |
      D D D     D D D

But that means 15 "tee" connectors on the bus. An alternative that might work might look like this:

T-----+-----+---…---T
      |     |
      |     |
      ^     ^
     |||   |||
     DDD   DDD

This reduces the "tee" count to 5, but strictly speaking, this is a violation of the bus specification topology.

Each drop from the main bus is probably 2m, to make it easy to access the back of the station. The bus speed is 19,000 bps.

Could this work?

For reference: On the bench right now I have a USB-to-RS-485 adapter, and 10" hookup wire to a Eurotherm 3508 controller connected directly to the screw terminals with no termination. I also had an Alicat controller with about 1 m of cable plugged in. This mostly works, but I was getting a lot of issues with bus timeouts recently, and disconnected the Alicat to see if signal integrity was perhaps part of the problem. It was noticeably better, but I still get a lot of timeouts (even if I increase the timeout threshold to several seconds). I'm not sure if the problems are due to signal integrity or something else.

\$\endgroup\$
13
  • 1
    \$\begingroup\$ At those distances and at only 19,000bps, you could even leave out the terminators and it would work fine. \$\endgroup\$
    – brhans
    Mar 10, 2022 at 0:42
  • 1
    \$\begingroup\$ I second that. With those distances you could wire it in any configuration and it would work. \$\endgroup\$
    – Kartman
    Mar 10, 2022 at 1:30
  • 1
    \$\begingroup\$ I thought the same, @brhans, but in my current benchtop setup (I updated the question to describe it) was experiencing some timeouts. \$\endgroup\$
    – Rick
    Mar 10, 2022 at 2:45
  • 2
    \$\begingroup\$ Put a scope on your RS485 lines to see what they look like. Maybe all you need are some biasing resistors on one end. But @theamk's answer down below is correct in the details of why it should work no matter how you connect your stuff. \$\endgroup\$
    – brhans
    Mar 10, 2022 at 3:04
  • 1
    \$\begingroup\$ TIA485 section 4.2.7 allows 30% of the bit time for the 10% to 90% transition. so the allowable transition time depends on the signal rate. at 20kb/s that would be 15 microseconds. \$\endgroup\$ Mar 12, 2022 at 22:34

1 Answer 1

3
\$\begingroup\$

The problem with stubs is that introduces "ringing", which means signal will be take some time to settle to the final value. If the receiver decides to samples the line and it has not settled yet, this will introduce communication errors.

Your speed is 19200 baud, and and receiver samples the line halfway through the bit, which means ringing must take less than (1 second / 19200 / 2) = 26 microseconds

The exact duration of ringing is hard to calculate, but it'll generally be a small multiple (< 10) of travel time of signal over your stub. Your stubs are 2m long, let's take 10x multiplier to be conservative, this gives you (2 meters * 10 / speed of light) = 0.07 microseconds

That's much shorter than your signal. You would be fine.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Thanks for that. That's what I thought, but I was experiencing some issues even with the super-short runs on my experimental bench setup. \$\endgroup\$
    – Rick
    Mar 10, 2022 at 2:46

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.