The internal loop-back test works but not able to communicate with CAN bus when connected with transceiver. I’ve set the pmux pins and tried everything there is on the internet. I do not think mttcan module is enable but I can see it in lsmod. Any help to resolve this is appriciated
Hello,
Thanks for visiting the NVIDIA Developer forums! Your topic will be best served in the Jetson category.
I will move this post over for visibility.
Cheers,
Tom
Hi shrujanus,
Are you using the devkit or custom board for Orin Nano?
What’s the Jetpack version in use?
Please share the block diagram of your conenctions.
Please share the full dmesg and device tree for further check.
You can also run the following command to check its status in device tree instead.
$ cat /proc/device-tree/bus@0/mttcan@c310000/status
Hey Kevin,
Thank you for your reply,
- I am using the Devkit from Nvidia with Jetpack version 6.1.
2)
Basically I have CAN0 RX and TX connected to a transciever and from that transceiver we are connecting CAN L and CAN H to the Odrives
- cat /proc/device-tree/bus@0/mttcan@c310000/status → okay
It seems the configuration for mttcan is enabled in device tree.
Could you try using the following command to setup can0
instead?
$ sudo ip link set can0 up type can bitrate 100000 berr-reporting on restart-ms 1000
I’m curious about why do you have 2 mttcan interfaces available.
Are you using Orin Nano or AGX Orin?
Please also share the result of cat /etc/nv_boot_contorl.conf
and full dmesg for further check.
I am using the Nvidia AGX Orin with 2 CAN interfaces
dmesg.log (133.4 KB)
Okay, I’ve moved your topic to correct category for AGX Orin.
Sorry for the typo, please run the following command instead.
$ cat /etc/nv_boot_control.conf
[176618.737724] mttcan c310000.mttcan can0: Acknowledgement Error Detected
[176618.737732] mttcan c310000.mttcan can0: IR 0x8000000 PSR 0x77b
This error may be caused from wrong connection.
Could you refer to the connections and the setup in Jetson/L4T/peripheral/ - eLinux.org?
You should connect CAN transceiver on each CAN interface.
It seems you only connect CAN0
to CAN transceiver and left CAN-H/CAN-L disconnected.
Do you have another CAN transceiver for CAN1
?
You can refer to the connection like Jetson/L4T/peripheral/ - eLinux.org
Hey Kevin, My connections seem correct. In this image, I was probing the CAN bus so the module pins are left disconnected but the screw holes are connected to the OdriveCAN module. I am still getting the same error. Is there something I can do with recompiling the kernel modules?
Have you verified transmitting CAN data from can0 to can1 (which are both from internal mttcan)?
Are you using the same bitrate for both mttcan and your OdriveCAN module? (250k or 100k?)