Log in

View Full Version : Talon SRX CAN Daisy-Chain Wiring


prifken
29-01-2015, 21:06
Hello,

Can somebody please confirm that the wiring schematic in the attached image would work?

To maintain symmetry in our wiring, we would like the PDP to be in the center of the electrical bed, with two Talon SRX on either end. I know 120 Ohm termination is required on this bus, it's just not clear if we need a second if already using the PDF in the center.

Thanks in advance for the help,

Peter

cgmv123
29-01-2015, 21:08
This setup will work, but the termination resistor is required to be at the end of the chain, and the termination resistor on the PDP needs to be bypassed (jumper set to off).

prifken
29-01-2015, 21:10
Jumper set to "off" - that makes sense, we'll try that. Thanks for the help!

kiettyyyy
29-01-2015, 21:11
This should work fine.

Just a heads up, if you took a close look at the Talon SRX PCB, there is really no "daisy chaining".

Both yellow wires and green wires are soldered directly to the respective high and low pads.

I wouldn't worry about throwing on your own terminating resistor and instead, use the terminating resistor on the PDP.

Either will work.

cgmv123
29-01-2015, 21:14
I wouldn't worry about throwing on your own terminating resistor and instead, use the terminating resistor on the PDP..

The termination resistor in the PDP only works if the PDP is at the end of the CAN bus. They don't want to put it at the end of the bus.

kiettyyyy
29-01-2015, 21:19
The termination resistor in the PDP only works if the PDP is at the end of the CAN bus. They don't want to put it at the end of the bus.

Again, I'd recommend taking a closer look at the SRX PCB.

ozrien
29-01-2015, 22:28
kiettyyyy, the intent of the original posters question was asking how to best setup CAN specifically when the PDP is in the middle.

The previously posted answer for turning off term.res jumper and terminating manually with a 120Ω resistor is correct. Since the CAN harness is just two wires it's pretty easy to solder a single resistor and heatshrink it.

kiettyyyy, did you void your TALON SRX's warranty on purpose?

To kiettyyy's point, it's nice putting the PDP at the end instead (I like effortless solutions!). But I understand not every robot has the luxury of having the PDP at the end of the chain. I'm sure prifken's team will make the best decision based on what they want to do.

philso
29-01-2015, 23:41
kiettyyyy, the intent of the original posters question was asking how to best setup CAN specifically when the PDP is in the middle.

The previously posted answer for turning off term.res jumper and terminating manually with a 120Ω resistor is correct. Since the CAN harness is just two wires it's pretty easy to solder a single resistor and heatshrink it.

kiettyyyy, did you void your TALON SRX's warranty on purpose?

To kiettyyy's point, it's nice putting the PDP at the end instead (I like effortless solutions!). But I understand not every robot has the luxury of having the PDP at the end of the chain. I'm sure prifken's team will make the best decision based on what they want to do.

The physical location of the CAN device does not have to correspond to it's place in the daisy-chain. The OP could have installed the PDP with two motor controllers on either side, connected from the RoboRio to one motor controller then from motor controller to motor controller until he reached the fourth then connected the fourth motor controller to the CAN Bus terminals of the PDP and enabled the termination resistor on the PDP. The CAN Bus wires would be looping back from one of the motor controllers at the end.

prifken
30-01-2015, 05:34
Thanks all for the feedback. While terminating the motors with the PDB would be convenient (avoid the solder + heat shrink of a resistor), our specific design requires the PDB to be in the center of the electronics bed, with the SRX CAN motor controllers at opposite ends.

