模板: 2-CH CAN FD HAT 驱动安装
来自Waveshare Wiki
驱动安装(新版)
注意:在2022年4月左右我们推出了‘Rev2.1’版本(背面板名下有版本号),该章节仅适用于‘Rev2.1’及以后的版本,如果你是用的是旧版本请阅读‘驱动安装(旧版)’章节
可以通过修改0R电阻以灵活调整使用的SPI和中断引脚,选择以下任一模式即可
双SPI模式
'A' 模式(默认模式),分别用 SPI0-0 和 SPI1-0 控制两路CAN,板子正面的AB模式焊点无须做改动,即:
CAN_0 使用 SPI0-0,中断引脚为25,CAN_1 使用 SPI1-0,中断引脚为24。
修改config.txt脚本
请在 /boot/firmware/config.txt (旧的系统可能是/boot/config.txt)中添加:
在最后一行加入如下:
dtparam=spi=on dtoverlay=spi1-3cs dtoverlay=mcp251xfd,spi1-0,interrupt=24 dtoverlay=mcp251xfd,spi0-0,interrupt=25
添加完成后重启,进入‘配置CAN’章节
单SPI模式
'B' 模式,使用 SPI0-0 和 SPI0-1 控制两路 CAN 输出,只需将模块正面的四个0R电阻挪到 'B' 模式位置,即:
CAN_0 使用 SPI0-0,中断引脚为25,CAN_1 使用 SPI0-1,中断引脚为24,如下图所示

请在 /boot/config.txt 中添加:
dtoverlay=spi1-3cs dtoverlay=mcp251xfd,spi0-1,interrupt=24 dtoverlay=mcp251xfd,spi0-0,interrupt=25
添加完成后重启,进入‘配置CAN’章节
堆叠模式
- 原理:修改背面的 CAN_x PIN SELECTION(x为0或1) 区域的 0R 电阻以改变CAN控制器使用的 CE 和 INT 引脚
- 注意:在需要堆叠使用时,硬件配置需要保持在双SPI模式('A' 模式,默认设置)
- CAN_0 有两组可选择:
| CE_0 | INT_0 | config 设置 | 描述 |
|---|---|---|---|
| CE0 | D25 | dtoverlay=mcp251xfd,spi0-0,interrupt=25 | CAN_1 使用 SPI0-0,中断引脚为25 |
| CE1 | D13 | dtoverlay=mcp251xfd,spi0-1,interrupt=13 | CAN_1 使用 SPI0-1,中断引脚为13 |
- CAN_1 有三组可选择:
| CE_1" | INT_1 | config 设置 | 描述 |
|---|---|---|---|
| SPI1_CE0 | D24 | dtoverlay=mcp251xfd,spi1-0,interrupt=24 | CAN_1 使用 SPI1-0,中断引脚为24 |
| SPI1_CE1 | D23 | dtoverlay=mcp251xfd,spi1-1,interrupt=23 | CAN_1 使用 SPI1-1,中断引脚为23 |
| SPI1_CE2 | D22 | dtoverlay=mcp251xfd,spi1-2,interrupt=22 | CAN_1 使用 SPI1-2,中断引脚为22 |
细心的朋友可能会看到还有一组配置没有写出,这是为了兼容老版本预留,新用户可以无视
使用举例
- 你有两块板子需要使用4路CAN怎么配置呢?
答:第一块板子不做修改,第二块板子背面的 CAN_0 配置区选择 CE1 和 D13,CAN_1 配置区选择 SPI1_CE1 和 D23,硬件改动参考下图:
然后在 /boot/config.txt 最后添加:
dtparam=spi=on dtoverlay=spi1-3cs dtoverlay=mcp251xfd,spi0-0,interrupt=25 dtoverlay=mcp251xfd,spi0-1,interrupt=13 dtoverlay=mcp251xfd,spi1-0,interrupt=24 dtoverlay=mcp251xfd,spi1-1,interrupt=23
添加完成后重启,进入‘配置CAN’章节
兼容模式
- 新版本为了兼容标准SPI调整了一些默认设置,所以想要和老版本兼容需要做一些修改
- 兼容A模式:CE_1" 电阻选择到 D26;INT_1 电阻选择到 D16
- 兼容B模式:CE_1" 可以不修改,没有影响;INT_1 电阻选择到 D16
- 驱动安装参照‘驱动安装(旧版)章节’
