【在英伟达nvidia的jetson-orin-nx上使用工具minicom和python调试40-pin的uart1和调试的uart2-初步调试-熟悉了解】

1、概述

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

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

2、实验环境

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

3、先行了解知识

调试uart功能需要对jetson有些基础了解,也是看了一段时间资料才有个基本认识。
(1)需要对硬件有所了解,知道硬件IO是在哪里,哪些怎么接。
(2)安装相应的库或者软件,使用apt-get命令
(3)给权限,配置权限,使其可以运行
(4)相关资料查找,一般要去英伟达官网去了解
如下是核心板外设硬件图
在这里插入图片描述
(5)uart2是调试引脚,不同配置,自动连接就可以使用。

文件名称:Jetson Orin NX Series and Jetson Orin Nano Series(Product Design Guide)
在这里插入图片描述

4、参考资料

自己学习也是参考了以下链接,需要罗列出来。
(1)英伟达官网链接,想要了解资料的话,一般都要去官网查相关资料的。
参考链接:https://developer.nvidia.com/embedded/downloads
在这里插入图片描述

(2)python脚本的程序代码编写参考博文,自己是根据这篇编写代码,同时了解每条python代码意义
参考连接:https://blog.csdn.net/weixin_44350337/article/details/111623475
(3)如下链接,博主主要是提供了一个硬件参考图,告诉你哪个是哪个,从原理图让我们知道硬件设备。
参考链接:https://blog.csdn.net/liuyang_xyz/article/details/126500097

为此,寻找了原网站看了一下,我这个是orin nx的,所以选择对应的。

网站链接:https://jetsonhacks.com/nvidia-jetson-orin-nano-gpio-header-pinout/

在这里插入图片描述

为此,找到这个俯视图图片文件,如下,可以去条目一中英伟达文档哪里搜索。

文件名称:搜索:Jetson Orin Nano Developer Kit Carrier Board

在这里插入图片描述

(4)如下链接,主要是解决库问题,如果使用python的话,需要安装的库。
参考链接:https://blog.csdn.net/qq_25662827/article/details/119381935

sudo pip3 install pyserial
sudo pip install pyserial

5-1、操作步骤-python脚本的方式(uart1)

1、硬件连接-引脚连接

需要查找硬件引脚,通过之前查找资料,我们知道uart1在40-pin上,uart2为调试端口。

如下,为我自己板子实物图,也就是J14和J12 ,上边有丝印

//uart1 - j12
6号引脚-GND
8号引脚-uart1_TX
10号引脚-uart1_RX

//uart2-debug - j14
UART TXD  
UART RXD
GND

在这里插入图片描述

2、安装对应库

目前看来需要安装python对应的库,以下是必要的执行步骤

sudo apt-get install python3-pip
sudo apt-get install python-pip
sudo pip3 install pyserial

其它尝试,以下非必须选项,在尝试过程中,自己尝试的输入其它命令

sudo apt-get install jetson-io
sudo apt-get update
sudo /opt/nvidia/jetson-io/jetson-io.py

在这里插入图片描述

3、代码编写

这里我在桌面新建个一个文件件,然后新建了一个文件,你需要自己找个合适位置,创建一个文件。

//使用vim创建文件
sudo vim py_uart1.py

然后就是代码部分,输入代码如下(python)

import serial as ser
import time
a = "12345"
b = 678
c = " I'm is xxxx.."


se = ser.Serial("/dev/ttyTHS0",9600)
while True:
    se.write(a.encode())
    se.write(str(b).encode("GB2312"))
    se.write(c.encode("GB2312"))
    se.write("\r\n".encode())
    print(se.readline().decode("GB2312"))
    time.sleep(1)
    print("send ok!")
    print(se.is_open)
            

4、文件设备给权限

需要给在/dev/ttyTHS0以777的运行权限。

sudo chmod 777 /dev/ttyTHS0

在这里插入图片描述

5、运行测试

最后运行测试如下,我将py的文件和命令行的均放在一起,方便查看
在这里插入图片描述
另一端是我电脑PC机接收到的
在这里插入图片描述

5-2、操作步骤-minicom工具调试方式(uart1)

