1
\$\begingroup\$

I am designing a RS-485 network and would like to know whether the configuration below would work. The transceiver I am using is the Maxim MAX485, with the master ad slaves hardwired to always transmit/receive respectively. My target bitrate is 1 MHz.

enter image description here

The master device would be living on a distribution PCB, the "backbone", with connectors for distributing the differential lines to each stub. The slave PCBs would be daisy-chained along a number of stubs (around 10 of them, which will be kept to a sensible length of about 20cm).

Note that for the sake of using input and output connectors as opposite to screw terminals, I would be routing the differential lines across each of the slave boards.

I am aware that the ideal topology for RS-485 would just be one long daisy chain, but I am trying to combine power injection and data transmission into one shielded twisted pair cable assembly and the topology above is what would work best mechanically for my application.

Do any more best practice design considerations come to mind when configuring such a network with bespoke circuit boards?

\$\endgroup\$
6
  • \$\begingroup\$ Your topology is wrong, there are 6 resistors Rt, but there should be only two, one at the master and one at the last slave. There should not be long stubs with 4 slaves, only very short stubs for each single slave. So use only one single long daisy chain from M to S1, S2, S3, S4, S5, .... S16, S17, Sn. \$\endgroup\$
    – Uwe
    Apr 29, 2022 at 11:52
  • \$\begingroup\$ It is possible to run a RS485 network like that, but your success will depend strongly on your (unspecified) bitrate. Traditional bus termination resistors will probably cause more harm than good with that topology though, so I'd suggest eliminating them entirely. \$\endgroup\$
    – brhans
    Apr 29, 2022 at 12:42
  • \$\begingroup\$ My bad for not specifying the target bitrate. It will be 1Mhz. What's the deal with termination resistors causing issues in this case? \$\endgroup\$ Apr 29, 2022 at 12:48
  • 2
    \$\begingroup\$ Stub length does not mean length between boards. Stub length means the whole length of the stub going from backbone through all daisy chained boards because that is the length no matter how many daisy chained boards there is. \$\endgroup\$
    – Justme
    Apr 29, 2022 at 13:55
  • 1
    \$\begingroup\$ The issue with multiple termination resistors is: In a single chain the far end is terminated in (ideally) the characteristic impedance of the cable so that you do not get reflections. If you use only one resistor at eg S30 all the other stubs are unterminated and you will get reflections which interfere with the signal. If you terminate all stubs with the characteristic impadance / resistance the resultant impedance of the slave netework will be very low and you will get both reflections and excess loss. The ideal solution is "don't do it". A maybe solution is "try various combinations". ... \$\endgroup\$
    – Russell McMahon
    May 5, 2022 at 2:27

2 Answers 2

0
\$\begingroup\$

The bus backbone is max 20cm and it has ten 1.5 meter stubs connected to it. That is basically a star topology, which is not how RS-485 is meant to be used. It is against best practices already, definitely not recommended, and in fact suggested to avoid.

Depending on your choice of connector you can make the bus linear so even if your physical arrangement is a star shape bus, the bus itself can go linearly via all devices on bus.

The MAX485 output slew rate is not limited so rise/fall times are between 3 to 40 ns, which translates to maximum stub length of 7 to 93 cm according to multiple RS485 appnotes.

Expect problems as you have 150cm stubs and you have basically 10 stubs lumped together.

If driving one unterminated cable looks like 100 ohm characteristic impedance, driving 10 unterminated cables in parallel looks like driving 10 ohms characteristic impedance, and all ten unterminated ends reflect their signal back.

It might be possible to make it work, but it is against suggestions anyway.

\$\endgroup\$
2
  • \$\begingroup\$ Thanks for the great answer. I now understand why the topology I suggested isn’t viable and strongly advised against. Would you mind elaborating a bit on how I could make the daisy chain mechanically star-like and what type of connectors could possibly facilitate this? \$\endgroup\$ Apr 29, 2022 at 16:26
  • \$\begingroup\$ @user11271728 Have your linear bus go from backplane down a segment to last receiver and from the last receiver at the end of a segment to loop back up again to backbone to go down the next segment. The bus will linearly snake up and down and will require two pairs down and two pairs up, and last device of a segment must have a loopback plug maybe. Depends on what wires and connectors you use. Or, then have a teminated RS485 transmitter per segment, so four transmitters on the backplane. Then all segments are already linear, and last receiver in each segment must have a terminator plug. \$\endgroup\$
    – Justme
    Apr 29, 2022 at 19:01
1
\$\begingroup\$

If you look at the Maxim datasheet you referenced, you will see that they show the application as a single string of connections with impedance matching resistors at each end. This is to control ringing and reflections due to transmission line effects.

Your proposed circuit will not be impedance matched. The 'backbone' and the 'stubs' all need to have the same impedance but by paralleling 4 stubs you cannot achieve it. So your network will have mismatched impedances and will not behave properly.

If, however, you keep the length short enough and/or reduce the operating bitrate enough so that ringing is able to stabilize, you may be successful.

If you really need to implement this distribution/stub design, you may need to consider receiver/driver circuits at each of the stub connection points so that you can maintain impedance on the distribution bus and have the stubs isolated and their impedances controlled as well.

\$\endgroup\$
12
  • \$\begingroup\$ Thanks for your answer. My understanding based on the TI RS-485 design guide is that the impedance of the main line and stubs depends on the characteristic impedance of the cable used. If the same cable is used for the stubs, what would be the cause of the impedance mismatch? To clarify, each slave node will have a transceiver set to receive on it. Could you elaborate on the extra driver circuitry needed at each of the stub connection points? \$\endgroup\$ Apr 29, 2022 at 10:41
  • \$\begingroup\$ The TI RS-485 design guide does not show any arrangement resembling yours. \$\endgroup\$
    – jwh20
    Apr 29, 2022 at 11:03
  • \$\begingroup\$ My apologies, I might have misinterpreted the meaning of a "stub" in my diagram. Will update it if as mentioned in the design guide stub length is the distance between a transceiver and cable trunk (which wouldn't encompass the whole length of one of the daisy-chains, but only the distance between two slave nodes). I appreciate my network strategy differs from the example in the design guide, but how does my design result in mismatched impedance? \$\endgroup\$ Apr 29, 2022 at 11:10
  • \$\begingroup\$ @user11271728 The cable itself causes mismatch. If you drive one long cable from end, it looks like one load, and if you drive two cables, like a node on middle, there are two loads. There are application notes that explain calculations how long stubs can be and low far apart they must be so they don't cause problems with your data rate, or rather, the rise/fall time. \$\endgroup\$
    – Justme
    Apr 29, 2022 at 11:11
  • \$\begingroup\$ @justme understood. Does the issue still apply if the daisy chains coming off the main backbone will have receiver slave nodes spaced out by roughly 30cm cable stubs? I think that the way I defined stub length in my diagram is wrong. \$\endgroup\$ Apr 29, 2022 at 11:18

Not the answer you're looking for? Browse other questions tagged or ask your own question.