5
\$\begingroup\$

I have a system with an RS-485 bus master and up to 12 slaves. The master and slaves are located in different assemblies and are connected with an RS-485 bus that is inside a cable harness. The cable harness also provides power and other comms. The RS-485 bus is twisted shielded pair with 24 gauge conductors. All connectors are -38999 with 20 gauge contacts. There is no guarantee all slaves will be connected to the bus so I cannot route the bus into a slave and back out to shorten stub length. Data rate will be greater than 1Mbps - goal is 10Mbps if bus architecture will support it.

Total bus length is estimated to be about 12 feet long. Each stub on the harness is estimated to be about 6 inches from the main part of the harness. Stub length inside the slave assembly is about 2 feet. Stubs on the main harness are separated by about 8 inches.

My question is what is the best practice for 'attaching' a stub to the bus. Should each stub be spliced into the main twisted shielded pair? Or should the main bus be crimped into a single pin at each stubs' terminating connector, i.e., pin acts as splice for main bus? Or, is there a better option such as the inline bus couplers found in MIL-STD-1553 buses?

Two RS-485 Stub Attachment Ideas

Edit: The question is about whether splices or two wires in a single pin is a better method for tying into a bus or does it matter. It is understood shorter stub lengths are better and termination will only happen at the extreme ends of the bus (not on stubs).

\$\endgroup\$
3
  • \$\begingroup\$ What data rate are you going to use? \$\endgroup\$
    – TemeV
    Jan 24, 2019 at 17:30
  • \$\begingroup\$ Updated question with data rate greater than 1Mbps but 10Mbps is goal. \$\endgroup\$
    – Scottlysan
    Jan 24, 2019 at 18:16
  • \$\begingroup\$ I would also be interested in an answer to what the best practice for this kind of problem is. The given answers so far do not answer this question. \$\endgroup\$
    – anroesti
    May 4, 2019 at 11:42

5 Answers 5

2
\$\begingroup\$

Without going into too much math, I'd say keeping the stub length shorter would be better because it would reduce transmission line effects:

Data transmission lines should always be terminated and stubs should be as short as possible to avoid signal reflections on the line. Proper termination requires the matching of the terminating resistors, RT, to the characteristic impedance, Z0, of the transmission cable. Because the RS-485 standard recommends cables with Z0 = 120 Ω, the cable trunk is commonly terminated with 120-Ω resistors, one at each cable end (see Figure 5, left).

Source: www.ti.com/lit/an/slla272c/slla272c.pdf

So use the Stub Starts at connector option, this means tying the bus at the pin and not using a splice. Keep capacitance low to improve bus performance.

\$\endgroup\$
7
  • \$\begingroup\$ Thanks for the answer. I edited the post so it's hopefully more clear my question is about the best practice for tying into the bus and not about where to terminate the bus. \$\endgroup\$
    – Scottlysan
    Jan 24, 2019 at 17:16
  • \$\begingroup\$ "Data transmission lines should always be terminated and stubs should be as short as possible to avoid signal reflections on the line." This means you should splice the bus at the connector. You should "Use the Stub Starts at connector option. Keep the stub as short as possible away from the bus \$\endgroup\$
    – Voltage Spike
    Jan 24, 2019 at 17:38
  • \$\begingroup\$ meta.stackexchange.com/questions/126180/… \$\endgroup\$
    – Voltage Spike
    Jan 24, 2019 at 17:40
  • \$\begingroup\$ Are you asserting either a splice with three wires or a pin crimped with two wires are viable options and neither is preferred over the other, i.e., that stub length trumps and should dictate how the stub attaches to the bus? \$\endgroup\$
    – Scottlysan
    Jan 24, 2019 at 17:45
  • 1
    \$\begingroup\$ It really depends on what you want in bus performance, if your running slow busses like 1Mbps then it probably doesn't matter. If you want to maximize performance, you'll make the stub length shorter. As far as splicing goes I couldn't comment on that unless I had connector specs and wiring requirements. \$\endgroup\$
    – Voltage Spike
    Jan 24, 2019 at 18:51
