- ...
- base images
- SDK
- ...
- ...
- tools
- premade packages
How to use CAN#
Attention
sm2s-el requires CAN to be enabled in BIOS setup, see corresponding User Manual for SMARC module in question.
Enabling the CAN interface#
CAN interface must be configure properly and enabled before it can send and receive data.
Check if your CAN interface is available
ip link show CAN0
3: CAN0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN mode DEFAULT group default qlen 10
link/can
Set interface type and bit-rate for the interface
ip link set CAN0 type can bitrate 500000
Now interface can be enabled
ip link set CAN0 up
You can check if interface is up and running
ip link show CAN0
3: CAN0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can
Testing with can-utils#
Simple way to test if your CAN is working properly is to employ tools from
can-utils
package.
Use cansend
to send data to a given interface
cansend CAN0 '1234#AABBCCDD'
If everything is working properly message with ID 123
with data AABBCCDD
must
appear on CAN.
Use candump
in the same interface to listen to incoming messages in a given
interface
candump CAN0
CAN0 123 [4] AA BB CC DD
Troubleshooting#
Q: There is no CAN0/CAN1
interface in output of ip link show
Check if all the necessary kernel modules are loaded
For all SMARC modules
can
can_raw
can_dev
For sm2s-el
m_can
m_can_pci
For sm2s-imx8plus
flexcan
e.g. lsmod m_can