欢迎点击蓝字关注我
回复“加群”,加入飞腾爱好者交流群
一、测试使用主板的串口说明
D2000自带的UART0直接引出9针全功能RS232串口,UART1为CPU调试串口,UART2和UART3接485接口芯片转为RS485,此外,主板还有X100 usb2.0转出8路RS232,详细硬件框图如下:
源芯片 | 串口号 | 串口电平 | 连接器丝印 |
---|---|---|---|
D2000 | UART0 | RS232 | COM0 |
D2000 | UART1 | TTL调试串口 | DEBUG PIN1 PIN3 PIN5 |
D2000 | UART2 | RS485 | COM485-1 |
D2000 | UART3 | RS485 | COM485-2 |
X100 | USB6 | RS232*8 | COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8 |
二、UART串口测试
2.1 D2000 UART0-3硬件接口与系统接口ttyAMA0-3的对应关系
开机进入系统后,使用的命令:
ls /dev/tty*
通过查看/dev目录下tty相关的设备可以发现对应的串口,如下图所示:
由此可以看出,/dev/ttyAMA0-3串口有四个,/dev/CH9344USB0-7串口有八个,其余的ttyS0-59是uos系统默认创建的,从数量上看可以猜测/dev/ttyAMA0-3为D2000自带的四个UART,/dev/CH9344USB0-7为X100芯片usb接口外接usb转串口芯片实现的8个串口,为了验证我们的猜想,我们可以通过系统下dmesg命令确认相关串口对应关系,使用命令如下:
dmesg |grep ttyAMA*
执行结果如下:
根据打印信息,可以看出:
ttyAMA0 的UART寄存器基地址为0x28001000
ttyAMA1 的UART寄存器基地址为0x28000000
ttyAMA2 的UART寄存器基地址为0x28002000
ttyAMA3 的UART寄存器基地址为0x28003000
查下《腾锐D2000软件编程手册V1.2.pdf》中5.5.2节UART寄存器基地址对应关系如下:
可以找到硬件D2000 UART0-3与UOS下ttyAMA0-3的对应关系如下:
ttyAMA0 —— UART1
ttyAMA1 —— UART0
ttyAMA2 —— UART2
ttyAMA3 —— UART3
2.2 X100 USB转RS232 硬件接口与系统接口对应关系
通过类似的方法可以从dmesg中获取ttyCH9344USB0-7的接口信息,命令如下:
dmesg |grep ttyCH*
通过以下命令查看usb串口的系统下接口和驱动:
lsusb -tv
ll /dev/ttyCH9344USB*
执行结果如下:
通过以下命令可以查看usb转串口的驱动:
root@phytium-PC:/proc# dmesg |grep 9344
[ 32.682819] usb_ch9344 13-1.4:1.0: ttyCH9344USB from 0 - 7: ch9344 device attached.
[ 32.682872] usbcore: registered new interface driver usb_ch9344
[ 32.682873] ch9344: USB serial driver for ch9344/ch348.
[ 32.682874] ch9344: V1.9Beta On 2022.04
[ 93.367257] Modules linked in: bnep nfnetlink_queue nfnetlink_log nfnetlink fuse st bluetooth ecdh_generic rfkill cpufreq_powersave nls_iso8859_1 nls_cp437 aes_ce_blk crypto_simd cryptd aes_ce_cipher crct10dif_ce snd_usb_audio ghash_ce aes_arm64 sha2_ce snd_usbmidi_lib sha256_arm64 sha1_ce snd_rawmidi ch9344 vxd(+) img_mem scpi_hwmon at24 uos_resources(O) uos_bluetooth_connection_control(O) lightorange lightnut lightfig lightcherry filearmor(O) smc_dri(O) binder_linux(O) ashmem_linux(O) efivarfs ip_tables x_tables pvrsrvkm phytium_x100_i2s_lsd phytium_dc_drm phytium_x100_i2s_mmd i2c_hid button spidev rtc_ds1307 usbhid motorcomm
root@phytium-PC:/proc# cd /boot/
root@phytium-PC:/boot# ls
config-4.19.0-arm64-desktop initrd.img-4.19.0-arm64-server
efi lost+found
fonts System.map-4.19.0-arm64-desktop
grub vmlinuz-4.19.0-arm64-desktop
initrd.img-4.19.0-arm64-desktop
root@phytium-PC:/boot# grep 9344 ./config-4.19.0-arm64-desktop
CONFIG_CH9344SER=m
root@phytium-PC:/boot# cd /lib/modules
root@phytium-PC:/lib/modules/4.19.0-arm64-desktop# find . -name *9344*
./kernel/drivers/tty/wch/ch9344ser
./kernel/drivers/tty/wch/ch9344ser/ch9344.ko
root@phytium-PC:/lib/modules/4.19.0-arm64-desktop# modinfo ./kernel/drivers/tty/wch/ch9344ser/ch9344.ko
filename: /lib/modules/4.19.0-arm64-desktop/./kernel/drivers/tty/wch/ch9344ser/ch9344.ko
alias: char-major-168-*
license: GPL
description: USB serial driver for ch9344/ch348.
author: WCH@TECH39
alias: usb:v1A86p55D9d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v1A86pE018d*dc*dsc*dp*ic*isc*ip*in*
depends:
intree: Y
name: ch9344
vermagic: 4.19.0-arm64-desktop SMP mod_unload modversions aarch64
root@phytium-PC:/lib/modules/4.19.0-arm64-desktop# modinfo ch9344
filename: /lib/modules/4.19.0-arm64-desktop/kernel/drivers/tty/wch/ch9344ser/ch9344.ko
alias: char-major-168-*
license: GPL
description: USB serial driver for ch9344/ch348.
author: WCH@TECH39
alias: usb:v1A86p55D9d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v1A86pE018d*dc*dsc*dp*ic*isc*ip*in*
depends:
intree: Y
name: ch9344
vermagic: 4.19.0-arm64-desktop SMP mod_unload modversions aarch64
root@phytium-PC:/lib/modules/4.19.0-arm64-desktop#
查看串口收发统计情况:
root@phytium-PC:/proc/tty/driver# cat ttyAMA
serinfo:1.0 driver revision:
0: uart:SBSA mmio:0x28001000 irq:5 tx:239216 rx:706 RTS|DTR
1: uart:SBSA mmio:0x28000000 irq:6 tx:0 rx:0
2: uart:SBSA mmio:0x28002000 irq:7 tx:0 rx:0
3: uart:SBSA mmio:0x28003000 irq:8 tx:0 rx:0
root@phytium-PC:/proc/tty/driver# cat usbserial
usbserinfo:1.0 driver:2.0
sbserinfo:1.0 driver:2.0
三、串口测试方法
3.1 用cutecom工具测试串口通信
cutecom是图形化工具。
类似windows的串口调试助手,使用和配置较为简单,详细请参考网络教程:
https://blog.csdn.net/hanxv_1987/article/details/106967108
3.2 用sh脚本测试串口通信
串口测试也可以通过linux最基础的sh脚本实现,用户可根据需求编译简单的sh测试脚本,以下是sh串口测试脚本的示例,使用时按照脚本提示输入对应参数,完成配置即可,使用示例如下:
# sh ./uarttest.sh
可用串口列表:
crw-rw---- 1 root root 204, 64 2023-07-11 21:23 /dev/ttyAMA0
crw-rw---- 1 root root 204, 65 2023-07-11 21:23 /dev/ttyAMA1
crwxrwxrwx 1 root root 204, 66 2023-07-11 21:23 /dev/ttyAMA2
crw-rw---- 1 root root 204, 67 2023-07-11 21:23 /dev/ttyAMA3
crw-rw---- 1 root root 204, 68 2023-07-11 23:04 /dev/ttyAMA4
crw-rw---- 1 root root 204, 69 2023-07-11 21:23 /dev/ttyAMA5
crw-rw---- 1 root root 204, 70 2023-07-11 21:23 /dev/ttyAMA6
crw-rw---- 1 root root 204, 71 2023-07-11 21:23 /dev/ttyAMA7
crw-rw---- 1 root root 204, 72 2023-07-11 21:23 /dev/ttyAMA8
请选择要测试的串口(例如: /dev/ttyAMA0): /dev/ttyAMA3
请输入波特率(例如: 9600): 9600
请选择奇偶校验位:
1. None
2. Odd
3. Even
1
请选择停止位数:
1. One
2. Two
1
./uarttest.sh[69]: stty: inaccess[ 7951.351109] uart-pl011 2800f000.uart: no DMA platform data
ible or not found
开始串口测试,请按Ctrl-C结束测试。
aaaaa
uarttest.sh脚本源码关注公众号,回复“uart测试脚本”获取。
3.3 Minicom介绍及使用方法
Minicom是一个用于串行通信的开源程序,它可以用于与其他设备(如调制解调器、路由器、嵌入式设备等)进行通信。
①安装Minicom
在大多数Linux发行版中,您可以通过包管理器直接安装Minicom。例如,在Debian或Ubuntu上,您可以使用以下命令安装Minicom:
sudo apt-get install minicom
②配置串口参数
在开始使用Minicom之前,您需要配置将要使用的串口参数,例如波特率、数据位、校验位、停止位等。您可以使用以下命令打开Minicom的配置界面:
sudo minicom -s
在配置界面中,选择“Serial Port Setup”选项,然后配置您的串口参数。通常,默认的波特率是115200,其他参数根据您的需求进行配置。确保将正确的串口设备(如 /dev/ttyAMA0
)输入到“Serial Device”字段中,详细如下图所示:
③连接到设备
配置完串口参数后,您可以使用以下命令启动Minicom并连接到设备:
sudo minicom
如果一切设置正确,Minicom将会连接到您的设备并显示接收到的数据,如下图所示:
④使用Minicom
一旦连接成功,您可以使用Minicom与设备进行交互。以下是一些常用的Minicom命令和快捷键:
Ctrl+A, Z: 打开Minicom的命令菜单,可以在此菜单中执行各种操作。
Ctrl+A, X: 退出Minicom。
Ctrl+A, Q: 退出Minicom并断开与设备的连接。
您可以发送命令、接收设备返回的数据,并进行串口调试和配置。
⑤退出Minicom
要退出Minicom,您可以使用以下快捷键:
Ctrl+A, X: 选择退出Minicom。
Ctrl+A, Q: 选择退出Minicom并断开与设备的连接。
参考资料
Minicom官方文档:
https://wiki.mutt.org/Minicom
UOS Minicom视频教程:
https://www.bilibili.com/video/BV1BS4y1Y71T/?sharesource=copyweb&vd_source=bc9e51f8071a87adf626e055fae42a76
欢迎关注,回复“加群”加入飞腾爱好者交流群
往期文章
欢迎飞腾爱好者加入微信交流群。 群内大家可以在群内交流遇到的问题,分享自己的调试心得。 希望大家共建飞腾友谊!