前言

Nvidia Xavier GPIO 输入输出 中断 PWM
上节总结了40-Pin扩展口中GPIO的应用, 本节介绍一下UART的应用. Xavier引出5路串口, 参考前篇Nvidia Jetson AGX Xavier 硬件相关 中的UART一小节.

40-Pin扩展口中的UART

40-Pin扩展口中引出的是UART1, 对应引脚为 8 -- UART1_TX, 10--UART1_RX.
Xavier打开终端, 输入 ls /dev/tty*, 其中的 /dev/ttyTHS0 就是这个UART1.

很多人会用minicom, 安装: sudo apt install minicom
也有图形界面的 cutecom, 安装: sudo apt install cutecom

这里用cutecom来测试, 打开cutecom: sudo cutecom , Device选择/dev/ttyTHS0, 其他参数默认(115200@8-N-1), 点击Open :
在这里插入图片描述
找一个CH340USB转串口TTL小板, 电压选择3.3V, 连接如下:

CH340 Xavier 40-Pin扩展口
RXD Pin8(UART1_TX)
TXD Pin10(UART1_RX)
GND GND

如图所示:
在这里插入图片描述
这个小板子USB连接到主机上, ls dev/tty*, 会发现多出一个/dev/ttyUSB0的设备, 就是它了, 同样主机上sudo cutecom, 这里Device选择/dev/ttyUSB0, 点击Open:
在这里插入图片描述
主机的Input框中输入abcdefghijklmnopqrstuvwxyz, 打回车, 可以看到Xavier中收到了这条信息, 然后Xavier中Input框输入0123456789, 回车, 可以看到主机中也收到了:
在这里插入图片描述
测试通过, 在Cutecom中Close, 关掉窗口.

本小节知道了40-Pin中的UART1设备名是 /dev/ttyTHS0, 那编程就简单了, 不论是C, C++, Python 或者是ROS环境, 只要找相应的serial操作方法就可以了, socket, pyserial或者ros中的serial. 下面以Python中的pyserial为例.

pyserial

pyserial 文档参考: https://pyserial.readthedocs.io/en/latest/index.html

Xavier中安装pyserial:

sudo pip3 install pyserial

写一个简单的uart_echo.py例程:

import serial

ser = serial.Serial("/dev/ttyTHS0", 115200)	# uart init @115200-8-N-1

def ser_line_echo():
    while True:
        line = ser.readline()	# wait b'\n'
        ser.write(line)	# send data
        print(line)

if __name__ == '__main__':
    try:
        if ser.is_open == False:
            ser.open()	# open uart
        ser_line_echo()
    except KeyboardInterrupt:   # Ctrl+C
        if ser != None:
            ser.close()	# Close Port immediately

保存, sudo python3 uart_echo.py 运行, 这次我们CH340小板插到Windows电脑测试, 使用sscom, 发送百万字节不丢数:
在这里插入图片描述

常用api参考文档中的 pySerial API. 最基本的如下:

  • 打开串口: open()
  • 关闭串口: close()
  • 读一定字节: read(size=1)
  • 读直到某字节出现: read_until(expected=LF,size=None)
  • 写数据: write()

还有些属性的获取及其他操作的api去文档中看吧.

调试串口

Xavier 插上USB Type-C线连接主机, Windows为例, 打开这个串口, 然后接收框中打个回车, 可以看到类似于ssh方式登录的样子, 输入Xavier的用户名和密码, 就可以当ssh登录一样使用:
在这里插入图片描述

微信公众号

欢迎扫描二维码关注本人微信公众号, 及时获取或者发送给我最新消息:

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