linuxterminalbeagleboneblackcan-busbeagleboard

BBB CAN TX only works at loop-situation


I'm working on BeagleBone Black board to confirm the CAN communication between the BBB and another device.

sudo modprobe can
sudo modprobe can-dev
sudo modprobe can-raw

sudo ip link set can1 down
sudo ip link set can1 up type can bitrate 1000000 (loopback on)
sudo ifconfig can1 up

I do the BBB terminal settings like above.

As I check the BBB with ifconfig command & oscilloscope, I could see that BBB does transmit the can data when "loopback on" at ip link setting. (I use cansend or verified can tx code)

But when that loopback mode is off, it seems BBB does not transmit the can data because ifconfig shows zero tx count increase and I cannot see any signal at tx jumper cable with oscilloscope device.

+) "cat /proc/net/can/stats" command displays 'transmitted frames' increasing whether or not the 'loopback' option is on.

My BBB is updated to the latest image. Any help would be very welcome. Thank you.


Solution

  • I solved BBB CAN problem just by changing transceiver board into another one.

    Don't use cjmcu-230 CAN transceiver board. I use the one from Waveshare. https://www.waveshare.com/sn65hvd230-can-board.htm

    Both CAN transceiver board use same SN65HVD230 chip, but it seems that there is some ground pin circuit issue inside the cjmcu-230 board.

    Hope you don't waste your time if you have this issue.