【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】

【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】

  • 1、概述
  • 2、实验环境
  • 3、自我学习
  • 4-1、实验过程
      • 1、硬件原理图+焊接+连接模块
      • 2、输入命令
      • 3、测试过程
  • 4-2、目前遗留问题
      • # 1-1、发送可以发送,但是PC发送数据收不到。
      • # 1-2、接收是可以接收,但是发送PC收不到数据
  • 5、其它细节
        • (1)发送时输入错误警告
        • (2)发送时输入没有FDcan警告
        • (3)其他can工具
  • 6、总结

1、概述

近期开始学习英伟达的工控板,作为新手还是有很多不同懂得地方,但是一部分它用的linux系统,有点像玩树莓派,通过自己一段时间学习can调试,终于可以简单通信了。

开始的时候,自己也是什么都不是很懂,从新手一点点摸索过来,现在使用工控机,简单can通信也已经没有问题了,算是有些进步吧。

2、实验环境

初次了解,这里使用提供软硬件信息吧。
硬件信息:Jetson Orin nx
软件版本:5.10.104-tegra #1 SMP PREEMPT Sun Mar 19 07:55:28 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux
在这里插入图片描述
其它硬件:can卡 和 can转TTL模块TJA1050T模块

3、自我学习

(1)硬件连接电路
想要调试can,我们需要先知道硬件情况,如下图,一般在这个位置有,
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第1张图片
不过本身不像其他开发板,不自带can转换模块,因此需要买个模块,上次买的模块还在(TJA1050T模块)。
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第2张图片

(2)查找资料学习
这类不会从头讲一遍can,相关can资料网上还是挺多,可以自行查找和了解。

这个can,在不同工控机上,并不是完全一样的,有的工控机配置上还有些麻烦,不过jetson orin nx,还行,就几个命令行,技能启动,具体有什么不一样会在后面说,下面是资料问题,可以了解命令行。
参考文档:https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/index.html#
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第3张图片

(3)调试命令
调试命令,在上述文档有说明,核心是使用工具“busybox”,不过一般都自带,也不需要安装,如果没用可以安装下。

【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第4张图片

(4)开机脚本学习
当你熟悉can的启动命令后,并且一些工具装好后,你会发现,就是一些命令,但是不可能每次开机手敲一遍,所以要使用开机自启动方式。

在网上搜索,开机启动的话,有几种,下面是一些常用的方法:

1 、使用 /etc/rc.local 文件:可以在 /etc/rc.local 文件中添加需要在开机时启动的命令或脚本,这些命令会在系统启动时自动执行。

2、使用 systemd:在使用 systemd 系统管理工具的 Linux 发行版中,可以通过编写 systemd unit 文件来实现开机自启动。
3、使用 crontab:可以通过 crontab 工具在系统启动时运行一个脚本或命令。

4-1、实验过程

1、硬件原理图+焊接+连接模块

【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第5张图片
具体can的硬件外露硬件上边已经说明,我们直接看下去,是实际的硬件照片,可以看到没用连接引脚,

我们需要自己焊接,另外我这模块是需要5V的供电,可以从40pin那边取得。

焊接好了以后就可以连到硬件模块上了。


模块再出canH和canL,如果调试时不通,可以交换CAN_RX和CAN_TX引脚,如下图,已是弄好的,并连接好can卡的。

2、输入命令

根据资料与文档吧,直接说应该输入命令。

sudo modprobe can_raw 
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 500000 loopback on
sudo ip link set can0 up

请注意,以上实在jetson orin NX的情况,实际发现,如果是其他系列很可能不一样,在实际使用== Jetson-Xavier-NX==的时候,要该基地址,加入如下两行。如下所示意

sudo busybox devmem 0x0c303020 32 0x0000C458
sudo busybox devmem 0x0c303018 32 0x0000C400
sudo modprobe can_raw
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 500000 loopback on
sudo ip link set can0 up

3、测试过程

如果一切输入没有问题,那么can就应该启动了,我们输入“”ifconfig“”命令可以查看。

有can0的字样就成功了。

然后我们使用发送工具和接收控件进行收发测试。

4-2、目前遗留问题

截止目前发文,依旧没有解决一个问题,就是配置完了代码后,在一种情况下,orin可以收到信息,但是发不出来,另一种情况是可以发出来,但是收不到信息PC,这就很神奇,在其他工控板尝试过,有成功了的,不知道在orin上为啥就不行。

# 1-1、发送可以发送,但是PC发送数据收不到。

使用cansend命令
在这里插入图片描述
命令如下
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第6张图片

在PC电脑软件接受结果,波特率500kbps。
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第7张图片

# 1-2、接收是可以接收,但是发送PC收不到数据

使用candump命令
使用命令

`
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第8张图片
在PC电脑软件接受结果,波特率500kbps。
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第9张图片

此问题暂时搁置吧,在英伟达论坛问过也没有解决,具体链接如下。
https://forums.developer.nvidia.com/t/jetson-orin-nx-can-candump-can0-messages-cannot-be-received-but-cansend-can-be-sent/261012/13
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第10张图片

5、其它细节

(1)发送时输入错误警告

如下图所示,当输入cansend不争取或者有问题是,会警告你,你需要重新输入。
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第11张图片

(2)发送时输入没有FDcan警告

如下图,虽然给出你实例,但是没有FDcan,就可以先不输入这样的。
【在英伟达nvidia的jetson-orin-nx上使用调试can基础收发-硬件连接-开机自启动can-初步调试】_第12张图片

(3)其他can工具

这里直接简单简绍can的发送和接受,还有其他工具,有兴趣可以看看其他文章补充下。

博文链接:https://blog.csdn.net/engrossment/article/details/105222753

6、总结

每一步走的都很艰辛,需要反复验证,才能准去无误,开始以为发送没有问题就没事了,没想到发送可以却接受不行,每一步都要反复确认啊,这个问题会持续关注下吧。

你可能感兴趣的:(jetson,工具使用,学习)