扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

飞凌精灵(ElfBoard)技术贴|如何在ELF-RK3506开发板上实现GPIO复用

03/16 16:56
431
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2026年全国大学生嵌入式芯片与系统设计竞赛报名已正式启动。本次瑞芯微&飞凌嵌入式赛题共设置了三个参赛平台(ELF 2开发板、ELF-RV1126B开发板、ELF-RK3506开发板)供选手选择。为助力参赛队伍更好地完成项目设计,本文将以RK3506平台的复用GPIO为例,详细讲解从硬件查询到软件配置的完整实现流程。

1.引脚确认

在开始配置之前,首先需要了解ELF-RK3506开发板的接口布局特点。ELF-RK3506开发板配备两组40Pin排针,其中一组兼容树莓派40Pin接口,集成了I2CSPIUART等常用通信接口及多路GPIO;另一组则引出额外的IO排针,可复用为LCD、DSMC等功能接口。

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

1.1.查看引脚复用表

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

在引脚复用表中,通过查看Alt0~Alt8列可了解各引脚的可选功能;在Alt0列中所有GPIOn_xy的引脚都可以被复用成GPIO功能。遵循“优先选用40Pin排针引脚”的布局原则,最终选定将连接器引脚号为86的引脚复用成GPIO0_A0功能。

1.2.匹配开发板引脚

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

从硬件原理图可知,连接器86引脚号对应开发板功能UART1_TX。

1.3.定位开发板物理位置

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

在原理图中搜索UART1_TX网络标号,对应开发板P9排针的8引脚。

2.源码适配

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

2.1.IOMUX配置

如果引脚不进行其他功能的复用,引脚默认就是GPIO功能。

2.2.设备节点配置

连接器引脚号为86的引脚开发板功能为UART1_TX,需要在设备树中关闭UART1节点,关闭UART1功能之后默认就是GPIO功能。

打开kernel/arch/arm/boot/dts/elf-3506-common.dtsi,关闭UART1节点引用。

&uart1 {
        status = "disabled";
        pinctrl-names = "default";
        pinctrl-0 = <&rm_io0_uart1_tx &rm_io1_uart1_rx>;
};

2.3.编译

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

执行编译命令,生成内核镜像:

elf@ubuntu:~/work/ELF-RK3506-linux-source$ ./build.sh kernel

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

3.烧录与验证

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

将kernel目录下生成的boot.img内核镜像文件烧录到开发板。

开发板启动后,/dev 目录下UART1对应的设备节点ttyS1已经不存在。

4.功能测试

注意:GPIO引脚的电平范围为0~3.3V,严禁对此引脚接入超过3.3V的电压。

GPIO的命名规则为GPIOn_xy其中x的表现形式有ABCD四种。在GPIO计算编号的过程中,A对应1,B对应2,C对应3,D对应4。

计算公式为:

以GPIO1_D0为例,计算其GPIO编号。

GPIO0_A0=0×32+(1−1)×8+0=0

将GPIO引脚配置为输出模式后,在完成相关设置操作后,可使用万用表测量该引脚的电压状态,以验证GPIO输出模式是否配置成功。

root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/export     //系统需要导出控制的GPIO引脚编号
root@elf3506-buildroot:~# echo out > /sys/class/gpio/gpio0/direction //设置为输出
root@elf3506-buildroot:~# echo 1 > /sys/class/gpio/gpio0/value //设置IO输出高电平
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/gpio0/value //设置IO输出低电平
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/unexport    //系统取消导出

将GPIO引脚配置为输入模式后,通过向该引脚施加高电平或低电平信号,随后可以使用cat命令读取并查看该引脚的当前电平状态。

root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/export     //系统需要导出控制的GPIO引脚编号
root@elf3506-buildroot:~# echo in > /sys/class/gpio/gpio0/direction //设置为输出
root@elf3506-buildroot:~# cat /sys/class/gpio/gpio0/value //查看引脚状态
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/unexport    //系统取消导出
飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