We have observed that the CAN communication fails sporadically after reboot.
Reloading driver and re-configuring CAN (bitrate…) does not help.
Up to now we have restarted the Jetson once more to solve the issue.
Now we have analyzed the issue and found that the clock of CAN is wrong.
CAN is configured with 500k and “ip -details -statistics link show can0” reflects the 500k setting.
But in the error case CAN is working with about 450k only!
As written above this is not fixed reloading kernel modules with modprobe (can, can_dev, can_raw, mttcan).
As a workaround we set the bitrate to 555k in the error case. The statistics shows 555555 baud.
In that case the real clock is 500k on CAN bus and the communication works with that.
We noticed that “loopback on” does not receive messages on the CAN bus anymore (even with candump, we considered using it to avoid error passive state). The option “restart” is unfortunately not supported by the driver to get rid of error passive state, too. The option “presume-ack” is also not supported.
If you need scope screenshots please tell me.
Thank you for your help and best regards
BTW: We use Jetpack 4.2.1 and have seen that there is no fix in Jetpack 4.2.2 in that area.