Hello,
I am looking for assistance to get CAN bus working on a Jetson AGX Orin developer kit, running the JetPack 6.0 DP.
I have already successfully gotten CAN working on a Raspberry Pi 4, and an amd64 laptop, using a USB to CAN adapter (UCAN). I am using this same adapter with the Jetson.
I’ve read through a few forum posts and have done testing for a few hours, and I think the mttcan module may not configured properly in some way.
These are the commands I use to test CAN.
sudo ip link set can0 up type can bitrate 1000000
candump can0 -xct z -n 10
- When I run the candump command, nothing is received.
ifconfig -a
, the can0 interface showsUP, RUNNING
- When I run a CAN loopback, sending and receiving messages works.
- When I run
ip --details link show can0
, the error state showsERRORS-ACTIVE
. sudo dmesg
does not show errors.lsmod
shows mttcan, can-dev, can-raw, and can, loaded in.- Something I noticed is that when I go to
/proc/device-tree/
,mttcan@31000
andmttcan@32000
does not show up. - When decompiling the device tree dtb file from
Linux_for_Tegra/kernel/dtb/tegra234-p3737-0000+p3701-0000.dtb
, I did not see any mttcan declarations within this file. - When looking at the
bootloader/generic/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi
file, I think this may be configured incorrectly as the CAN din and dout declarations use “rsvd1” instead of “can0” which I saw in the sample config file in the forum post #1. I then used the pin configuration excel spreadsheet to configure input and output, and manually replaced the old declarations with the new ones. I then flashed the Jetson with the./flash.sh
file, but this did not seem to fix the issue with CAN. - My next steps will be to fully replace the contents of the pinmux file with that of the file in forum post #1 and then test with a newly created file from the excel pinmux generator.
References:
Post #1. Mttcan does not work on Orin Jetpack 6.0 dp
Post #2. Controller Area Network (CAN) — Jetson Linux Developer Guide documentation?