I have a cRio 9074 and recently purchased a NI 9852 2-port low speed/fault tolerant CAN module.
This is my first attempt at network comms in cRio and I've just realised that none of the devices I want to communicate with are fault tolerant and the fault tolerant physical layer requires different terminations to 'normal' high speed CAN (right after I broke the seal on the box, of course!)
Is there any way I can configure the physical layer to get this setup to work reliably (alebit at < 125 Kbps and with no fault tolerance)?
Solved! Go to Solution.
Sorry. The Low-Speed/Fault-Tolerant and High Speed CAN transceivers use different protocols for communication.
HS CAN is recessive when CANH and CANL are both at nominally 2.5V. It is dominant when CANH is at 3.5V and CANL is at 1.5V.
LS CAN is recessive when CANH is a 0V and CANL is at 5V. It is dominant when CANH is at 3.6V and CANL is at 1.4V.
You can see that they are almost the same for dominant, but different for recessive. Also, the termination sequence between the two buses is different. For an HS bus, you typically have 120Ohm resistors between CANH and CANL on the two ends of your bus. For an LS bus, you have a separate termination resistor for CANH and CANL (to RTH and RTL).