CAN BUS 800 Mbps Issue on Xavier NX

Hi,
On our system, we are ussing Xavier NX with JetPack 4.6.1.
We are connecting the CAN BUS interface of our system to another maschine with a PCAN USB to CAN dongle

When sending frames from PCAN to our system at 800kbps , we saw that:
a. In our system terminal (“candump can0” command) - no frames were received.
b. In PCAN software frames are still being sent to the system but there is a message of “BUSOFF” (see picture attached)
c. After the message of “BUSOFF”, trying to return to normal operation, for example changing the bit rate, only to turn off and on the system, solved the issue.

Note:

  • At all other speeds (250kbps, 500kbps and 1Mbps) this issue was not seen.
  • The issue is only at the recive path at rate 800 mbps.
  1. do you familier with this failure?
  2. is there any work around to solve it?
    Regards,
    Yaniv.

Hi ymichaeli,
It could be possible that CAN parent clock is not able to set exactly 800kbps.
Can you check the clock rate set from:
$ ip -s -d link show can0
Let me know the results.

Hi,
This is the result:
root@nvidia-desktop:/home/nvidia# ip -s -d link show can0
4: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0
can <BERR-REPORTING,FD> state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 500000 sample-point 0.867
tq 29 prop-seg 29 phase-seg1 29 phase-seg2 9 sjw 1
mttcan: tseg1 2…255 tseg2 0…127 sjw 1…127 brp 1…511 brp-inc 1
dbitrate 2000000 dsample-point 0.705
dtq 29 dprop-seg 5 dphase-seg1 6 dphase-seg2 5 dsjw 1
mttcan: dtseg1 1…31 dtseg2 0…15 dsjw 1…15 dbrp 1…15 dbrp-inc 1
clock 34000000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 0 0 0 0 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
3256 814 0 0 0 0
root@nvidia-desktop:/home/nvidia#

hi ymichaeli,
Here clock rate is 34MHz.
To set bitrate: 800Kbps, 34Mhz/800kbps = 42.5 which is not an integer. So you will not be able to set proper 800kbps.

Understood.
Thank You for your help
Yaniv.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.