No CAN bus data output from Orin NX

Hi,
We are using an Orin NX SoM hosted on a custom carrier board with JP6.1.
We’ve connected a probe to Orin’s TX pin and followed the dev guide for CAN communication:
https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/HR/ControllerAreaNetworkCan.html
We don’t see any output data.

We tried to perform the loopback test. The test indicates that the messages are being sent and received by can0 and we can see the prints of candump can0 but still, not output data seen by the probe.

We didn’t short any wires, just followed the loopback steps in the guide order to validate the CAN output data.

our current dt and pinmux:
tegra234-mb1-bct-pinmux-p3767-dp-a03.txt (65.8 KB)

dt.txt (334.9 KB)

Hi bsp_dev,

What do you mean about “probe”? Is that a device to monitor CAN data?

The steps for loopback test from the guide is for internal loopback test so that you don’t need to wire TX/RX externally.

If you want to perform CAN communication, you can also refer to Jetson/L4T/peripheral/ - eLinux.org for verfication.
You may need to get 2 CAN transceivers for both CAN interfaces.

Thanks that worked.
Last question:
Can I modify some config file prior to flashing in order to set the can0_din and can0_dout data instead of using busybox devmem to set them manually?

Yes, busybox devmem is only valid until shutdown.
You can also refer to Generating the Pinmux dtsi Files to download the pinmux spreadsheet and configure these 2 pins for CAN use case.

How can I edited these regs initial value in the PINMUX spreadsheet?

I can modify their direction and other parameters but not the initial reg value

What do you mean about “initial reg value”?
What’s the expected value you want to configure?

You can just configure it as following in pinmux spreadsheet and it should be fine for CAN usage.
image

I mean that in order for the canbus to work i have to manually write the value 0xc458 to the register since the default value is different.

This operation is used to configure the pinmux register.

To configure the default register value, you can just use pinmux spreadsheet to generate pinmux/gpio dtsi before flash.

according to TRM in order to get value of 0xc400 in dout i need to configure it as pull up. I tried doing so but it result with default value of 0xc0000

Is there an example of selecting suitable settings for the orin nx can0 reg vals from spreadsheet?

It seems default register value for CAN0_DOUT is 0xC400.

Please share your pinmux dtsi for us to check.

It is invalid that Int-PU is only valid for input pins.

I can’t upload it directly. he antivirus blocks it (even if archived). Maybe you can use the default one and tell me how to modify it in order to get the required can bus reg values for orin nx?

Sorry that I’m not clear about this. Do you mean that there’s the issue about using pinmux spreadsheet to generate pinmux/gpio dtsi on your host?

For Orin NX, I think the pins of CAN header has been configured for CAN usage by default.

  1. You asked me to upload my pinmux spredsheet for you to view. I tried but can’t since the website is blocking it.
  2. I think that if you use the default one, the default regs values are different than expected for canbus use.

You can just screenshot for the part you modified. (i.e. CAN0_DOUT, CAN0_DIN).

my default result on Orin Nano devkit with JP6.1:

$ sudo busybox devmem 0x0c303018
0x0000C450
$ sudo busybox devmem 0x0c303010
0x0000C400

How about yours?

I think its different but I don’t mind modify it on startup. Thanks

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