2
\$\begingroup\$

We have a battery with built-in BMS and I am preparing a PCB that is supposed to talk to it. I need to decide whether I put 120 ohm standard end termination or 60 Ohm for 20cm short "bus".

There are only two wires coming from BMS with RS485 interface. Is there a way to find out if there is termination resistor on it? I don't think I can simply use multimeter to measure resistance.

The voltage between both wires and battery "-" is steady 0, so either there are no biasing resistors or it has isolated transceiver.

The voltage between the wires themselves is 0 with short 4V pulses every 5 sec. This is consistent with datasheet description of BMS being in sleep mode. It goes to sleep if battery current is under 100mA and there is no RS485 communication. Look like BMS wakes up from time to time to check for connection.

Note that the BMS works reliably with off-the-shelf RS485 USB adapter. I tried to measure resistance on this adapter and it shows 67k, which does not tell me anything.

The battery pack manufacturer uses third-party BMS, so they have no idea what's inside. Reaching that third-party is rather problematic.

The RS485 protocol is 9600 baud.

\$\endgroup\$
4
  • \$\begingroup\$ "Note that the BMS works reliably with off-the-shelf RS485 USB adapter" ... then you're probably fine without additional termination. What does a scope trace of this communication look like? \$\endgroup\$
    – Attie
    Mar 15 at 22:03
  • \$\begingroup\$ @Attie I scoped the communication and it scared me. Unless I am reading the screen wrong, when communication begins the amplitude of the signal raises to almost 8V. This can't be right, so I am going to re-test and report here. \$\endgroup\$
    – Maple
    Mar 17 at 19:03
  • \$\begingroup\$ If you can't know what's inside of the device - either by inspecting it or reading documentation, you should not use it. Because at the end of the day you seem to be responsible for the design. There're plenty of RS-485 devices pretending being RS-485 compliant, functional in specific circumstances but failing in other circumstances. It's all about cost cutting and thoughtless copy-pasting circuit diagrams without checking against the standard. \$\endgroup\$
    – Anonymous
    Apr 13 at 18:35

3 Answers 3

3
\$\begingroup\$

If it measures 120 ohms between A and B wires, it definitely has a DC termination resistance.

If it measures few tens of kilo-ohms, it may be unterminated, or have an AC termination with maybe 120 ohm resistor and a capacitor.

You could try with a long cable and an oscilloscope if the device AC terminates or leaves the bus unterminated. Unterminated end will reflect signal back to cable. The cable should have approximately 120 ohm characteristic impedance, but a common 100 ohm CAT cable used for Ethernet should work for the purpose of determining the termination.

A direct comnection could also do with 120 ohm source impedance to see if the AC amplitude drops to half when the device is connected.

Since you can't or don't want to use multimeter to measure resistance as the device periodically sends something, then you need to measure voltages and/or currents.

What you can do, like in a normal RS-485 bus, is to apply fail-safe bias resistors. Pull one line high to e.g. 5V and pull the other line low to 0V. You can use e.g. 1kohm resistors. If the device has 120 ohm DC termination, you will measure DC current and can calculate the bus voltage when it is idle.

If bus wires float at 5V/0V, there is no DC termination, but there could be AC termination.

You can measure the waveform when feeding in a square wave into device through some series resistances. If scope diagram looks like applying 5V causes current to flow as if a capacitor is being charged, it's likely true and you likely can calculate the R and C of the AC termination.

Another way to detect AC termination would be to load the bus at some high resistance like 10k or 1k, and see how the pulses output by the device look like. The device outputs something the AC termination cap also charges to some value, and when the device turns off RS-485 transmit output to receive some kind of response, the weak resistance you added may show AC discharge waveform you can calculate.

So there are many ways for determining if some black box has resistor between terminals, a resistor and a cap in series between terminals, or very high impedance indicating no termination at all. It helps to know that the black box is a RS-485 device and it transmits something every now and then.

One more thing. You said the device might have an isolated RS-485 interface. It might, but it would make no sense if there is no ground reference wire for the RS-485 wires. RS-485 is not a two-wire differential interface, it is a three-wire interface with two data wires and a ground reference wire and it will be extremely poor idea to connect only data wires without a ground reference. It is likely that the battery negative is the ground reference for the data wires.

