ElfBoard技术贴:在RK3588 ELF 2开发板上实现I2C功能复用
2025-12-04 来源:elecfans
IOMUX(引脚功能复用)是一项关键硬件设计技术,旨在帮助芯片厂商更高效地利用有限的引脚资源。该技术通过内部寄存器,允许软件将同一物理引脚灵活配置为多种不同功能,例如GPIO或其他外设接口。由于IOMUX的具体实现因SoC平台而异,本文以RK3588平台的ELF 2开发板上的I2C6引脚为例,系统地阐述从硬件规格查询到软件驱动配置的完整步骤。
1.引脚确认
在开始配置之前,首先需要了解【RK3588】ELF 2开发板的布局特点。ELF 2开发板的40n 2.54mm兼容40Pin连接器,集成了I2C、SPI、UART等常用及多路GPIO;而20Pin 2.54mm连接器则额外引出40Pin连接器未涵盖的接口或拓展接口,包括SARA、PWM和GPIO等。
引脚选择原则:进行引脚复用时,应优先选择40Pin或20Pin连接器上的引脚,这类引脚位于开发板标准接口,无需额外焊接,接线更加便捷。
1.1查看引脚复用表
引脚复用表路径:
打开引脚复用表后,可以看到Alt0~Alt9列是引脚的核心复用功能区,这10列分别代表该引脚可配置的10种备选功能(部分未启用列可能为空)。在表格中搜索"I2C6",所有Alt列中包含"I2C6"的行都会被筛选出来。
虽然支持复用为I2C6功能的引脚很多,但结合"优先选择40Pin或20Pin连接器引脚"的原则,最终选定P4_38和P4_40引脚:其中P4_38复用为I2C6_SCL_M4功能,P4_40复用为I2C6_A_M4功能。
1.2匹配开发板引脚
硬件原理图路径:
从硬件原理图可知,【RK3588】ELF 2开发板共使用4个连接器,其中"P4"代表第4号连接器。需要先定位到该连接器,再查找其38号和40号引脚。
P4_38引脚对应开发板功能:GPIO2_C4--GPIO3_A1(左侧GPIO2_C4为3576开发板引脚功能,右侧GPIO3_A1为3588芯片引脚功能)
P4_40引脚对应开发板功能:GPIO2_C3--GPIO3_A0(左侧GPIO2_C3为3576开发板引脚功能,右侧GPIO3_A0为3588芯片引脚功能)
1.3定位开发板物理位置
核心板的功能引脚通过连接器传输到底板,下面需要确认目标引脚在底板上的具体物理接口位置。
在原理图中分别搜索GPIO2_C4--GPIO3_A1和GPIO2_C3--GPIO3_A0网络标号:
GPIO2_C4--GPIO3_A1(P4_38引脚对应的网络标号)对应开发板P26接口的32引脚。
GPIO2_C3--GPIO3_A0(P4_40引脚对应的网络标号)对应开发板P26接口的35引脚。
2.源码适配
在完成硬件引脚确认后,接下来需要进行软件层面的配置工作,主要包括设备树中的IOMUX配置和设备节点配置。
2.1IOMUX配置
确定引脚后,需要在设备树中配置IOMUX参数以确保引脚正确工作在I2C6模式。打开以下文件:
kernel/arch/64/boot/dts//rk3588s-pinctrl.dtsi
找到UART3相关定义,其中uart3m1_xfer节点已明确配置GPIO3_A1(I2C6_SCL_M4)和GPIO3_A0(I2C6_SDA_M4)的复用参数,配置内容如下:
2.2设备节点配置
完成IOMUX配置后,需要在设备树中启用I2C6设备节点。打开以下文字文件 :
kernel/arch/arm64/boot/dts/rockchip/elf2-3588-common.dtsi
添加I2C6节点引用,指定引脚配置为i2c6m4_xfer,启用节点功能,并在该节点下添加光线设备,配置如下:
&i2c6 { status = "okay"; pinctrl-0 = <&i2c6m4_xfer>; bh1750:bh1750@23 { compable = "elfboard,bh1750"; reg = <0x23>; status = "okay"; }; };
2.3编译
配置完成后,需要重新编译内核以生成包含新配置的镜像文件。
执行编译命令,生成内核镜像:
elf@ubuntu:~/work/ELF2--source$./build.sh kernel
编译完成后,将在 kernel 目录下生成 boot.img 内核镜像文件。
3.烧录与验证
编译生成新的内核镜像后,需将其烧录到开发板并完成基础验证。
1.将kernel目录下生成的boot.img内核镜像文件烧录到开发板。
2.开发板启动后,/dev目录会自动生成I2C6对应的设备节点i2c-6,通过以下命令验证节点是否存在:
root@elf2-buildroot:~#ls/dev/i2c-*
4.功能测试
4.1测试准备
1.测试驱动、测试应用下载
https://forlinx-book.yuque.com/umxagc/vzgvcx/xoclfmmeispbak3h
2.硬件引脚连接(左边为光线传感器引脚,右边为【RK3588】ELF 2开发板引脚):
SDA-------I2C6--SDA(P26的35引脚)
SCL--------I2C6--SCL(P26的32引脚)
VCC-------3.3V(P26的1引脚)
GND-------GND(P26的6引脚)
光线传感器与【RK3588】ELF 2开发板连接如图:
4.2编译驱动模块
将驱动文件(bh1750.c、Makefile)、应用文件(bh1750app.c)复制到开发环境的/home/elf/work路径下。
4.2.1修改Makefile
配置环境变量,在终端执行以下命令,添加交叉编译工具链路径:
elf@ubuntu:~/work$exportPATH=$PATH:/home/elf/aarch64-buildroot-linux-gnu_sdk-buildroot/usr/bin
打开Makefile文件进行如下修改:
将1处替换为Linux kernel所在路径。
将2、3处替换为交叉编译工具前缀/home/elf/aarch64-buildroot-linux-gnu_sdk-buildroot/bin/aarch64-linux-。
4.2.2编译驱动
在/home/elf/work目录下执行make命令,生成bh1750.ko驱动模块:
elf@ubuntu:~/work$make
4.3编译测试APP
执行交叉编译命令,生成可执行文件:
elf@ubuntu:~/work$ aarch64-linux-gcc bh1750app.c -o bh1750app elf@ubuntu:~/work$ file bh1750app
通过file命令确认应用为ARM架构(支持开发板运行)。
4.4开发板测试
将bh1750.ko驱动模块和bh1750app应用通过U盘拷贝至开发板/root目录。
执行以下命令加载驱动,生成设备节点/dev/bh1750:
root@elf2-buildroot:~# insmod bh1750.ko [ 231.934533] bh1750: long out-of-tree module tnts kernel. [ 232.139143] rk3x-i2c fec80000.i2c: timeout, ipd: 0x90, state: 3 root@elf2-buildroot:~# [ 232.139288] rk3x-i2c fec80000.i2c: SCL hold by slave, check your device. root@elf2-buildroot:~# ls /dev/bh1750 /dev/bh1750
运行测试应用,执行应用程序读取光线传感器数值:
root@elf2-buildroot:~# ./bh1750app /dev/bh1750
通过上述步骤操作,即可完成【RK3588】ELF 2开发板的I2C功能复用配置。本文旨在为各位爱好者提供切实可行的操作参考,若在实际调试过程中遇到任何问题,欢迎随时交流探讨。
- ElfBoard教程:在ELF-RK3506开发板上搭建AI编程环境
- ElfBoard ELF 2开发板基于RK3588的I2C功能复用配置教程
- ElfBoard技术解析:RK3588 ELF 2开发板UART引脚复用配置指南
- ElfBoard技术贴|如何调整eMMC存储分区
- 基于RK3588 NPU的YOLOv8一站式部署实战:目标检测与语义分割全流程指南
- RK3588开发板Android系统烧写实践与关键步骤
- 迅为RK3588开发环境搭建三步曲:从零到一轻松入门
- 基于RK3588平台的高性能机器狗主控与YOLOv5目标检测实战
- 技术解读 | RK3588高温稳定运行下的thermal管理机制分析
- 技术分享 | RK3588集成Xenomai3实时补丁实践
- 嵌入式的风向变了:2026纽伦堡嵌入式展透露这些趋势
- 高通确认不在GDC 2026发布新款骁龙G系列掌机处理器SoC
- 行业评论 从工具到平台:如何化解跨架构时代的工程开发和管理难题
- 阿里达摩院发布玄铁C950,打破全球RISC-V CPU性能纪录
- 面向嵌入式部署的神经网络优化:模型压缩深度解析
- Mujoco中添加Apriltag标签并实现相机识别教程
- 摩尔线程MTT S5000全面适配Qwen3.5三款新模型
- 英飞凌与宝马集团携手合作,基于Neue Klasse架构塑造软件定义汽车的未来
- 物理AI仿真新突破:摩尔线程与五一视界共建全栈国产化生态
- 爆火的OpenClaw! 告别云端,米尔RK3576开发板本地部署
- Altera 与 Arm 深化合作,共筑 AI 数据中心高效可编程新方案
- 莱迪思加入英伟达 Halos生态系统,通过Holoscan传感器桥接技术提升物理人工智能安全性
- 芯科科技闪耀2026嵌入式世界展 以Connected Intelligence赋能,构建边缘智能网联新生态
- 边缘计算主机盒选购指南:五大核心指标解析
- Arm AGI CPU 更多细节:台积电 3nm 制程、Neoverse V3 微架构
- Arm AGI CPU 重磅发布:构筑代理式 AI 云时代的芯片基石
- Arm 拓展其计算平台矩阵,首次跨足芯片产品
- 阿里达摩院发布RISC-V CPU玄铁C950,首次原生支持千亿参数大模型
- 边缘 AI 加速的 Arm® Cortex® ‑M0+ MCU 如何为电子产品注入更强智能




