Nvidia jetson agx xavier can通讯失败,修改时钟源pllaon

2023-05-16

一、问题详情

在调试Xavier can的过程中,can通信始终有问题,收发都会报错。后来发现时钟源导致波特率不匹配,所以不能通信。

二、修改时钟源

在虚拟机使用官方sdkmanager,下载安装jetpack4.6.1,准备刷机。

刷机刷到打开AGX的恢复模式的位置时,也就是弹出下图所示界面的时候,打开安装到PC的文件夹,找到nvidia/nvidia_sdk/JetPack_4.6.1_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra,在这个路径下,需要修改两个文件,分别是bootloader/t186ref/下的tegra194-a02-bpmp-p2888-a04.dtb和kernel/dtb/下的tegra194-p2888-0001-p2822-0000.dtb。

1、修改tegra194-a02-bpmp-p2888-a04.dtb

反编译tegra194-a02-bpmp-p2888-a04.dtb

dtc -I dtb -O dts ./tegra194-a02-bpmp-p2888-a04.dtb > ./tegra194-a02-bpmp-p2888-a04.dts

修改后的tegra194-a02-bpmp-p2888-a04.dts如下

修改完成后重新编译tegra194-a02-bpmp-p2888-a04.dts为tegra194-a02-bpmp-p2888-a04.dtb文件。

编译方法

dtc -I dts -O dtb ./tegra194-a02-bpmp-p2888-a04.dts > ./tegra194-a02-bpmp-p2888-a04.dtb

编译完成后替换原文件中的tegra194-a02-bpmp-p2888-a04.dtb。

2、修改tegra194-p2888-0001-p2822-0000.dtb

反编译tegra194-p2888-0001-p2822-0000.dtb

方法

dtc -I dtb -O dts ./tegra194-p2888-0001-p2822-0000.dtb > ./tegra194-p2888-0001-p2822-0000.dts

修改后的tegra194-p2888-0001-p2822-0000.dts文件如下

 

修改完成后重新编译tegra194-a02-bpmp-p2888-a04.dts为tegra194-a02-bpmp-p2888-a04.dtb文件。

编译方法

dtc -I dts -O dtb ./tegra194-p2888-0001-p2822-0000.dts > ./tegra194-p2888-0001-p2822-0000.dtb

编译完成后替换原文件中的tegra194-p2888-0001-p2822-0000.dtb

三、继续刷机

上述两个文件替换完毕后,把镜像文件烧录到Xavier。

四、can测试

刷完机后,查看can接口父时钟和mttcan节点时钟,命令如下:

1、查看父时钟:

sudo cat /sys/kernel/debug/bpmp/debug/clk/can1/parent

2、查看mttcan节点时钟命令:

cat /proc/device-tree/mttcan@c310000/pll_source

二者时钟都为 pllaon。

3、can配置

sudo busybox devmem 0x0c303000 32 0x0000C400
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458

sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan

sudo ip link set can0 type can bitrate 500000
sudo ip link set can1 type can bitrate 500000 

sudo ip link set up can0
sudo ip link set up can1

外接电路,配置can,进行收发测试,不出意外这次应该还是失败,重启一下系统,再进行测试,通信正常,完美解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nvidia jetson agx xavier can通讯失败,修改时钟源pllaon 的相关文章

随机推荐