\$\endgroup\$
5
  • \$\begingroup\$ I did not measure resistance between those wires because they have 4V pulses. I don't think it would be good for the multimeter. \$\endgroup\$
    – Maple
    Mar 15 at 21:20
  • \$\begingroup\$ @Maple Turn the device off or disconnect it? Or apply transmission from another RS-485 transceiver, then measure voltage and current. \$\endgroup\$
    – Justme
    Mar 15 at 21:40
  • \$\begingroup\$ The problem, as I described it, is that the BMS is built-in into battery pack, so it is always powered. That was the reason I tried to measure resistance on unpowered RS485 adapter that is known to work with this BMS. I thought even if I guess BMS termination wrong, at least my board should work with it too. \$\endgroup\$
    – Maple
    Mar 17 at 18:53
  • \$\begingroup\$ @Maple OK, I will update with new ideas. \$\endgroup\$
    – Justme
    Mar 17 at 18:59
  • \$\begingroup\$ Thank you for additional options. I do have footprints for biasing resistors on my PCB, so it won't be a problem to test. So far I haven't seen any voltage between battery "-" and bus wires, but I will check again because I did count on negative wire to be a common ground. \$\endgroup\$
    – Maple
    Mar 17 at 21:07
2
\$\begingroup\$

TLDR don't sweat it. 100 ohms is fine.

Measure ohms first - low hanging fruit and all that. Then measure capacitance and ESR (if you're equipped).

If you get "open circuit" (more than 500 ohms) both times there's probably no termination.

If you still need to know you could apply VNA or a TDR to the problem, but I think that is probably overkill.

On a short wire (short when compared to the wavelength of the signals) termination is less important and having termination at only one end is sufficient (even if the termination is the wrong resistance), you say 20cm, so so long as the bit rate is less than 1Gb/s you should be fine.

I'm guessing your BMS runs at a data rate that's significantly less than that.

\$\endgroup\$
5
  • \$\begingroup\$ The baud rate is only 9600. I added that to the question. I am reluctant to measure resistance directly because of those 4V pulses coming from it. \$\endgroup\$
    – Maple
    Mar 15 at 21:18
  • \$\begingroup\$ perhaps you can disconnect the battery, but really as 9600 signal rate on a 20 cm wire reflections will not be a problem so termination is not needed at all. \$\endgroup\$ Mar 15 at 22:11
  • \$\begingroup\$ I guess I can DNP the resistor for manufacturing and see what happens, then manually solder it if necessary. But this is a medical device and it goes through EMC and FDA certification. I don't think I am allowed to tamper with it afterwards. \$\endgroup\$
    – Maple
    Mar 17 at 19:08
  • \$\begingroup\$ @Maple If it is a medical device, I'd be somewhat worried if there is no specs about some BMS that goes into the medical device. \$\endgroup\$
    – Justme
    Mar 17 at 19:19
  • \$\begingroup\$ @Justme the battery itself is fully CE, UL and FDA certified but certification does not require a schematic, so battery manufacturer is content with not knowing the details. The datasheet they give us only has pinout, baud rate and a protocol. \$\endgroup\$
    – Maple
    Mar 17 at 20:58
2
\$\begingroup\$

At only 9600 baud and 20cm bus length, you don't need any termination at all.

The purpose of RS485 bus termination is to prevent the impedance discontinuity caused by open end of the bus transmission line from producing reflections, which in turn would possibly interfere with your signal.

But with such a short line and such a slow baud rate, the reflections caused by the open ends will have died down to being virtually unmeasurable by the time the line gets sampled by the bus receiver.

\$\endgroup\$
2
  • \$\begingroup\$ The question was about how to determine if there is already termination present, not about if it can be omitted. Even if no termination is required due to slow baud and short bus, it still may not be a great idea to leave the bus wires floating, but put at least something like 120 ohms there to discharge voltage between bus wires when driver is disabled and to keep noise from affecting the lines that the termination keeps differential voltage at 0V. \$\endgroup\$
    – Justme
    Mar 16 at 1:20
  • \$\begingroup\$ @brhans, you can improve your answer by substituting "can use any termination at all", and "caused by mismatched termination", and "mismatched ends". \$\endgroup\$
    – david
    Mar 16 at 9:16

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.