Probable reasons for CAN bus not getting read by Xavier

Hi,

I am using CAN0 to get the sensor values from 4 LiDAR sensors. Till now, everything works as expected. I have set the baudrate of the CAN0 to MAX i.e., 1MHz.

Now, when I add 2 more similar sensors to the same bus, I do not get their value in candump. I have tested them to be transmitting values using a CAN logger on Windows.

I have gone through the candump pages and tried passing arguments like candump -d to monitor dropped CAN frames but to no fruition.

What could be the possible reasons for it ?

Hi pradan,
You said when 2 sensors are connected, it works. When 2 more connected, it stopped working.
Did you disconnect them again to check if remaining 2 are still working?
Also, please share CAN stats:
$ ip -d -s link show can0
This command will show the bus status.

Thanks,
Shubhi

The 2 lidars work the same irrespective of me adding/removing the additional Lidars. I have verified that. This is what makes the case so peculiar.
I will share the output soon.
Thanks.

@shgarg This is the log

corona@corona-desktop:/mnt/nvme0n1p1$ ip -d -s link show can0
8: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 10
    link/can  promiscuity 0 
    can state ERROR-PASSIVE (berr-counter tx 0 rx 127) restart-ms 0 
	  bitrate 250000 sample-point 0.875 
	  tq 20 prop-seg 87 phase-seg1 87 phase-seg2 25 sjw 1
	  mttcan: tseg1 2..255 tseg2 0..127 sjw 1..127 brp 1..511 brp-inc 1
	  mttcan: dtseg1 1..31 dtseg2 0..15 dsjw 1..15 dbrp 1..15 dbrp-inc 1
	  clock 50000000
	  re-started bus-errors arbit-lost error-warn error-pass bus-off
	  0          0          0          1          2694       0         numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    RX: bytes  packets  errors  dropped overrun mcast   
    53776      8057     0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    0          0        0       0       0       0    

Hi pradan,
Firstly you said, you have set baudrate as 1Mbps.
From can stats logs, it is 250kbps. It should not be the issue of lesser baudrate but I would like you to try to increase baudrate.
Also, state became error-passive since RX error counter = 127 means no RX error packets received but there are errors while Receiving messages.
Do you see any error prints in dmesg logs?
It will help to debug. You can increase kernel log level to get all the kernel logs.

Thanks,
Shubhi

I set the baudrate to 1MHz and now, no data can be seen using candump can0. I do not understand why. The dmesg | grep "mttcan" gives


