记录树莓派4B 在spi0和spi1上挂载多路can
引言
之前在网上找了很多资料关于树莓派多路挂载can总线,无非就是配置/boot/config.txt文件,重要的是怎么配置参数interrupt以及spi-cs,接下来学习下怎么通过控制器的线路图来找出interrupt以及spi-cs
认识控制器线路图
首先找到硬件工程师拿到线路图
这里我们找到的是物理引脚,27,28根据以下图找到BCM
所以最终我们需要配置的中断是0和1
同理我们也可以找出spi-cs的物理引脚24,36 BCM是8,16
根据以上图最终我们要使用的是spi0.0 以及spi1.2
废话不多说,直接上配置
启用SPI和加载内核模块
sudo raspi-config
选择第三项Interfacing Options–>SPI开启,finish退出。重启生效sudo reboot
修改配置文件config.txt
sudo nano /boot/config.txt
dtparam=spi=on
dtoverlay=spi1-3cs,cs0_spidev=disabled,cs1_spidev=disabled
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=0,speed=10000000
dtoverlay=mcp2515,spi1-2,oscillator=8000000,interrupt=1,speed=10000000
#mcp2515-can0 使用的是spi0.0 mcp2515使用的是spi1.2
重启生效sudo reboot
ifconfig -a
会看到can0,以及can1说明配置成功
通过ip命令设置CAN网络设备,设置波特率,并启动can0以及can1:
sudo ip link set can0 type can bitrate 250000
sudo ifconfig can0 up
sudo ip link set can1 type can bitrate 250000
sudo ifconfig can1 up
如要修改波特率(500kbps(50~500k)),要先关闭:
sudo ip link set can0 down