技术贴:如何在ELF-RK3506开发板实现PWM功能的复用
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。
1.2. 匹配开发板引脚
硬件原理图路径:ELF-RK3506开发板资料包 5-硬件资料 5-0 PDF原理图
从硬件原理图可知,连接器66引脚号对应开发板功能GPIO0_B5。
1.3. 定位开发板物理位置
核心板的功能引脚通过连接器传输到底板,下面需要确认目标引脚在底板上的具体物理接口位置。
在原理图中搜索GPIO0_B5网络标号,对应开发板P9排针的7引脚。
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。
2.2. 设备节点配置
在设备树文件 kernel/arch/arm/boot/dts/rk3502.dtsi 中已经定义好 12 路 PWM 信号的相关节点和使用的引脚。
打开 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"; };
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/
pwm 驱动中生成的节点是依次向下枚举的,pwmchip0 节点对应的是设备树中的 pwm1_8ch_3,pwmchip1 节点对应的是设备树中的 pwm0_4ch_0,pwmchip2 节点对应的是设备树中的 pwm0_4ch_1,pwmchip3 节点对应的是设备树中的 pwm0_4ch_2。
4. 功能测试
4.1. 硬件连接
左侧风扇模块引脚,右侧开发板引脚:
S--------GPIO0_B5(P9的7引脚)
V-------VCC_5V(P9的4引脚,红色座子)
G-------GND(P9的6引脚,黑色座子)
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复用的配置与功能验证。
-
07.13
永远的蔚蓝星球内购破解版—无限钻石官方下载
-
07.13
金铲铲之战S17赛季五费全羁绊弈子 金铲铲之战S17羁绊棋子
-
07.13
神奇幻想兑换码大全—永久有效礼包码整理总汇
-
07.13
动物夜市游戏无限金币破解版—无限萝卜免内购版下载
-
07.13
驱散小恶魔礼包码长期有效—16个兑换码最新领取
-
07.13
指尖像素城礼包码全部有效 通用礼包码十个
-
- 做知识管理:就记住这三句话
- 07.13
-
-
-
-
- 如何为你的 Skills 构建一个自我改进循环
- 07.13
-
- 开源中医Skill:把倪海厦课程变成可检索知识库
- 07.13
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