技术贴|怎样在ELF-RK3506开发板实现PWM功能的复用

作者:袖梨 2026-07-09

IOMUX引脚复用是优化芯片引脚资源利用率的核心技术可通过软件灵活配置单根物理引脚实现GPIO、UART、I2C等多外设功能切换。各款 SoC 复用配置方法并不统一本文基于 ELF-RK3506开发板以PWM1_CH3复用配置实例梳理硬件确认至软件适配的整套操作流程。

1.引脚确认

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

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

1.1. 查看引脚复用表

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

在引脚复用表中通过查看 Alt0~Alt8 列可了解各引脚的可选功能RK3506B 采用矩阵 IO 设计将98 个功能信号灵活映射至 32 个 RM_IO 引脚。针对 PWM 功能从“RM_IO 功能”列表中找到 PWM1_CH3 信号后在支持 RM_IO 的引脚中遵循“优先选用 40Pin 排针引脚”的布局原则最终选定将 PWM1_CH3 映射至 RM_IO13对应连接器引脚号 66。

17817556846a336f24af760066183156.webp

 

1.2. 匹配开发板引脚

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

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

17817556846a336f24c74d4950603877.webp

1.3. 定位开发板物理位置

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

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

17817556856a336f2522ec4753677837.webp

2. 源码适配

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

2.1. IOMUX配置

确定引脚后需要在设备树中配置IOMUX参数以确保引脚正确工作在pwm1_ch3模式。

打开文件 kernel/arch/arm/boot/dts/rk3506-pinctrl-rmio.dtsi找到pwm1_ch3相关定义可以看到rm_io13_pwm1_ch3节点描述了 GPIO0_B5 复用成PWM1_CH3。

17817556856a336f2574179524779644.webp

2.2. 设备节点配置

在设备树文件 kernel/arch/arm/boot/dts/rk3502.dtsi 中已经定义好 12 路 PWM 信号的相关节点和使用的引脚。

17817556866a336f26a0030501867403.webp

打开 kernel/arch/arm/boot/dts/elf-3506-common.dtsi 添加相关节点引用rm_io13_pwm1_ch3节点并将状态设为“okay”。

&pwm1_8ch_3 {        pinctrl-names = "active";        pinctrl-0 = <&rm_io13_pwm1_ch3>;        status = "okay"; };

17817556866a336f26d3ac1507070864.webp

 

2.3. 编译

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

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

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

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

3. 烧录与验证

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

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

开发板启动后会生成新的pwm节点可通过以下命令验证

root@elf3506-buildroot:~# ls /sys/class/pwm/

17817556876a336f272c19c107668575.webp

pwm 驱动中生成的节点是依次向下枚举的pwmchip0 节点对应的是设备树中的 pwm1_8ch_3pwmchip1 节点对应的是设备树中的 pwm0_4ch_0pwmchip2 节点对应的是设备树中的 pwm0_4ch_1pwmchip3 节点对应的是设备树中的 pwm0_4ch_2。

4. 功能测试

4.1. 硬件连接

左侧风扇模块引脚右侧开发板引脚

S--------GPIO0_B5P9的7引脚

V-------VCC_5VP9的4引脚红色座子

G-------GNDP9的6引脚黑色座子

17817556876a336f274fd96896211328.webp

4.2. 测试

· 导出PWM。

root@elf3506-buildroot:~# echo 0 > /sys/class/pwm/pwmchip0/export

· 设置PWM周期单位为ns。

root@elf3506-buildroot:~# echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period

· 设置极性。

root@elf3506-buildroot:~# echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity

· 设置PWM占空比为50%。

root@elf3506-buildroot:~# echo 500000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle

· 使能PWM功能风扇立即以 50% 占空比对应的转速转动。

root@elf3506-buildroot:~# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

· 失能PWM功能风扇停止转动。

root@elf3506-buildroot:~# echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable

· 取消导出PWM。

root@elf3506-buildroot:~# echo 0 > /sys/class/pwm/pwmchip0/unexport

通过以上步骤即可完成RK3506平台上PWM1_CH3复用的配置与功能验证。

相关文章

精彩推荐