CAN
1. CAN 驱动
1.1 驱动文件
驱动文件所在位置:
- RV1126/RV1109使用:
drivers/net/can/rockchip/rockchip_can.c - RK3568/RK3588使用:
drivers/net/can/rockchip/rockchip_canfd.c - RK3562使用:
drivers/net/can/rockchip/rk3562_canfd.c
1.2 DTS 节点配置
主要参数:
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
转换完成,产生中断信号。
- 时钟频率:可以修改,如果CAN的比特率1M建议修改CAN时钟到300M,信号更稳定。低于1M比特率的,时钟设置200M就可以。CAN时钟最好设置成比特率的偶数倍,便于分出精准的比特率频率。
- compatible:
- RV1126/RV1109使用
"rockchip,can-1.0"。 - RK3568使用
"rockchip,rk3568-can-2.0"。 - RK3588使用
"rockchip,can-2.0"。 - RK3562使用
"rockchip,rk3562-can"。
- RV1126/RV1109使用
- pinctrl:
配置can_h和can_l的iomux作为can功能使用。
assigned-clocks = <&cru CLK_CAN>;
assigned-clock-rates = <200000000>;
clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>;
clock-names = "baudclk", "apb_pclk";
.compatible = "rockchip,can-1.0",
1.3 内核配置
&can {
pinctrl-names = "default";
pinctrl-0 = <&canm0_pins>;
status = "okay";
};
-
Symbol:
Symbol: CAN_ROCKCHIP [=y]
| Type : tristate
| Prompt: Rockchip CAN controller
| Location:
| -> Networking support (NET [=y])
| -> CAN bus subsystem support (CAN [=y])
| -> CAN Device Drivers
| -> Platform CAN drivers with Netlink support (CAN_DEV [=y])
| Defined at drivers/net/can/rockchip/Kconfig:1
| Depends on: NET [=y] && CAN [=y] && CAN_DEV [=y] && ARCH_ROCKCHIP [=y]Symbol: CANFD_ROCKCHIP [=y]
| Type : tristate
| Prompt: Rockchip CANFD controller
| Location:
| -> Networking support (NET [=y])
| -> CAN bus subsystem support (CAN [=y])
| -> CAN Device Drivers
| -> Platform CAN drivers with Netlink support (CAN_DEV [=y])
| Defined at drivers/net/can/rockchip/Kconfig:10
| Depends on: NET [=y] && CAN [=y] && CAN_DEV [=y] && ARCH_ROCKCHIP [=y]CONFIG_CAN_RK3562=y
2. CAN 通信测试工具
canutils是常用的CAN通信测试工具包,内含5个独立的程序:canconfig

