Skip to main content

CAN

This section introduces how to use the CAN interface function on the Raspberry Pi, laying the foundation for subsequent project development.

Enabling Interface Configuration​

  • Enable the CAN interface (disabled by default)

  • Edit the config.txt file

    sudo nano /boot/firmware/config.txt
  • To use CAN, add the following lines:

    dtoverlay=spi1-1cs
    dtoverlay=mcp2515,spi1-0,oscillator=16000000,interrupt=17
  • After modification, reboot the Raspberry Pi to use the CAN driver normally:

    sudo reboot
  • After reboot, use the following command to check the relevant ports; you should see a CAN port:

    ifconfig
    • If the CAN port is DOWN, bring it up (here the device is identified as can0, so the command uses can0; the final 500000 parameter is the CAN bus baud rate in bit/s):

      sudo ip link set can0 up type can bitrate 500000
  • You can also check the relevant devices in the SPI subsystem:

    dmesg | grep spi

    Identify CAN devices


Usage​

  • Install tools:

    sudo apt update
    sudo apt-get install can-utils
  • Send data using cansend (send 0x11 0x22 0x33 0x44; here the hardware is identified as can0, so the command uses can0):

    cansend can0 000#11.22.33.44

    Identify CAN devices

  • Listen for CAN data frames using candump (here the device is identified as can0, so the command uses can0):

    candump can0

    Identify CAN devices