模板: 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,如下图所示
2-CH-CAN-FD-HAT-B-Mode.jpg

请在 /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 配置区选择 CE1D13CAN_1 配置区选择 SPI1_CE1D23,硬件改动参考下图:
2-CH-CAN-FD-HAT-2pcs.png

然后在 /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
  • 驱动安装参照‘驱动安装(旧版)章节’