I will say that the CAN configuration is very straight forward. The Software Reference Manual CTR puts out (http://bit.ly/1zlnRLU) explains the process of changing your controller's device ID very clearly. I would also recommend taking a look at the PDB manual as it explains how to use the jumper for termination.

Good luck everyone.

Al Skierkiewicz
30-01-2015, 07:17
prifken,
phil was telling you that the CAN buss wiring can loop back to the PDP to allow you to use the termination there. The physical location does not matter as long as the last point in the chain is terminated.
The single biggest problem for CAN use in the past has been teams making an error in the termination resistor. The buss is actually a 50 ohm buss terminated at both ends. The RoboRio supplies the first termination and the PDP gives you a convenient second termination. Since the PDP has to be connected anyway, you might as well just add the few inches of wire to get the CAN buss back to the PDP as the last point in the chain and use that termination. CAN buss wiring has little loss so it is not like power wiring where you want to make it as short as possible.

philso
30-01-2015, 07:49
prifken,
phil was telling you that the CAN buss wiring can loop back to the PDP to allow you to use the termination there. The physical location does not matter as long as the last point in the chain is terminated.
The single biggest problem for CAN use in the past has been teams making an error in the termination resistor. The buss is actually a 50 ohm buss terminated at both ends. The RoboRio supplies the first termination and the PDP gives you a convenient second termination. Since the PDP has to be connected anyway, you might as well just add the few inches of wire to get the CAN buss back to the PDP as the last point in the chain and use that termination. CAN buss wiring has little loss so it is not like power wiring where you want to make it as short as possible.

Thanks, Al for restating my post more clearly.

My suggestion was made with the assumption that it would be easier and less trouble for your team to splice wire on to the CAN Bus wires from the motor controller than it would be to find an appropriate resistor and install it properly.

timytamy
30-01-2015, 08:06
The buss is actually a 50 ohm buss terminated at both ends.

Is that a typo? The PDP manual states it has a 120 ohm terminator resistor (selectable via jumper). If it is indeed a 50 ohm bus, I'd be very interested in reading more about it?

Ether
30-01-2015, 09:20
Is that a typo? The PDP manual states it has a 120 ohm terminator resistor (selectable via jumper). If it is indeed a 50 ohm bus, I'd be very interested in reading more about it?

http://www.ti.com/lit/an/slla270/slla270.pdf Page5

Daniel_LaFleur
30-01-2015, 12:00
The termination resistor in the PDP only works if the PDP is at the end of the CAN bus.

Please state where your proof is.
CANbus can work with the terminating resistors not at the end of the bus, but it is more prone to errors.

cgmv123
30-01-2015, 12:29
Please state where your proof is.
CANbus can work with the terminating resistors not at the end of the bus, but it is more prone to errors.

http://www.ti.com/lit/an/slla270/slla270.pdf Page5]

18056


Notice how it says "terminated at both ends".

Daniel_LaFleur
30-01-2015, 12:58
Notice how it says "terminated at both ends".

I understand it states "terminated at both ends".

Please read the Stub length section (4.8) of that specification, as it deals with branch length and signal propagation within a branch.

I'm, not stating that it is a great idea to have stub lines, all I was doing is questioning the "The termination resistor in the PDP only works if the PDP is at the end of the CAN bus" statement.

philso
30-01-2015, 14:06
I feel that some of the lessons that team members learn when participating in FRC is to balance risk, to prioritize tasks and to choose what challenges to undertake.

The CAN architecture has been developed to work a certain way with a proven tolerance of limited variations, like stubs up to a 0.3 meters * on the transmission line. When implemented according to the recommendations, it works very well. If someone reading this thread decides to take a chance and implement a non-standard CAN network architecture, they are assuming the risk that they may get degraded performance that will probably take a lot of time and energy to sort out.

It is not likely that many FRC teams will have the equipment (and the experience to use it properly) to trouble-shoot a CAN network that is suffering from phenomena such as reflections. For most teams, developing a robot to "play the game well" in the short time given is a challenge that pushes them to the limits of their abilities. Should teams also take on the challenge of getting a non-standard CAN network configuration to work reliably or should they follow the general recommendations regarding how to set up their CAN network and focus on the robot?

* 0.3 meters = 11.81 inches. This is just a bit longer than twice the length of the CAN Bus wires on the motor controllers (5.5 inches). Maybe CTRE is trying to save us from ourselves?

kiettyyyy
30-01-2015, 14:24
kiettyyyy, did you void your TALON SRX's warranty on purpose?


Maybe. Though, I did see the board assembly without the housing at various offseason events when folks were asking for my opinion :)

Al Skierkiewicz
30-01-2015, 14:36
I should have said the CAN buss on a robot will act more like a 50 ohm buss with the two terminations so close together. Without the terminations at the ends of the buss, ringing, noise and other issues (especially when using unshielded wire) can affect your operation.

ttedrow
30-01-2015, 14:40
The buss is actually a 50 ohm buss terminated at both ends.

The specification for CAN is 120 ohm (+/-12 ohms) terminating resistors. So when measured, the bus should be 54 to 66 ohms.

FrankJ
30-01-2015, 14:45
Is that a typo? The PDP manual states it has a 120 ohm terminator resistor (selectable via jumper). If it is indeed a 50 ohm bus, I'd be very interested in reading more about it?

Two terminating resistors 120 ohm each in parallel = 60 ohm The spec has varying values for the terminating resistors depending on the exact situation.

In answer to Dan's question. The termination resistors are suppose to be on the end to kill reflections. Canbus is actually very forgiving. We have one robot that has been missing one of its termination resistors for a couple of years. It is one of our primary demo bots & it has been working fine. BUT when I am troubleshooting issues, one of the first things I do (after making sure it is plugged in) is make sure everything is done according to specification. So if I was having comms problems, I would make sure the wiring is correct, termination resistors are place, value, & quantity. And then go beat on the programers. (and eat their corn dogs.)

