28. 树莓派扩展板¶
28.1. 树莓派RS485/CAN扩展板¶
28.1.1. 简介¶
由于rk3566不支持CAN通信,使用该扩展板可通过spi扩展出一路CAN,支持板卡型号有鲁班猫0N、鲁班猫0w、鲁班猫1、鲁班猫1N。
购买链接: (微雪)树莓派4B/3B+/Zero W RS485 扩展板
扩展板详细说明参考官方资料: 扩展板官方资料
以下说明只针对扩展板接鲁班猫板卡情况。
28.1.2. 使用说明¶
注意
如果扩展板购买日期早于2019年8月份,晶振是8M的,需要修过设备树插件,将mcp251x_clk修改为8M,反之新版的,晶振是12M的则不需要。
28.1.2.1. 更新镜像¶
野火2024年4月20日支持了该扩展板的使用,如果使用比这个日期旧的镜像,需要更新内核,如果比这个日期更新的镜像则不需要更新。
离线更新内核deb包:
将以上两个deb包传到板卡,然后执行 sudo dpkg -i linux*.deb ,更新内核,然后修改 /boot/uEnv/uEnv.txt,取消dtoverlay=/dtb/overlay/rk3566-lubancat-0-spi-can-mcp2515-overlay.dtbo注释,最后重启板卡即可。

如果是新镜像,则直接修改/boot/uEnv/uEnv.txt,取消dtoverlay=/dtb/overlay/rk3566-lubancat-0-spi-can-mcp2515-overlay.dtbo注释,最后重启板卡即可。
28.1.2.3. CAN收发测试¶
确认系统是否需要更新镜像,以及打开了对应设备树插件重启后才能进行测试。
28.1.2.3.1. 安装测试工具¶
1 2 | sudo apt update
sudo apt install can-utils
|
28.1.2.3.2. 回环测试¶
将拓展板的CAN_H和CAN_L连接起来。

设置波特率以及回环模式:
1 2 3 4 5 6 | #将CAN0接口关闭
sudo ip link set can0 down
#设置比特率为 1000000Hz,同时启用回环模式
sudo ip link set can0 type can bitrate 1000000 loopback on
#将CAN0接口启用
sudo ip link set can0 up
|
打开两个终端窗口,测试can0自发自收:
1 2 3 4 5 6 7 8 9 | #终端1
candump can0
#终端2
cansend can0 000#11.22.33.44
#或者只使用一个终端
candump can0 &
cansend can0 000#11.22.33.44
|
效果如下:


28.1.2.3.3. 与CAN分析仪通信测试¶
将拓展板和分析仪进行连接。
扩展板 |
CAN分析仪 |
---|---|
CAN_H |
CAN_H |
CAN_L |
CAN_L |
设置波特率并进行测试
1 2 3 4 5 6 7 8 9 10 11 12 | #将CAN0接口关闭
sudo ip link set can0 down
#设置比特率为 1000000Hz
sudo ip link set can0 type can bitrate 1000000
#将CAN0接口启用
sudo ip link set can0 up
#发送(标准帧,数据帧,ID:123,date:DEADBEEF)
cansend can0 123#DEADBEEF
#接收
candump can0
|