1
\$\begingroup\$

See these MAXIM application notes on that. Basically, terminate only at the two ends, and keep stubs short (like your right hand connections) https://maximsupport.microsoftcrmportals.com/en-us/knowledgebase/article/000103009 https://maximsupport.microsoftcrmportals.com/en-us/knowledgebase/article/000099654 enter image description here

\$\endgroup\$
3
  • \$\begingroup\$ Thanks for the answer. I edited the post to hopefully clarify my question is not about terminating the bus - what is the best method to tie into a twisted shielded pair with another twisted shielded pair. \$\endgroup\$
    – Scottlysan
    Jan 24, 2019 at 17:17
  • \$\begingroup\$ I still think your right hand drawing is the way to go. \$\endgroup\$
    – CrossRoads
    Jul 3, 2019 at 14:12
  • \$\begingroup\$ 2 feet is not short for RS-485. \$\endgroup\$
    – SteveSh
    Jan 16, 2020 at 15:28
0
\$\begingroup\$

At the lengths of stubs you are talking about, it comes down to wiring convenience.

If you have a free choice (ie, you're designing the equipment), it all depends on what kind of connectors you're using

  • Putting two connectors on the equipment makes makes it quick and tidy, and can have the absolute minimal stub of a few millimetres. However, removing a node disconnects the downstream slaves temporarily.
  • Putting one connector on the equipment with a T-connector (if available for your connectors) solves this problem but the wiring isn't so nice
  • Putting the T in the main wiring with a "drop" cable means the bus is always fully connected, but more difficult to make changes. This also has the downside of giving the longest stubs.

Anyone who used 10Base2 connectors is probably still traumatised by how hard it was to fault-find: the T-connectors were always going wrong. Personally I tend to prefer "two sockets on slave device".

\$\endgroup\$
0
\$\begingroup\$

In direct answer to your question the right-hand topology is the better of the two. Shorter stubs are always better than longer stubs, unless you're deliberately looking for a suck out at some frequency, due to the quarter wave stub you have.

Have you run a signal integrity simulation of this? Based on my experience with RS-485 (and LVDS), a 2 foot stub (which is what you're stuck with inside the slave) is going to be a deal breaker with '485.

All of the the other things mentioned in the OP's question (connector type, type of splice, etc) is down in the noise compared to the problems you're going to see with 2 ft stubs.

I'll see if I can Hyperlynx working on my laptop. Been having problems since WIN10 was forced upon me.

\$\endgroup\$
0
\$\begingroup\$

I'd like to mention a different approach: convert the links to point-to-point instead of bus/star. It'd potentially raise the fault tolerance of your system, since a fault on any one link would not disable the entire network.

Have multiple RS-485 transceivers in the host device, to make it appear like an Ethernet hub would. The TXD and DE from the MCU is presented to all transceivers, the RXD lines are AND-ed together before going to MCU's RXD input.

As long as the host-side receivers are fault-tolerant, i.e. guaranteed to produce idle receiver state when the differential input voltage is 0V or open, then this will work well, and should be tolerant to any node being unplugged or dead (i.e. a failed power supply).

A receiver watchdog could be added to control each transceiver's RO signal, so that if a node's link gets stuck in active condition for too long, it'd be isolated from the global AND gate until it'd recover to a high condition. This could be implemented by the MCUs timers if you had lots of them, or by a simple 555-based circuit (or any of the more modern multifunction timer blocks that are easy to use).

Another way of implementing such a watchdog cheaply would be to let the MCU's GPIO drive each transceiver's REN (receiver enable). When the MCU detects a break-like condition that's too long, it can start disabling the transceivers successively until the condition goes away. That'd point to the stuck-low link. The failed link's receiver enable can then be periodically reinstated to check if the fault condition has cleared; the criterion would be that after re-enabling and waiting for the receiver activation delay (per the datasheet), the MCU's RXD is still in idle state.

\$\endgroup\$

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.