Sorry for the me too

ozrien
30-01-2015, 14:52
If you CAN bus is suffering from reflections, the following can occur...
-DS will show Rx and Tx CAN errors intermittently. (Section 15 in Talon SRX Software Reference Manual).
-CAN bus utilization will be higher than normal. Since CAN error frames eat up bus time just like everything else, you'll notice the CAN utilization go up. This is helpful if you're in the happen of checking it every once in a while and knowing what is normal (kinda like gas-mileage in a car). This is also in section 15 of software ref manual.
-All CAN nodes will blip red intermittently during normal use. Basically the same symptom as Section 16.4. Both common-id talons and bad signal reflection can cause frames to have bad overshoots/undershoots, causing frame CRC checks to fail which causes CAN devices to transmit error frames, which you will see when the Talons/PDP/PCMs blip red during normal use.

One way to reproduce a similar symptom (just to see what the red blip looks like) is to deliberately leave a couple common-ID talons on your can bus. Then power up your robot (leave disabled). All your talons will rail-road orange (healthy CAN bus and disabled). Now sit and watch the Talons for a minute or so. They will blip red every once in a while when the two common Talons inevitably steps on each other's arbid.

Ether
30-01-2015, 17:45
The High-Speed ISO 11898 Standard specifications are given for a maximum signaling rate of 1 Mbps with a bus length of 40 m and a maximum of 30 nodes. It also recommends a maximum un-terminated stub length of 0.3 m. The cable is specified to be a shielded or unshielded twisted-pair with a 120 ohm characteristic impedance*. The Standard defines a single line of twisted-pair cable with the network topology as shown in Figure 6. It is terminated at both ends with 120ohm resistors, which match the characteristic impedance of the line to prevent signal reflections.

source: http://www.ti.com/lit/an/slla270/slla270.pdf, page 5

*The characteristic impedance of the cable (http://en.wikipedia.org/wiki/Characteristic_impedance) cannot be measured with an ohmmeter.

wireties
31-01-2015, 09:41
Please state where your proof is.
CANbus can work with the terminating resistors not at the end of the bus, but it is more prone to errors.

Are you willing to take a chance on those "errors" popping up in a finals match?

Students - please take the advice of Ether and others and use CANBus as intended. Terminate at both ends (done for us at one end on the roboRio) only, keep stubs under .3m and total length under 40m. Use shielded twisted pair when possible. The standards exist for a reason - much testing was done to arrive at the numbers in the standards and the designers of the CANBus nodes (on the roboRio, PDP and TalonSRX for example) follow the standards in their designs. Intentional deviation from the standard puts your design in unknown territory probably without the time or facilities to do proper testing. This is most unwise.

HTH

Al Skierkiewicz
02-02-2015, 08:13
Interesting story here. Belden had made and marketed 8451 shielded twisted pair as a 600 ohm audio cable and everyone used it in terminated 600 ohm audio applications for years. Many guys in remote TV production noticed that it behaved oddly in long runs, over 1000 ft. So ABC did some testing and determined that the impedance of the cable was actually more like 120 ohms. The cable had originally been intended to replace standard telephone wiring which is 19 gauge unshielded twisted pair and always terminated in 600 ohms. Audio wiring and equipment had been designed for using a terminated 600 ohm line until this became known. So in an attempt to modify designs, many manufacturers started using a low impedance source or line driver. Benchmark Audio did some extensive testing and decided on a 30 ohm source impedance using this cable. That is the typical equipment output these days for analog audio.
Please remember that while the wiring is intended to act as a transmission line, termination is important for noise immunity and signal level in our application. Even at 1 Mb/s data rates, a few feet does not begin to exhibit true transmission line characteristics. A half wave length is approaching 500 feet at that frequency.
When I mentioned the problems that teams have had in the past with terminations, most of the problems were related to poor soldering, using resistors other than 120 ohms, insulation and other quality control issues.

DonRotolo
02-02-2015, 08:39
It is not likely that many FRC teams will have the equipment (and the experience to use it properly) to trouble-shoot a CAN network that is suffering from phenomena such as reflections.
Students - please take the advice of Ether and others and use CANBus as intended. Re-quoted for truth.

CAN is somewhat forgiving, but why make it operate at the bleeding edge of stability when there's no good reason to do so? If you knew what you were doing, you'd terminate the ends as recommended, so why not just do that?

prifken
02-02-2015, 08:44
Thanks for clarifying. In the end, we ended up terminating with the PDB.

juchong
06-02-2015, 13:03
Thanks for clarifying. In the end, we ended up terminating with the PDB.

Just as the designers intended! Well done! :D