I have been trying to make the CAN controllers (can0, can1) on the Xavier AX work for two weeks, but I am still facing some issues.
- The Xavier AGX I have is flashed with Jetpack 4.6
- After reading many posts, I changed the clock source in the kernel device tree to PLLAON, in order to get accurate baudrate. Then, I flashed the modified kernel, and got accurate baudrates as requested. I could double check that with
ip -s -d link show can0. And I am getting the 500K baudrate that was set
- I am using the this transceiver, as suggested in this tutorial
- The transceiver has 120 Ohm resistor
- The transceiver is connected to a motor driver (ZLA8030L), which talks CAN 2 and CANopen.
- I dynamically set the CAN registers using
busyboxand bring it up (both can0 and can1)
ip -s -d link show can0I can see that the bus state is
- I execute
candump can0and then power on the motor driver
candumpshows that a message is received
703  00. It’s basically the NTM state of the node (ID=3). Then, no more messages are shown. Each time I switch ON the motor driver, I receive the same message
ip -s -d link show can0I can see that the number of received packets increase
The issue is in the sending! Whenever I try to send a message using
cansend, nothing happens!.
ip -s -d link show can0shows no increase in the the Tx packets. I currently don’t have an oscilloscope to debug the signals.
- I am not setting
- I tried to connect Tx to Rx for can0, and execute
cansend 123@abcdabcd, but I got nothing on
- I tried different boards of the same transceiver, but all show the same issue. I can receive a message when I switch on the motor driver, but I am unable to send messages
- Could the transceivers be not suitable?
- Am I missing something on the hardware side, or the controller settings ?
@Shagrat any hints on how to debug/solve this?