机器人控制器开发(底层模块)——Rk3588 CAN0调试
1修改设备树时钟
CAN设备频率大于等于1MHz时,建议把设备树时钟改为300M,否则用200M即可。这样可以保证通讯稳定性
板子上的是.dtbo文件,无法直接修改
可以直接在板子上解包 .dtbo → 修改 → 再打包
命令如下:
# 反编译
dtc -I dtb -O dts -o can0.dts rk3588-lubancat-can0-m0-overlay.dtbo# 修改 assigned-clock-rates# 再编译回 dtbo
dtc -I dts -O dtb -o rk3588-lubancat-can0-m0-overlay.dtbo can0.dts
修改后如下
然后重启板子。
测试CAN通讯
sudo ip link set can0 up
输出 RTNETLINK answers: Invalid argument
说明 没有设置can波特率
应该先设置好CAN的波特率,再启动can
执行命令,安装can-utils
sudo apt install can-utils
遇到的坑
Rk3588 的 GPIO0-C0 是can0-RX,一开始我接到大越创新can转ttl模块的TX引脚上,一直收不到数据,后面改为接到RX引脚上,就可以成功接收数据。