RK3566开发板UART功能复用配置指南与实战教程

2026-05-13阅读 0热度 0
UART

IOMUX,即引脚功能复用,是现代SoC芯片设计中一项至关重要的技术。它的核心目的很明确:在有限的物理引脚资源下,通过软件配置,让同一个引脚能够灵活扮演GPIO、UART、I2C等不同角色。这极大地提升了硬件设计的灵活性和资源利用率。不过,不同芯片厂商、不同平台的IOMUX配置方法往往各有千秋。今天,我们就以ELF-RK3506开发板为例,手把手带你走一遍将UART2功能映射到特定引脚的完整流程,从硬件查表到软件配置,一步不落。

1. 引脚确认

动手配置之前,得先摸清开发板的“家底”。ELF-RK3506开发板配备了两组40Pin的排针接口。其中一组完全兼容树莓派的40Pin定义,集成了I2C、SPI、UART等常用通信接口以及多路GPIO,非常方便。另一组则引出了额外的IO,可以复用为LCD、DSMC等更专业的功能接口。

这里有个实用的原则:进行引脚复用时,应优先考虑40Pin标准排针上的引脚。为什么?因为这些引脚已经规整地引出到接口上,无需额外飞线或焊接,接线调试最为便捷。

1.1. 查看引脚复用表

一切始于官方资料。你需要找到开发板资料包中的引脚复用对照表(通常路径类似:ELF-RK3506开发板资料包\04-硬件资料\1-ELF-RK3506 引脚复用对照表-20251121)。这张表是引脚的“功能菜单”。

在表中,Alt0到Alt8列清晰地列出了每个引脚支持的所有可选功能。RK3506B芯片采用了矩阵IO设计,能够将多达98个功能信号灵活地映射到32个RM_IO引脚上。我们的目标是UART2。先在“RM_IO功能”列表里找到UART2_TX和UART2_RX这两个信号,然后从支持它们的RM_IO引脚中,根据“优先选用40Pin排针引脚”的原则进行筛选。最终,我们选定将UART2_TX映射到RM_IO26,UART2_RX映射到RM_IO28。对照连接器引脚号,它们分别对应46和55号引脚。

1.2. 匹配开发板引脚

光有连接器引脚号还不够,我们需要知道它在芯片内部的GPIO编号。这时就需要查阅硬件原理图(路径如:ELF-RK3506开发板资料包\04-硬件资料\00- PDF原理图)。

在原理图中定位46和55号引脚,可以发现它们对应的网络标号分别是GPIO1_B3和GPIO1_C3。这就把物理连接器的引脚和芯片内部的GPIO控制器编号对应上了。

1.3. 定位开发板物理位置

最后一步,找到这两个引脚在开发板底板上的具体物理位置。毕竟,我们最终是要把线接上去的。

在原理图中搜索GPIO1_B3和GPIO1_C3这两个网络标号,可以追踪到它们最终连接到了底板上的P14排针,具体是第21脚和第11脚。这样一来,硬件层面的定位工作就全部完成了。

2. 源码适配

硬件引脚确定后,接下来的重头戏就是软件配置。这主要涉及设备树(Device Tree)中的两个部分:IOMUX配置和设备节点配置。

2.1. IOMUX配置

首先,我们需要在设备树中声明引脚的功能复用关系,告诉内核:“请把GPIO1_B3和GPIO1_C3配置成UART2的TX和RX功能。”

打开内核源码中的引脚控制定义文件,通常是 kernel/arch/arm/boot/dts/rk3506-pinctrl-rmio.dtsi。在这个文件里,我们可以找到类似I2C1的配置作为参考。仔细搜索,会发现已经存在定义好的节点:rm_io26_uart2_txrm_io28_uart2_rx。它们正是描述了将RM_IO26(对应GPIO1_B3)复用为UART2_TX,以及将RM_IO28(对应GPIO1_C3)复用为UART2_RX。这省去了我们手动编写配置的麻烦。

2.2. 设备节点配置

引脚复用关系配置好,接下来就要启用UART2这个设备本身。UART2的设备节点通常在核心的设备树文件(如 kernel/arch/arm/boot/dts/rk3502.dtsi)中已经有了基础定义。

我们的任务是在板级设备树文件(例如 kernel/arch/arm/boot/dts/elf-3506-common.dtsi)中,找到或添加UART2的节点,并对其进行配置。关键操作是:1)引用前面定义好的那两个pinctrl节点(&rm_io26_uart2_tx&rm_io28_uart2_rx);2)将状态(status)设置为“okay”以启用它。同时,如果默认状态是“disabled”,需要将其改为“okay”。配置内容大致如下:

&uart2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&rm_io26_uart2_tx &rm_io28_uart2_rx>; };

2.3. 编译

配置保存好后,就需要重新编译内核,让改动生效。

进入内核源码目录,执行编译命令(具体命令可能因环境而异,例如:./build.sh kernel)。编译过程会持续一段时间。完成后,在指定的输出目录(通常是kernel目录下)会生成新的 boot.img 内核镜像文件,这个文件就包含了我们刚刚做的所有设备树配置。

3. 烧录与验证

最后一步,也是检验成果的时刻:烧录与验证。

将新生成的 boot.img 镜像文件烧录到ELF-RK3506开发板上。开发板重新启动后,如果配置一切正确,系统会在 /dev 目录下自动创建UART2对应的设备节点。对于RK3506平台,UART2通常对应 ttyS2

通过串口登录开发板,执行命令 ls /dev/ttyS*ls /dev/tty*,查看 ttyS2 这个设备文件是否已经存在。看到它,就说明UART2的引脚复用配置和驱动加载都成功了。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策