IOMUX(引脚功能复用)是芯片厂商为高效利用有限硬件引脚资源而设计的关键技术,它允许单个物理引脚通过软件配置为多种不同的功能(如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连接器上的引脚,这类引脚位于开发板标准排针接口,无需额外焊接,接线更加便捷。
引脚复用表路径: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功能。
硬件原理图路径: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芯片引脚功能)。
核心板的功能引脚通过连接器传输到底板,下面需要确认目标引脚在底板上的具体物理接口位置。
在原理图中分别搜索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配置和设备节点配置。
确定引脚后,需要在设备树中配置IOMUX参数以确保引脚正确工作在UART3模式。打开kernel/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi文件,找到UART3相关定义,其中uart3m1_xfer节点已明确配置GPIO3_B6(UART3_RX_M1)和GPIO3_B5(UART3_TX_M1)的复用参数,配置内容如下:
完成IOMUX配置后,需要在设备树中启用UART3设备节点。打开kernel/arch/arm64/boot/dts/rockchip/elf2-3588-common.dtsi文件,添加UART3节点引用,指定引脚配置为uart3m1_xfer,启用节点功能,配置如下:
配置完成后,需要重新编译内核以生成包含新配置的镜像文件。执行编译命令,生成内核镜像:
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正常工作。
注意事项: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开发板硬件连接如图:
开发板上电后,在电脑设备管理器中查看TTL转USB模块识别的COM口(示例为 COM26,以实际识别准)。
打开电脑串口工具,选择端口COM26、设置波特率115200,点击蓝色端口设置图标进行设置,8位数据位、1位停止位、无校验、无流控制,点击OK,点击绿色图标打开串口。
在开发板终端执行以下命令,自动发送测试数据 “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 //发送的数据
命令执行后,串口工具会持续接收该测试数据,可在接收区查看结果。
在开发板终端执行以下命令,启动接收模式:
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引脚复用的配置与功能验证。这一流程确保了硬件资源得到正确配置,软件功能正常运作,为后续的串口通信应用奠定了坚实基础。
关注
6072文章
45298浏览量
662211关注
5文章
103浏览量
19629免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com