TROUBLESHOOTING A CAN NETWORK WITH IQAN INTERNAL RESISTORS
Our company uses an IQAN MDL2 setup which ties into the J1939 network of a Caterpillar system.
Our setup is using the internal resistor on the MDL as the terminating resistor on one end of the network and has a standard 120 Ohm resistor wired into the other end.
A machine in the field is having CAN network issues. Typically I am used to checking the resistance of the CAN network and the resistance of the terminating resistors as a standard checkout of the wiring. However with the internal resistor this is proving difficult.
In our lab I powered up a test MDL2 and checked resistance at the MDL with the MDL powered up but no other wiring attached. I found that I would measure ~69 Ohms across the internal resistor at first power up. If I shorted the CAN Hi and CAN Lo together by touching together my multimeter probes it would cause a CAN C "CRITICAL ERROR". After this error I would measure ~115 Ohms across the resistor until the power was cycled on the MDL.
All this said, my questions are:
-Do you have any recommendations for a standard procedure for troubleshooting CAN wiring/resistance?
-In light of the testing I did in our lab could you provide an explanation on how the internal terminating resistor on these IQANs work?
Thanks
Customer support service by UserEcho
The classic method for measuring resistance between CAN-H and CAN-L will not really work when using the built-in termination resistors in the IQAN modules. The reason is that the internal termination resistor is switched out from the circuit when the module is powered down.
The only way to get a stable rate measurement with the module powered up is if there is no traffic on the bus.
That you were getting about 115 ohm on one module after shorting CAN-H and CAN-L makes more sense; the Critical error means that the affected CAN controller has gone into bus off, and this prevents the module from sending any more messages on that bus until restarted.
Thanks... So in follow up I have two questions:
1. Is there any way for a technician to test if the internal terminating resistor has failed in a module (besides swapping the module with a new one)?
2. Somewhat related question: we also employ an IQAN setup with one Master module and multiple XA2 expansion modules in some of our units. In this setup a "terminating" style address tag is used on one of the modules. Just curious on the internal workings of this setup. Does the XA2 with the terminating address tag recognize the resistance value on the address tag and then switch on an internal terminating resistor?
Thanks again, I very much appreciate your thoughtful responses and this forum in general!
Hi Ethan,
For the question of testing the internal terminating resistor, the answer is that there is no practical way of doing this in the field. On the other hand, I cannot recall ever seeing any report of an IQAN module with damages on the components used for internal termination. The components used are rated to handle shorts to battery voltage, so they are not that easy to destroy. So when you have an expansion module fitted with an IdTag with the 'T', or a master module with the application configured to terminate, you can be confident that the termination will be there when the system is powered up.
What could happen; and that I have seen a couple of times over the years is damage to the CAN trancievers. The symptom here would be different from a missing termination, a module with a destroyed CAN transceiver would not be able to participate on the bus at all.
For the second question, your understanding is exactly right. The expansion module will measure the resistance on the IdTag, if it is in the intervals for 'T' tags, it switches on its internal termination.
Ethan,
I have come across this issue while troubleshooting CAN busses in our systems. When I am trying to confirm that the bus has the proper termination, I will disconnect the IQAN device(s) with internal termination and temporarily install physical terminating resistors into the bus and then check the bus resistance. Obviously this method is no good for checking the IQAN device with internal termination, but is has proven to be effective at finding other termination issues on the bus. This issue has caused me to move away from using IQAN internal termination in our larger systems. While internal termination is absolutely easier, it can be more difficult to troubleshoot a large bus. On smaller systems with shorter busses, we still do use internal termination for the convenience and to reduce wiring.
Gustav,
One thing I have seen on some other devices is a physical switch on the device that can be used to turn termination on or off. In these cases, the internal terminating resistor is active even when the device is powered off. Obviously this small change would require a lot of work to implement on existing hardware...but it may be something to consider on future devices.
Thank you for the feedback Eric, going with external terminations and configuring all IQAN modules to not use the internal termination could be a good option if one wants to have the option to check the terminations with the classic method of measuring resistance.
One possible drawback I can think of is when loading the software in a multi master system for the first time, on the production line. Before the master modules have an application, they will default terminate; so when adding a pair of external resistors in addition to this there might be too much load (depending on number of master modules).
As soon as the IQAN masters have had applications loaded in them, they have the properties for terminate yes/no from the last application saved, and will start up with this setting.