[   84.904588] net can0: mttcan device registered (regs=ffffff8008007000, irq=67)
[   84.909624] net can1: mttcan device registered (regs=ffffff800800d000, irq=68)
[   84.941814] mttcan c310000.mttcan can0: Bitrate set
[   84.970788] mttcan c320000.mttcan can1: Bitrate set
[   84.996820] mttcan c310000.mttcan can0: Bitrate set
[   85.021977] mttcan c320000.mttcan can1: Bitrate set
[   85.048346] mttcan_controller_config: ctrlmode 0
[   85.048386] mttcan c310000.mttcan can0: Bitrate set
[   85.074152] mttcan_controller_config: ctrlmode 0
[   85.074185] mttcan c320000.mttcan can1: Bitrate set
[   85.097547] mttcan c310000.mttcan can0: entered error warning state
[   85.098272] mttcan c310000.mttcan can0: entered error passive state
[   85.192085] mttcan c310000.mttcan can0: entered error passive state
[   85.392835] mttcan c310000.mttcan can0: entered error passive state
[   85.591398] mttcan c310000.mttcan can0: entered error passive state
[   85.789435] mttcan c310000.mttcan can0: entered error passive state
[   85.927514] mttcan c320000.mttcan can1: entered error warning state
[   85.928910] mttcan c320000.mttcan can1: entered error passive state
[   85.987713] mttcan c310000.mttcan can0: entered error passive state
[   86.185960] mttcan c310000.mttcan can0: entered error passive state
[   86.384219] mttcan c310000.mttcan can0: entered error passive state
[   86.588890] mttcan c310000.mttcan can0: entered error passive state
[   87.009060] mttcan c310000.mttcan can0: entered error passive state
[   87.208061] mttcan c310000.mttcan can0: entered error passive state
[   87.407323] mttcan c310000.mttcan can0: entered error passive state
[   87.606703] mttcan c310000.mttcan can0: entered error passive state
[   87.871040] mttcan c310000.mttcan can0: entered error passive state
[   88.069661] mttcan c310000.mttcan can0: entered error passive state
[   88.267923] mttcan c310000.mttcan can0: entered error passive state
[   88.466199] mttcan c310000.mttcan can0: entered error passive state
[   88.664083] mttcan c310000.mttcan can0: entered error passive state
[   88.862341] mttcan c310000.mttcan can0: entered error passive state
[   89.060579] mttcan c310000.mttcan can0: entered error passive state
[   89.259215] mttcan c310000.mttcan can0: entered error passive state
[   89.457090] mttcan c310000.mttcan can0: entered error passive state
[   89.655727] mttcan c310000.mttcan can0: entered error passive state
[   89.853711] mttcan c310000.mttcan can0: entered error passive state
[   90.080832] mttcan c310000.mttcan can0: entered error passive state
[   90.280409] mttcan c310000.mttcan can0: entered error passive state
[   90.479995] mttcan c310000.mttcan can0: entered error passive state
[   90.679548] mttcan c310000.mttcan can0: entered error passive state
[   90.880332] mttcan c310000.mttcan can0: entered error passive state
[   91.287459] mttcan c310000.mttcan can0: entered error passive state
[   91.539000] mttcan c310000.mttcan can0: entered error passive state
[   91.737625] mttcan c310000.mttcan can0: entered error passive state
[   91.935878] mttcan c310000.mttcan can0: entered error passive state
[   92.134156] mttcan c310000.mttcan can0: entered error passive state
[   92.332060] mttcan c310000.mttcan can0: entered error passive state
[   92.530703] mttcan c310000.mttcan can0: entered error passive state
[   92.728626] mttcan c310000.mttcan can0: entered error passive state
[   92.927285] mttcan c310000.mttcan can0: entered error passive state
[   93.125548] mttcan c310000.mttcan can0: entered error passive state
[   93.373304] mttcan c310000.mttcan can0: entered error passive state
[   93.572859] mttcan c310000.mttcan can0: entered error passive state
[   93.772411] mttcan c310000.mttcan can0: entered error passive state
[   93.972583] mttcan c310000.mttcan can0: entered error passive state
[   94.171490] mttcan c310000.mttcan can0: entered error passive state
[   94.371037] mttcan c310000.mttcan can0: entered error passive state
[   94.570563] mttcan c310000.mttcan can0: entered error passive state
[   94.770661] mttcan c310000.mttcan can0: entered error passive state
[   94.969080] mttcan c310000.mttcan can0: entered error passive state
[   95.168116] mttcan c310000.mttcan can0: entered error passive state
[   95.405584] mttcan c310000.mttcan can0: entered error passive state
[   95.603823] mttcan c310000.mttcan can0: entered error passive state
[   95.801730] mttcan c310000.mttcan can0: entered error passive state
[   96.000022] mttcan c310000.mttcan can0: entered error passive state
[   96.198663] mttcan c310000.mttcan can0: entered error passive state
[   96.396596] mttcan c310000.mttcan can0: entered error passive state
[   96.595299] mttcan c310000.mttcan can0: entered error passive state
[   96.596280] mttcan c310000.mttcan can0: entered error passive state
[   96.859638] mttcan c310000.mttcan can0: entered error passive state
[   97.058911] mttcan c310000.mttcan can0: entered error passive state
[   97.257924] mttcan c310000.mttcan can0: entered error passive state
[   97.456647] mttcan c310000.mttcan can0: entered error passive state
[   97.655654] mttcan c310000.mttcan can0: entered error passive state
[   97.854631] mttcan c310000.mttcan can0: entered error passive state
[   98.053605] mttcan c310000.mttcan can0: entered error passive state
[   98.252608] mttcan c310000.mttcan can0: entered error passive state
[   98.451906] mttcan c310000.mttcan can0: entered error passive state
[   98.650558] mttcan c310000.mttcan can0: entered error passive state
[   98.849546] mttcan c310000.mttcan can0: entered error passive state
[   99.048489] mttcan c310000.mttcan can0: entered error passive state
[   99.259271] mttcan c310000.mttcan can0: entered error passive state
[   99.458802] mttcan c310000.mttcan can0: entered error passive state
[   99.667824] mttcan c310000.mttcan can0: entered error passive state
[   99.866094] mttcan c310000.mttcan can0: entered error passive state
[  100.142906] mttcan c310000.mttcan can0: entered error passive state
[  100.341876] mttcan c310000.mttcan can0: entered error passive state
[  100.540884] mttcan c310000.mttcan can0: entered error passive state
[  100.739848] mttcan c310000.mttcan can0: entered error passive state
[  100.938819] mttcan c310000.mttcan can0: entered error passive state
[  101.137814] mttcan c310000.mttcan can0: entered error passive state
[  101.336781] mttcan c310000.mttcan can0: entered error passive state
[  101.535780] mttcan c310000.mttcan can0: entered error passive state
[  101.734773] mttcan c310000.mttcan can0: entered error passive state
[  101.933751] mttcan c310000.mttcan can0: entered error passive state
[  102.132749] mttcan c310000.mttcan can0: entered error passive state
[  102.331686] mttcan c310000.mttcan can0: entered error passive state
[  102.530664] mttcan c310000.mttcan can0: entered error passive state
[  102.729663] mttcan c310000.mttcan can0: entered error passive state
[  102.929349] mttcan c310000.mttcan can0: entered error passive state
[  103.138318] mttcan c310000.mttcan can0: entered error passive state
[  103.349788] mttcan c310000.mttcan can0: entered error passive state
[  103.549331] mttcan c310000.mttcan can0: entered error passive state
[  103.750126] mttcan c310000.mttcan can0: entered error passive state
[  104.023493] mttcan c310000.mttcan can0: entered error passive state
[  104.222209] mttcan c310000.mttcan can0: entered error passive state
[  104.421242] mttcan c310000.mttcan can0: entered error passive state
[  104.620203] mttcan c310000.mttcan can0: entered error passive state
[  104.819199] mttcan c310000.mttcan can0: entered error passive state
[  105.018222] mttcan c310000.mttcan can0: entered error passive state
[  105.217475] mttcan c310000.mttcan can0: entered error passive state
[  105.416460] mttcan c310000.mttcan can0: entered error passive state
[  105.615169] mttcan c310000.mttcan can0: entered error passive state
[  105.814185] mttcan c310000.mttcan can0: entered error passive state
[  106.013160] mttcan c310000.mttcan can0: entered error passive state
[  106.211495] mttcan c310000.mttcan can0: entered error passive state
[  106.410158] mttcan c310000.mttcan can0: entered error passive state
[  106.608060] mttcan c310000.mttcan can0: entered error passive state
[  106.842371] mttcan c310000.mttcan can0: entered error passive state
[  107.041346] mttcan c310000.mttcan can0: entered error passive state
[  107.242111] mttcan c310000.mttcan can0: entered error passive state
[  107.440373] mttcan c310000.mttcan can0: entered error passive state
[  107.640538] mttcan c310000.mttcan can0: entered error passive state
[  107.840050] mttcan c310000.mttcan can0: entered error passive state
[  108.038946] mttcan c310000.mttcan can0: entered error passive state
[  108.293406] mttcan c310000.mttcan can0: entered error passive state
[  108.491670] mttcan c310000.mttcan can0: entered error passive state
[  108.689937] mttcan c310000.mttcan can0: entered error passive state
[  108.888172] mttcan c310000.mttcan can0: entered error passive state
[  109.086439] mttcan c310000.mttcan can0: entered error passive state
[  109.284692] mttcan c310000.mttcan can0: entered error passive state
[  109.483310] mttcan c310000.mttcan can0: entered error passive state
[  109.681575] mttcan c310000.mttcan can0: entered error passive state
[  109.879887] mttcan c310000.mttcan can0: entered error passive state
[  110.092228] mttcan c310000.mttcan can0: entered error passive state
[  110.291200] mttcan c310000.mttcan can0: entered error passive state
[  110.490167] mttcan c310000.mttcan can0: entered error passive state
[  110.733374] mttcan c310000.mttcan can0: entered error passive state
[  110.932282] mttcan c310000.mttcan can0: entered error passive state
[  111.131770] mttcan c310000.mttcan can0: entered error passive state
[  111.331266] mttcan c310000.mttcan can0: entered error passive state
[  111.531979] mttcan c310000.mttcan can0: entered error passive state
[  111.736963] mttcan c310000.mttcan can0: entered error passive state
[  111.929707] mttcan c310000.mttcan can0: entered error passive state
[  112.129811] mttcan c310000.mttcan can0: entered error passive state
[  112.329897] mttcan c310000.mttcan can0: entered error passive state
[  112.556430] mttcan c310000.mttcan can0: entered error passive state
[  112.755034] mttcan c310000.mttcan can0: entered error passive state
[  112.953361] mttcan c310000.mttcan can0: entered error passive state
[  113.151638] mttcan c310000.mttcan can0: entered error passive state
[  113.349966] mttcan c310000.mttcan can0: entered error passive state
[  113.574580] mttcan c310000.mttcan can0: entered error passive state
[  113.773265] mttcan c310000.mttcan can0: entered error passive state
[  113.972226] mttcan c310000.mttcan can0: entered error passive state
[  114.171185] mttcan c310000.mttcan can0: entered error passive state
[  114.370393] mttcan c310000.mttcan can0: entered error passive state
[  114.623024] mttcan c310000.mttcan can0: entered error passive state
[  114.822522] mttcan c310000.mttcan can0: entered error passive state
[  115.023238] mttcan c310000.mttcan can0: entered error passive state
[  115.221530] mttcan c310000.mttcan can0: entered error passive state
[  115.421667] mttcan c310000.mttcan can0: entered error passive state
[  115.621283] mttcan c310000.mttcan can0: entered error passive state
[  115.820147] mttcan c310000.mttcan can0: entered error passive state
[  116.019686] mttcan c310000.mttcan can0: entered error passive state
[  116.219781] mttcan c310000.mttcan can0: entered error passive state
[  116.418767] mttcan c310000.mttcan can0: entered error passive state
[  116.619599] mttcan c310000.mttcan can0: entered error passive state
[  116.857486] mttcan c310000.mttcan can0: entered error passive state
[  117.056483] mttcan c310000.mttcan can0: entered error passive state
[  117.255487] mttcan c310000.mttcan can0: entered error passive state
[  117.454464] mttcan c310000.mttcan can0: entered error passive state
[  117.653733] mttcan c310000.mttcan can0: entered error passive state
[  117.852438] mttcan c310000.mttcan can0: entered error passive state
[  118.051431] mttcan c310000.mttcan can0: entered error passive state
[  118.306388] mttcan c310000.mttcan can0: entered error passive state
[  118.504283] mttcan c310000.mttcan can0: entered error passive state
[  118.702545] mttcan c310000.mttcan can0: entered error passive state
[  118.900805] mttcan c310000.mttcan can0: entered error passive state
[  119.099449] mttcan c310000.mttcan can0: entered error passive state
[  119.297713] mttcan c310000.mttcan can0: entered error passive state
[  119.495946] mttcan c310000.mttcan can0: entered error passive state
[  119.694231] mttcan c310000.mttcan can0: entered error passive state
[  119.892505] mttcan c310000.mttcan can0: entered error passive state
[  120.090853] mttcan c310000.mttcan can0: entered error passive state
[  120.310430] mttcan c310000.mttcan can0: entered error passive state
[  120.509332] mttcan c310000.mttcan can0: entered error passive state
[  120.710100] mttcan c310000.mttcan can0: entered error passive state
[  120.909102] mttcan c310000.mttcan can0: entered error passive state
[  121.135630] mttcan c310000.mttcan can0: entered error passive state
[  121.334609] mttcan c310000.mttcan can0: entered error passive state
[  121.533606] mttcan c310000.mttcan can0: entered error passive state
[  121.732881] mttcan c310000.mttcan can0: entered error passive state
[  121.931593] mttcan c310000.mttcan can0: entered error passive state
[  122.172110] mttcan c310000.mttcan can0: entered error passive state
[  122.370682] mttcan c310000.mttcan can0: entered error passive state
[  122.568966] mttcan c310000.mttcan can0: entered error passive state
[  122.767237] mttcan c310000.mttcan can0: entered error passive state
[  122.965170] mttcan c310000.mttcan can0: entered error passive state
[  123.163798] mttcan c310000.mttcan can0: entered error passive state
[  123.361689] mttcan c310000.mttcan can0: entered error passive state
[  123.601735] mttcan c310000.mttcan can0: entered error passive state
[  123.801272] mttcan c310000.mttcan can0: entered error passive state
[  124.000792] mttcan c310000.mttcan can0: entered error passive state
[  124.200317] mttcan c310000.mttcan can0: entered error passive state
[  124.399878] mttcan c310000.mttcan can0: entered error passive state
[  124.599345] mttcan c310000.mttcan can0: entered error passive state
[  124.798947] mttcan c310000.mttcan can0: entered error passive state
[  124.999062] mttcan c310000.mttcan can0: entered error passive state
[  125.198848] mttcan c310000.mttcan can0: entered error passive state
[  125.413582] mttcan c310000.mttcan can0: entered error passive state
[  125.612916] mttcan c310000.mttcan can0: entered error passive state
[  125.811652] mttcan c310000.mttcan can0: entered error passive state
[  126.038239] mttcan c310000.mttcan can0: entered error passive state
[  126.236480] mttcan c310000.mttcan can0: entered error passive state
[  126.435103] mttcan c310000.mttcan can0: entered error passive state
[  126.633012] mttcan c310000.mttcan can0: entered error passive state
[  126.894340] mttcan c310000.mttcan can0: entered error passive state
[  127.093844] mttcan c310000.mttcan can0: entered error passive state
[  127.293427] mttcan c310000.mttcan can0: entered error passive state
[  127.493096] mttcan c310000.mttcan can0: entered error passive state
[  127.692627] mttcan c310000.mttcan can0: entered error passive state
[  127.892288] mttcan c310000.mttcan can0: entered error passive state
[  128.091798] mttcan c310000.mttcan can0: entered error passive state
[  128.291398] mttcan c310000.mttcan can0: entered error passive state
[  128.491050] mttcan c310000.mttcan can0: entered error passive state
[  128.690532] mttcan c310000.mttcan can0: entered error passive state
[  128.890153] mttcan c310000.mttcan can0: entered error passive state
[  129.089794] mttcan c310000.mttcan can0: entered error passive state
[  129.289359] mttcan c310000.mttcan can0: entered error passive state
[  129.489792] mttcan c310000.mttcan can0: entered error passive state
[  129.905171] mttcan c310000.mttcan can0: entered error passive state
[  130.103118] mttcan c310000.mttcan can0: entered error passive state
[  130.387043] mttcan c310000.mttcan can0: entered error passive state
[  130.586636] mttcan c310000.mttcan can0: entered error passive state
[  130.786160] mttcan c310000.mttcan can0: entered error passive state
[  130.985223] mttcan c310000.mttcan can0: entered error passive state
[  131.184538] mttcan c310000.mttcan can0: entered error passive state
[  131.383256] mttcan c310000.mttcan can0: entered error passive state
[  131.582511] mttcan c310000.mttcan can0: entered error passive state
[  131.781277] mttcan c310000.mttcan can0: entered error passive state
[  131.980233] mttcan c310000.mttcan can0: entered error passive state
[  132.179218] mttcan c310000.mttcan can0: entered error passive state
[  132.378197] mttcan c310000.mttcan can0: entered error passive state
[  141.652942] mttcan c310000.mttcan can0: Bitrate set
[  425.121601] mttcan c310000.mttcan can0: Bitrate set
[  425.144245] mttcan c320000.mttcan can1: Bitrate set
[  425.166287] mttcan c310000.mttcan can0: Bitrate set
[  425.188154] mttcan c320000.mttcan can1: Bitrate set
[  425.350992] mttcan c310000.mttcan can0: entered error passive state
[  425.551131] mttcan c310000.mttcan can0: entered error passive state
[  425.750124] mttcan c310000.mttcan can0: entered error passive state
[  425.949688] mttcan c310000.mttcan can0: entered error passive state
[  426.149209] mttcan c310000.mttcan can0: entered error passive state
[  426.348863] mttcan c310000.mttcan can0: entered error passive state
[  426.548506] mttcan c310000.mttcan can0: entered error passive state
[  426.956705] mttcan c310000.mttcan can0: entered error passive state
[  427.246953] mttcan c310000.mttcan can0: entered error passive state
[  427.445662] mttcan c310000.mttcan can0: entered error passive state
[  427.643987] mttcan c310000.mttcan can0: entered error passive state
[  427.842270] mttcan c310000.mttcan can0: entered error passive state
[  428.040553] mttcan c310000.mttcan can0: entered error passive state
[  428.238848] mttcan c310000.mttcan can0: entered error passive state
[  428.437146] mttcan c310000.mttcan can0: entered error passive state
[  428.635086] mttcan c310000.mttcan can0: entered error passive state
[  428.833723] mttcan c310000.mttcan can0: entered error passive state
[  429.032027] mttcan c310000.mttcan can0: entered error passive state
[  429.230003] mttcan c310000.mttcan can0: entered error passive state
[  429.428635] mttcan c310000.mttcan can0: entered error passive state
[  429.626940] mttcan c310000.mttcan can0: entered error passive state
[  429.825304] mttcan c310000.mttcan can0: entered error passive state
[  430.023505] mttcan c310000.mttcan can0: entered error passive state
[  430.240068] mttcan c310000.mttcan can0: entered error passive state
[  430.439021] mttcan c310000.mttcan can0: entered error passive state
[  430.638002] mttcan c310000.mttcan can0: entered error passive state
[  431.114062] mttcan c310000.mttcan can0: entered error passive state
[  431.312030] mttcan c310000.mttcan can0: entered error passive state
[  431.510699] mttcan c310000.mttcan can0: entered error passive state
[  431.709008] mttcan c310000.mttcan can0: entered error passive state
[  431.906933] mttcan c310000.mttcan can0: entered error passive state
[  432.105185] mttcan c310000.mttcan can0: entered error passive state
[  432.303442] mttcan c310000.mttcan can0: entered error passive state
[  432.502088] mttcan c310000.mttcan can0: entered error passive state
[  432.700327] mttcan c310000.mttcan can0: entered error passive state
[  432.898654] mttcan c310000.mttcan can0: entered error passive state
[  433.096975] mttcan c310000.mttcan can0: entered error passive state
[  433.295344] mttcan c310000.mttcan can0: entered error passive state
[  433.722539] mttcan c310000.mttcan can0: entered error passive state
[  433.921250] mttcan c310000.mttcan can0: entered error passive state
[  434.120224] mttcan c310000.mttcan can0: entered error passive state
[  434.319214] mttcan c310000.mttcan can0: entered error passive state
[  434.518190] mttcan c310000.mttcan can0: entered error passive state
[  434.732166] mttcan c310000.mttcan can0: entered error passive state
[  434.931736] mttcan c310000.mttcan can0: entered error passive state
[  435.130101] mttcan c310000.mttcan can0: entered error passive state
[  435.377466] mttcan c310000.mttcan can0: entered error passive state
[  435.575763] mttcan c310000.mttcan can0: entered error passive state
[  435.774064] mttcan c310000.mttcan can0: entered error passive state
[  435.972008] mttcan c310000.mttcan can0: entered error passive state
[  436.170286] mttcan c310000.mttcan can0: entered error passive state

Hi pradan,

Something went wrong with the bus.
Can you reset the CAN, make them down on network and bringup again. Also, check if connections become loose (one of the possible case).
Also, let me know how are you setting rate.

Thanks,
Shubhi

I have tried bringing it down and up numerous times while chaning the baud rate.

 $ sudo ifconfig can0 down
 $ sudo ip link set can0 up type can bitrate 250000

I noticed that the can bus would not respond to any other data rate other that 250Mbps.

Oh it’s not a limitation of Jetson.
May be transceiver does not support it. Please check.

Fixed it here

Jetson was not receiving frames in the expected format and hence rejecting them. In the above mentioned answer, I mentioned how to ask Jetson to accept all frames irrespective of their format errors.