1、安装对应软件

调试的方法不只是一种,使用python这种,其实方便后续调试,编写脚本啥的,后来了解到使用minicom就不用这样费事,直接下载,然后使用就可以了,如下步骤就是如此。

sudo apt-get install mincom
sudo minicom -D /dev/ttyTHS0

网上相关教学还是挺多的,我这里直接给出参照链接:
参照链接:https://blog.csdn.net/Naisu_kun/article/details/117704009

2、运行调试

Linu终端如下
在这里插入图片描述
PC电脑接收端
在这里插入图片描述

5-3、操作步骤-调试uart2(调试端口)(uart2)

1、硬件连接-引脚连接

引脚之前已经确认了,不过还是要说明下,uart2是调试口,之前尝试时,不知道,然后用python脚本控制它,脚本内波特率是9600,发现不好使,后来发现115200就是可以的,所以调试口都不需要配置,直接可以用,主要是注意硬件连接。

在这里插入图片描述

串口硬件连接,使用的是TTL转USB模块(ps:之前调试lora那个模块,复用下<.>)
在这里插入图片描述

2、软件MobaXterm的下载

使用串口软件就不很方便了,推荐工具MobaXterm,并且有免费的请自行下载吧。

链接:https://mobaxterm.mobatek.net/download.html

在这里插入图片描述
使用方式如下
在这里插入图片描述

3、调试

连接好硬件后,重开机会有信息打印。
然后输入用户名和密码

在这里插入图片描述

6、细节部分

(1)No module named ‘serial’ 问题

相关连接:https://blog.csdn.net/jiangchao3392/article/details/75107330
此问题一般就是没有安装库导致的

(2)pip3: command not found

运行pip3之前,先要安装pip3,顺序要是反了就会报。

(3)py文件报告,无法运行

我自己是手打的一遍代码,所以报了很多语法错误,代码敲错得原因。
在这里插入图片描述

(4)收到数据会出现乱码

一般要检查硬件连接和GND,还有是波特率,另外使用minicom时,默认波特率是115200
在这里插入图片描述
(5)uart2是调试,默认115200
在尝试uart2时,发现9600波特率就是不行,后来才知道是调试口,如下使用python文件控制
在这里插入图片描述

7、总结

细节满满啊,不过从最初一点不同,到现在,已经明白许多了,总是有些收获的。

