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 的相关文章

  • 如何理解“warp 中的所有线程同时执行相同的指令”。在 GPU 中?

    我在读专业CUDA C编程 并在GPU 架构概述部分 CUDA 采用单指令多线程 SIMT 架构来管理和执行 32 个线程组 称为 warp warp 中的所有线程同时执行相同的指令 每个线程都有自己的指令地址计数器和寄存器状态 并根据自己
  • nVIDIA 驱动程序如何将设备索引分配给 GPU?

    假设在单个节点上 有多个具有不同计算能力的设备 nvidia如何对它们进行排名 我的排名是指cudaSetDevice分配的数字 有关于此的一般准则吗 谢谢 我相信对应的设备顺序cuda获取设备 and cudaSetDevice 即 CU
  • 如何在 Thrust 中将 make_transform_iterator() 与counting_iterator<> 和execution_policy 一起使用?

    我尝试使用 MSVS2012 CUDA5 5 Thrust 1 7 编译此代码 include
  • OpenGL sRGB 帧缓冲区奇怪之处

    我正在使用 GLFW3 创建上下文 我注意到GLFW SRGB CAPABLE属性好像没有什么影响 无论我将其设置为什么 我总是会在以下情况下获得 sRGB 转换 GL FRAMEBUFFER SRGB已启用 我的理解是 当GL FRAME
  • Linux 中没有 X.org 的 OpenGL

    我想在 Linux 中打开一个没有 X 的 OpenGL 上下文 有什么办法可以做到吗 我知道集成英特尔显卡硬件是可能的 尽管大多数人的系统中都有 Nvidia 卡 我想要一个适用于 Nvidia 卡的解决方案 如果除了通过集成英特尔硬件之
  • Cuda 内核返回向量

    我有一个单词列表 我的目标是匹配一个非常非常长的短语中的每个单词 我在匹配每个单词时没有问题 我唯一的问题是返回包含每个匹配信息的结构向量 In code typedef struct int A B C Match global void
  • 强制 Windows 视频驱动程序重新加载。有可能吗?

    某些驱动程序在启动时加载时使用注册表中写入的参数来配置自身 我可以修改这些值然后重新启动 但我想知道是否可以强制重新加载驱动程序 使更改在不重新启动的情况下生效 具体来说 我正在谈论视频驱动程序 nvidia 我在某处读到 通过 pINvo
  • 为什么 Cuda/OpenCL 的全局内存中不存在库冲突?

    我还没有弄清楚并且谷歌没有帮助我的一件事是 为什么有可能与共享内存发生银行冲突 但在全局内存中却没有 银行与寄存器会存在冲突吗 UPDATE哇 我真的很感谢 Tibbit 和 Grizzly 的两个回答 看来我只能给一个答案打绿色复选标记
  • 使用 CUDA 进行行列式计算 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或免费可用的代码可以计算a的行列式small 6x6 双精度矩阵完全在 GPU 上 这是计
  • NVIDIA Jetson环境VSCode安装记录,前期失败问题在于英伟达使用的是arm64架构

    1 安装失败及原因探索 1 1 报错 Unable to install code The following packages have unmet dependencies 搜索一个链接就开始上手 Ubuntu 22 04安装Visua
  • nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本

    我对运行时显示的不同 CUDA 版本感到非常困惑which nvcc and nvidia smi 我的 ubuntu 16 04 上安装了 cuda9 2 和 cuda10 现在我将 PATH 设置为指向 cuda9 2 所以当我跑步时
  • 有关 CUDA 中统一虚拟寻址 (UVA) 的信息/示例

    我试图理解 CUDA 中统一虚拟寻址 UVA 的概念 我有两个问题 是否有任何示例 伪 代码可以演示这个概念 我在 CUDA C 编程指南中读到 UVA 只能在 64 位操作系统上使用 为什么会这样呢 A 统一虚拟地址空间 http doc
  • nvidia驱动、cuda驱动和cuda工具包之间有什么关系?

    在nvidia驱动包中 有libcuda so cuda驱动和nvidia驱动一样吗 cuda工具包和libcuda so之间有什么关系 来自cuda文档 http docs nvidia com cuda cuda c programmi
  • CUDA 标量和 SIMD 视频指令的效率

    SIMD指令的吞吐量低于32位整数运算 如果是 SM2 0 仅标量指令版本 则低 2 倍 如果是 SM3 0 则低 6 倍 什么情况下适合使用它们 如果您的数据已经以 SIMD 视频指令本机处理的格式打包 则需要多个步骤对其进行解包 以便可
  • Nvidia Theano docker 镜像不可用

    尝试运行 docker 命令 nvidia docker run d p 8888 8888 e PASSWORD 123abcChangeThis theano secure start notebook sh Then open you
  • CUDA程序导致nvidia驱动程序崩溃

    当我超过大约 500 次试验和 256 个完整块时 我的 monte carlo pi 计算 CUDA 程序导致我的 nvidia 驱动程序崩溃 这似乎发生在 monteCarlo 内核函数中 任何帮助都会受到赞赏 include
  • 无法在 CUDA 中执行设备内核

    我正在尝试在全局内核中调用设备内核 我的全局内核是矩阵乘法 我的设备内核正在查找乘积矩阵每列中的最大值和索引 以下是代码 device void MaxFunction float Pd float max int x threadIdx
  • CUDA 添加矩阵的行

    我试图将 4800x9600 矩阵的行加在一起 得到一个 1x9600 的矩阵 我所做的是将 4800x9600 分成 9 600 个矩阵 每个矩阵长度为 4800 然后我对 4800 个元素进行缩减 问题是 这真的很慢 有人有什么建议吗
  • CUDA 代码会损坏 GPU 吗?

    在测试包含内存错误的 CUDA 时 我的屏幕被冻结了 重新启动后我无法再检测到显卡 我的代码是否有可能物理损坏该卡 这发生在 Ubuntu 14 04 下 我不知道该卡的型号 因为我无法检测到它 但我记得它是一张相当新的卡 感谢所有的评论我
  • nvidia GPU 上的内核真的有超时吗?

    寻找为什么我的内核产生奇怪的错误消息或仅 0 结果的答案我发现了这个answer https stackoverflow com questions 3988645 cl out of resources for 2 millions fl

随机推荐