ElfBoard技术贴|如何在【RK3588】ELF 2开发板上进行UART引脚复用配置

OMUX(引脚功能复用)是芯片厂商为高效利用有限硬件引脚资源而设计的关键技术,它允许单个物理引脚通过软件配置为多种不同的功能(如GPIO、UART、I2C等)。不同SoC芯片的配置方式各异,本文将以【RK3588】ELF 2开发板的UART3引脚为例,详细阐述从硬件查找到软件配置的完整流程。

一、引脚确认

在开始配置之前,首先需要了解【RK3588】ELF 2开发板的接口布局特点。【RK3588】ELF 2开发板的40Pin 2.54mm连接器兼容树莓派40Pin连接器,集成了I2C、SPI、UART等常用通信接口及多路GPIO;而20Pin 2.54mm连接器则额外引出40Pin连接器未涵盖的接口或拓展接口,包括SARADC、PWM和GPIO等。

引脚选择原则:进行引脚复用时,应优先选择40Pin或20Pin连接器上的引脚,这类引脚位于开发板标准排针接口,无需额外焊接,接线更加便捷。

1.1查看引脚复用表

引脚复用表路径:ELF 2开发板资料包\05-硬件资料\05-4 管脚分配表

打开引脚复用表后,可以看到Alt0~Alt9列是引脚的核心复用功能区,这10列分别代表该引脚可配置的10种备选功能(部分未启用列可能为空)。在表格中搜索"UART3",所有Alt列中包含"UART3"的行都会被筛选出来。

虽然支持复用为UART3功能的引脚很多,但结合"优先选择40Pin或20Pin连接器引脚"的原则,最终选定P4_46和P4_37引脚:其中P4_46复用为UART3_TX_M1功能,P4_37复用为UART3_RX_M1功能。

1.2匹配开发板引脚

硬件原理图路径:ELF 2开发板资料包\05-硬件资料\05-0 PDF原理图

从硬件原理图可知,ELF 2开发板共使用4个连接器,其中"P4"代表第4号连接器。需要先定位到该连接器,再查找其46号和37号引脚。

P4_46引脚对应开发板功能:GPIO2_D0--GPIO3_B5(左侧GPIO2_D0为3576开发板引脚功能,右侧GPIO3_B5为3588芯片引脚功能)。

P4_37引脚对应开发板功能:GPIO2_D7--GPIO3_B6(左侧GPIO2_D7为3576开发板引脚功能,右侧GPIO3_B6为3588芯片引脚功能)。

1.3定位开发板物理位置

核心板的功能引脚通过连接器传输到底板,下面需要确认目标引脚在底板上的具体物理接口位置。

在原理图中分别搜索GPIO2_D0--GPIO3_B5和GPIO2_D7--GPIO3_B6网络标号:

GPIO2_D0--GPIO3_B5(P4_46引脚对应的网络标号)对应开发板P26接口的11引脚。

GPIO2_D7--GPIO3_B6(P4_37引脚对应的网络标号)对应开发板P26接口的29引脚。

二、源码适配

在完成硬件引脚确认后,接下来需要进行软件层面的配置工作,主要包括设备树中的IOMUX配置和设备节点配置。

2.1IOMUX配置

确定引脚后,需要在设备树中配置IOMUX参数以确保引脚正确工作在UART3模式。打开以下文件,找到UART3相关定义,其中uart3m1_xfer节点已明确配置GPIO3_B6(UART3_RX_M1)和GPIO3_B5(UART3_TX_M1)的复用参数,配置内容如下:

(kernel/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi)

2.2设备节点配置

完成IOMUX配置后,需要在设备树中启用UART3设备节点。打开以下文件,添加UART3节点引用,指定引脚配置为uart3m1_xfer,启用节点功能,配置如下:

(kernel/arch/arm64/boot/dts/rockchip/elf2-3588-common.dtsi)

2.3编译

配置完成后,需要重新编译内核以生成包含新配置的镜像文件。执行编译命令,生成内核镜像:

复制代码
elf@ubuntu:~/work/ELF2-linux-source$ ./build.sh kernel

编译完成后,将在kernel目录下生成boot.img内核镜像文件。

三、烧录与验证

编译生成新的内核镜像后,下一步是将其烧录到开发板并进行验证。将kernel目录下生成的boot.img内核镜像文件烧录到开发板。

开发板启动后,在/dev目录下会生成UART3对应的设备节点ttyS3,可通过以下命令验证:

复制代码
root@elf2-buildroot:~# ls /dev/ttyS3

四、功能测试

确认设备节点生成后,需要进行完整的功能测试以确保UART3正常工作。

4.1测试准备

注意事项:UART引脚电平范围为0~3.3V,严禁接入超过3.3V的电压,避免硬件损坏。

测试工具路径:ELF 2开发板资料包\06-常用工具\06-4 测试工具\SerialTool1.4.0a_Win32_Setup.zip

硬件连接:通过TTL转USB模块连接开发板与电脑,按照模块引脚定义对应连接 UART3_TX、UART3_RX 、VCC以及GND。

TTL转USB模块与【RK3588】ELF 2开发板硬件连接如图:

4.2串口参数配置

开发板上电后,在电脑设备管理器中查看TTL转USB模块识别的COM口(示例为 COM26,以实际识别准)。

打开电脑串口工具,选择端口COM26、设置波特率115200,点击蓝色端口设置图标进行设置,8位数据位、1位停止位、无校验、无流控制,点击OK,点击绿色图标打开串口。

4.3发送数据测试

在开发板终端执行以下命令,自动发送测试数据 "aabbccddeeff":

复制代码
root@elf2-buildroot:~# cmddemo_serialport ttyS3 -o -b 115200 -t aabbccddeeff 1
baudrate=115200,data_bit=8,stop_bit=1,check='O'
set done!
[nwrite=12] aabbccddeeff       //发送的数据

命令执行后,串口工具会持续接收该测试数据,可在接收区查看结果。

4.4接收数据测试

在开发板终端执行以下命令,启动接收模式:

复制代码
root@elf2-buildroot:~# cmddemo_serialport ttyS3 -b 115200

在串口工具的发送区输入测试数据(示例为 "abcdefg"),点击发送:

开发板终端会显示接收到的数据:​​​​​​​

复制代码
root@elf2-buildroot:~# cmddemo_serialport ttyS3 -b 115200
baudrate=115200,data_bit=8,stop_bit=1,check='N'
set done!
[nread=7] abcdefg         //接收到的数据

通过以上步骤,即可完成【RK3588】ELF 2开发板上UART3引脚复用的配置与功能验证。这一流程确保了硬件资源得到正确配置,软件功能正常运作,为后续的串口通信应用奠定了坚实基础。

相关推荐
奔跑中的小象4 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南4 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang4 小时前
LangGraph 状态机实战
人工智能
刹那芳华19924 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作4 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门4 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜4 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟4 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能
天国梦5 小时前
自习室智能化升级避坑指南:天学网AI智习室方案实测与选型建议
大数据·人工智能
azwsm5 小时前
驱动第一阶段——启动流程
单片机·嵌入式硬件