I am trying to get CanBus can0 or can1 to work on the Xavier…
But i am not having much luck at all…
I have known working (with TX2) transceivers installed on can0 and can1 and connected them both on the same bus.
(two of these: https://www.amazon.com/gp/product/B077XBZQT3)
Then, I followed these steps to setup the canbus and load modules.
when using “loopback” mode to test, everything works fine, but when I try to actually send data, if never arrives on the other side…
dmesg reports the following errors…
you can see modules load and bus comes online, but as soon as i send a message on either bus, it dies…
any suggestions ??
648.493671] can: controller area network core (rev 20120528 abi 9)
[ 648.494955] NET: Registered protocol family 29
[ 678.319375] can: raw protocol (rev 20120528)
[ 682.462353] can: broadcast manager protocol (rev 20161123 t)
[ 686.336950] can: netlink gateway (rev 20130117) max_hops=1
[ 809.226011] mttcan c310000.mttcan can0: Bitrate set
[ 812.239364] mttcan c320000.mttcan can1: Bitrate set
[ 821.599396] mttcan_controller_config: ctrlmode 0
[ 821.599424] mttcan c310000.mttcan can0: Bitrate set
[ 822.699557] mttcan_controller_config: ctrlmode 0
[ 822.699597] mttcan c320000.mttcan can1: Bitrate set
[ 867.233334] mttcan c320000.mttcan can1: entered error warning state
[ 867.233574] mttcan c320000.mttcan can1: entered error passive state
[ 867.234914] mttcan c320000.mttcan can1: entered bus off state
[ 892.801409] mttcan c310000.mttcan can0: entered error warning state
[ 892.801628] mttcan c310000.mttcan can0: entered error passive state
[ 892.803095] mttcan c310000.mttcan can0: entered bus off state
For some additional info…
I ran this:
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458
sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 250000 dbitrate 2000000 berr-reporting on fd on
sudo ip link set can1 type can bitrate 250000 dbitrate 2000000 berr-reporting on fd on
sudo ip link set up can0
sudo ip link set up can1
cansend can1 5A1#1122334455667788
and then got this:
[ 66.575790] can: controller area network core (rev 20120528 abi 9)
[ 66.576996] NET: Registered protocol family 29
[ 66.609030] can: raw protocol (rev 20120528)
[ 66.662468] mttcan c310000.mttcan can0: Bitrate set
[ 66.690294] mttcan c320000.mttcan can1: Bitrate set
[ 66.715430] mttcan_controller_config: ctrlmode 30
[ 66.715494] mttcan c310000.mttcan can0: Bitrate set
[ 66.740595] mttcan_controller_config: ctrlmode 30
[ 66.740634] mttcan c320000.mttcan can1: Bitrate set
[ 118.278649] mttcan c320000.mttcan can1: Bit0 Error Detected
[ 118.278873] mttcan c320000.mttcan can1: IR 0x8010000 PSR 0x71d
[ 118.279046] mttcan c320000.mttcan can1: entered error warning state
[ 118.279235] mttcan c320000.mttcan can1: entered error passive state
[ 118.279372] mttcan c320000.mttcan can1: Bit0 Error Detected
[ 118.279503] mttcan c320000.mttcan can1: IR 0x9800000 PSR 0x77d
[ 118.279654] mttcan c320000.mttcan can1: Bit0 Error Detected
[ 118.279776] mttcan c320000.mttcan can1: IR 0x8000000 PSR 0x77d
[ 118.279941] mttcan c320000.mttcan can1: Bit0 Error Detected
[ 118.280086] mttcan c320000.mttcan can1: IR 0x8000000 PSR 0x77d
[ 118.280271] mttcan c320000.mttcan can1: entered bus off state
[ 118.280416] mttcan c320000.mttcan can1: Bit0 Error Detected
Super weirdness…
When I was running can0 and can1 on the same bus, i was getting these errors… but the second i installed a different node on the bus that listens for messages, boom! it works…
so, you MUST have another listening (ack) node on the network before these errors will go away… and once you’ve had the errors, you pretty much need to reboot or reload the drivers…
I also had to re-set the registers after every boot…
here is a pic from the scope showing 3 messages
And double checked my app’s timing settings, its set to 25ms delay between message 3 msg burst…

and BOOM! pretty much spot on!