目录
前言
RK3568 CPU有3路原生can,本文主要介绍RK3568 can的驱动、设备树配置以及测试使用。
一、CAN驱动配置
can控制器驱动程序在/kernel/drivers/net/can/rockchip/rockchip_can.c
linux内核配置项点,在 Networking support > CAN bus subsystem support > CAN Device Drivers 下打开can drivers配置项点,如下图所示:
save保存退出即可。
二、dts设备树节点配置
can设备树节点配置如下图所示:
compatible = "rockchip,can-1.0" ,rockchip,can-1.0用来匹配can控制器驱动
assigned-clock-rates用来配置can的始终频率,如果CAN的波特率为1M,建议修改CAN时钟为300M,低于1M的波特率时钟设置为200M更稳定。
pinctrl配置:根据实际板卡连接情况配置can_h和can_l的iomux作为can功能使用。
三、canutils工具配置使用
由于busybox里面集成的是canutils的阉割版本,对can的操作支持不完全,故使用buildroot的里面的iproute2版本,在buildroot编译目录下/buildroot/output/rockchip_rk3568_r900执行make menuconfig,具体配置如下图所示:
buildroot下canutils配置:
buildroot下iprouter2工具配置:
四、系统节点及测试
can设备在linux系统中生成的节点如下所示:
测试指令:
1、can启动:ip link set can0 up
2、can关闭:ip link set can0 down
3、设置波特率:ip link set can0 type can bitrate 250000
4、显示can0详细信息:ip -details link show can0
5、can数据发送:
总结
本文主要对can设备驱动内核以及设备树节点进行配置,以及canutils、iprouter2工具配置及使用做一个介绍及总结,下一篇主要对linux can网络编程进行介绍。