Cant send TX CAN messages with MTTCAN to CAN BUS (Orin NX & J401)

Hi. Using J401 carrier with Orin NX 8GB, flashed with jetpack 6.0 as described here: J401 carrier Board Flash JetPack | Seeed Studio Wiki
Trying to use CAN, followed documentation: Controller Area Network (CAN) — Jetson Linux Developer Guide documentation

Running through some issues:

The board can send and receive messages and send with loopback ON, however, when sending to a CAN Bus (loopback OFF), the messages are not delivered, so the buffer gets full quickly (txqueuelen).

We are also validating using an oscilloscope, and what we discovered is that TX is not even getting outside of the board.

The commands we are running is:

$ sudo busybox devmem 0x0c303018 w 0xc458
$ sudo busybox devmem 0x0c303010 w 0xc400
$ sudo modprobe can
$ sudo modprobe can_raw
$ sudo modprobe mttcan
$ sudo ip link set can0 up type can bitrate 500000 sjw 4 restart-ms 1000

Details:

$ sudo ip -d -s link show can0
2: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/can  promiscuity 0 minmtu 0 maxmtu 0 
    can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 1000 
      bitrate 500000 sample-point 0.870
      tq 20 prop-seg 43 phase-seg1 43 phase-seg2 13 sjw 4 brp 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
      1          0          0          1          1          1         numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 
    RX:  bytes packets errors dropped  missed   mcast           
         28797    3914      0       0       0       0 
    TX:  bytes packets errors dropped carrier collsns           
             0       0      0       0       0       0 

A transceiver is being used (if it wasn’t, we could not even receive the CAN messages, which are valid)

TLDR: Receiving messages from CAN BUS works, unable to send messages to CAN BUS (cansend) and buffer gets full quickly.

Is this a carrier issue? Jetpack issue? Orin issue? CAN BUS issue?

Looking forwards for an answer.

Hi robyawyx,

It seems you are using custom carrier board from Seeed Studio.

Are you using JP6.0DP or JP6.0GA?

Can you share the block diagram of your connection including the CAN transceiver, CAN device… you used?

The problem was in my hardware setup/connections. Everything fine now.

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