CAN bus pass loopback test, but i can't get any can bus signal on o-scope or pcan dongle

Hello everyone,

I been having issues with my CAN bus setup. I got it successfully doing loopback test. But when i reboot and connected recommend waveshare CAN transceiver with it and connect the other end to the peak-can dongle and i run

cansend can0 123#abcdabcd

in terminal, it shows nothing on my pcan explorer. After that i tried to connect that into an Oscilloscope. It shows nothing as well. Here is the OS and hardware info that i got.

Hardware: nvidia Jetson Orin Nano Dev kit
OS: jetpack 5.1.2
CAN transceiver: waveshare SH65HVD230

Does anyone running into the same issue

Thank you

Hi tchen2,

What’s your Jetpack version in use?

Could you share the block diagram of your connections?

How do you setup your peak-can dongle? (like bitrate…etc)
Please share the full steps how you setup CAN and also the result of following command on both sides.

$ sudo ip -d -s link show can0

Hello Kevin,

I have solder the header on to the orin nano dev kit carrier board. the set of header that is 3.3v GND CAN RX and CAN TX and i connect the waveshare board to the 4 header, Like 3.3v to 3.3v, GND to GND, CAN RX to CAN RX, CAN TX to CAN TX. And on the other end of the waveshare broad i connect CANH and CANL to the DB9 connect that will mate to the PCAN dongle.

I am currently not in the office right now. So i can’t really get the hardware info as needed, I will see if i can get remote access into my hardware and get the info as needed. But i know for sure i am running on jetpack 5.1.2.

Thank you,
Tian Chen

Hello Kevin,

I SSH into my jetson and here is the command that i use to setup the CAN communication on jetson.

tian@jetson:~$ sudo busybox devmem 0x0c303018 w 0xc458
tian@jetson:~$ sudo busybox devmem 0x0c303010 w 0x400
tian@jetson:~$ sudo busybox devmem 0x0c303010 w 0xc400
tian@jetson:~$ sudo modprobe can
tian@jetson:~$ sudo modprobe can_raw
tian@jetson:~$ sudo modprobe mttcan
tian@jetson:~$ sudo ip link set can0 up type can bitrate 1000000

and here is what happen when i use the command you provide.

tian@jetson:~$ sudo ip -d -s link show can0
9: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 1000000 sample-point 0.740
tq 20 prop-seg 18 phase-seg1 18 phase-seg2 13 sjw 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
0 0 0 0 0 0 numtx queues 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
0 0 0 0 0 0

Please let me know if you need further information.

Thank you
Tian Chen

CAN requires

  1. proper 120 ohm termination on each end of the bus between CAN_H and CAN_L
  2. twisted pair cabling of CAN_H/CAN_L
  3. GND connected between all devices on the bus
  4. at best at least 0.5m bus length between devices.

Do you have all of the requirements?

Yes, I do have all of them except for the GND connection between all devices on bus. I thought since is an differential signal between CANH and CANL gnd connection is not necessary. But i will give that a try as well.

Please share the diagram for me to better understanding with your setup.

Or do you have 2 Orin Nano devkit with the same setup to connect their CAN and verify?

From your result of the command, it seems the result is expected.

Could you add sjw 4 in this command to verify?

$ sudo ip link set can0 up type can bitrate 1000000 sjw 4

The reason why GND needs to be connected is to bring all devices to the same reference voltage.
Yes, if CAN_H=4V and CAN_L=2V, dV=2V, which means a logic 0.
Also, if CAN_H=44V and CAN_L=42V, then dV would be also 2V. This would happen if GND of one device and GND of another device have a difference of 40V. But the differential amplifier gets overloaded at such high voltages and won’t work any more. This is called common mode range.

1 Like

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