<think>好的,我现在需要帮助用户在NVIDIA Jetson Orin NX上配置调试CAN总线的回环测试功能。首先,我应该回顾用户提供的引用内容,特别是引用[2]中提到的关于Linux下CAN回环设置的细节。用户提到回环功能默认开启,但在RT-SocketCAN时需要关闭,同时可能需要软件回环。 首先,我需要确认Jetson Orin NX的硬件是否支持CAN总线,以及具体的CAN接口名称,比如can0或can1。通常,Jetson系列开发板会带有CAN控制器,可能需要启用相应的设备树覆盖(Device Tree Overlay)来激活CAN接口。如果用户没有正确配置硬件,可能需要先检查硬件连接设备树配置。 接下来,配置CAN接口的参数,比如比特率。用户需要使用ip命令设置接口,例如设置比特率为500000:`sudo ip link set can0 type can bitrate 500000`,然后启动接口`sudo ip link set up can0`。这里需要确保命令正确,没有拼写错误,并且接口名称正确。 然后是关于回环模式的设置。根据引用[2],默认情况下回环是开启的,但如果是使用RT-SocketCAN,可能需要调整。用户可以通过`ip link set can0 type can loopback on`来显式启用回环模式。需要确认在Orin NX的内核中是否支持loopback参数,可能需要加载相应的CAN模块,比如`can``can_raw`。 测试回环功能时,用户可以使用candumpcansend工具。例如,在一个终端运行`candump can0`,另一个终端发送消息`cansend can0 123#11223344`。如果回环工作正常,发送的消息会立即被candump捕获。如果没收到,可能回环没有正确启用,或者存在其他配置问题。 另外,引用[2]提到如果硬件不支持回环,可能需要软件回环。在Socket CAN中,可以通过设置套接字选项来实现。例如,在C代码中设置`setsockopt(s, SOL_CAN_RAW, CAN_RAW_LOOPBACK, &loopback, sizeof(loopback))`,但用户可能需要编写脚本或程序来测试这一点。不过,用户可能更倾向于使用现有工具,如cansendcandump,所以需要指导他们如何检查系统是否启用了软件回环。 还需要考虑是否安装了必要的CAN工具,比如can-utils。如果未安装,用户需要先安装这些工具:`sudo apt-get install can-utils`。 此外,用户提到的启动问题(引用[3])可能与网络启动有关,但当前问题集中在CAN回环测试,可能需要排除其他启动问题的影响。不过,如果CAN配置影响到启动,可能需要检查启动服务或相关内核模块是否冲突,但这种情况可能性较低。 调试步骤可能包括检查dmesg日志,查看CAN接口加载时的信息,确认是否有错误。例如,`dmesg | grep can`可以查看相关日志。如果接口未正确加载,可能需要重新配置设备树或加载内核模块。 总结步骤:硬件确认→加载模块→配置接口参数→启用回环→测试发送接收→处理可能的问题如硬件不支持回环时的软件回环设置。</think>### 在 NVIDIA Jetson Orin NX 上配置调试 CAN 总线回环测试的步骤 #### **1. 确认硬件支持与接口状态** - **检查 CAN 接口**: 使用命令 `ip link show` 查看系统识别的 CAN 接口(如 `can0` 或 `can1`)。若未显示,需确认硬件连接并启用设备树覆盖(Device Tree Overlay)[^2]。 - **加载内核模块**: 确保加载 CAN 相关内核模块: ```bash sudo modprobe can sudo modprobe can_raw ``` #### **2. 配置 CAN 接口参数** - **设置比特率并启动接口**: 例如,配置 `can0` 接口为 500kbps: ```bash sudo ip link set can0 type can bitrate 500000 sudo ip link set up can0 ``` - **显式启用回环模式**: ```bash sudo ip link set can0 type can loopback on # 默认可能已开启,但建议显式设置 ``` #### **3. 验证回环功能** - **安装测试工具**: 使用 `can-utils` 工具进行测试: ```bash sudo apt-get install can-utils ``` - **发送与接收测试**: - 终端 1 监听数据: ```bash candump can0 ``` - 终端 2 发送数据: ```bash cansend can0 123#11223344 ``` **预期结果**:终端 1 会立即显示发送的帧,表明回环成功。 #### **4. 处理硬件不支持回环的情况** - **启用软件回环**(通过 Socket CAN): 若硬件不支持回环,需通过套接字选项实现软件回环。例如,使用以下代码片段设置: ```c int loopback = 1; setsockopt(s, SOL_CAN_RAW, CAN_RAW_LOOPBACK, &loopback, sizeof(loopback)); ``` 或通过 Python 脚本实现: ```python import socket s = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) s.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_LOOPBACK, 1) ``` #### **5. 调试常见问题** - **接口未启动**: 检查 `ip link` 输出,确认接口状态为 `UP`。 - **权限问题**: 确保用户有权限访问 CAN 设备(建议使用 `sudo` 或配置用户组)。 - **内核日志分析**: 使用 `dmesg | grep can` 查看硬件初始化时的错误信息。 - **RT-SocketCAN 配置**: 若使用实时 CAN 协议,需关闭套接字独立回环(参考引用[2]): ```bash sudo ip link set can0 type can loopback off # 根据实际需求调整 ``` --- ### **相关问题** 1. **如何通过设备树配置启用 Jetson Orin NX 的 CAN 接口?** (需修改设备树并编译,参考 NVIDIA 官方文档) 2. **CAN 总线通信中出现帧丢失如何排查?** (检查比特率匹配、终端电阻、硬件干扰等) 3. **如何在实时系统中优化 Socket CAN 的性能?** (调整线程优先级、使用 RT 内核补丁) --- 通过以上步骤,用户应能完成 CAN 回环测试的配置与验证。若仍存在问题,建议结合具体硬件型号内核版本进一步排查[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好奇龙猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值