0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ElfBoard技术贴|如何在【RK3588】ELF 2开发板实现I2C功能复用

ElfBoard 2025-12-04 10:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

IOMUX(引脚功能复用)是一项关键硬件设计技术,旨在帮助芯片厂商更高效地利用有限的引脚资源。它借助内部寄存器,允许开发者通过软件将同一物理引脚灵活配置为多种不同功能,例如GPIO、UARTI2C等。由于此项配置的具体实现因SoC平台而异,本文特以【RK3588】ELF 2开发板上的I2C6引脚为例,系统说明从硬件规格查询到软件驱动配置的完整步骤。

1.引脚确认

在开始配置之前,首先需要了解【RK3588】ELF 2开发板的接口布局特点。ELF 2开发板的40Pin 2.54mm连接器兼容树莓派40Pin连接器,集成了I2C、SPI、UART等常用通信接口及多路GPIO;而20Pin 2.54mm连接器则额外引出40Pin连接器未涵盖的接口或拓展接口,包括SARADC、PWM和GPIO等。

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

1.1查看引脚复用表

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

打开引脚复用表后,可以看到Alt0~Alt9列是引脚的核心复用功能区,这10列分别代表该引脚可配置的10种备选功能(部分未启用列可能为空)。在表格中搜索"I2C6",所有Alt列中包含"I2C6"的行都会被筛选出来。

虽然支持复用为I2C6功能的引脚很多,但结合"优先选择40Pin或20Pin连接器引脚"的原则,最终选定P4_38和P4_40引脚:其中P4_38复用为I2C6_SCL_M4功能,P4_40复用为I2C6_SDA_M4功能。

wKgZPGkw6M2AXKaXAABzelzXgZk086.png

1.2匹配开发板引脚

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

从硬件原理图可知,【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芯片引脚功能)

wKgZPGkw6neAX_VxAASWRpoRQow518.png

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引脚。

wKgZPGkw6rKAEKRUAAQtjberXgY256.png

2.源码适配

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

2.1IOMUX配置

确定引脚后,需要在设备树中配置IOMUX参数以确保引脚正确工作在I2C6模式。打开以下文件:

kernel/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi

找到UART3相关定义,其中uart3m1_xfer节点已明确配置GPIO3_A1(I2C6_SCL_M4)和GPIO3_A0(I2C6_SDA_M4)的复用参数,配置内容如下:

wKgZO2kw6x6ANI-sAAE5Cn1sK2M333.png

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 { compatible = "elfboard,bh1750"; reg = <0x23>; status = "okay"; }; };

wKgZPGkw60KAL69aAACctNZykO8093.png


2.3编译

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

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

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

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


3.烧录与验证

编译生成新的内核镜像后,需将其烧录到开发板并完成基础验证。

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

2.开发板启动后,/dev目录会自动生成I2C6对应的设备节点i2c-6,通过以下命令验证节点是否存在:

root@elf2-buildroot:~#ls/dev/i2c-*

wKgZPGkw7BKAc92FAAAUwMje3Jc093.png


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开发板连接如图:

wKgZO2kw7ECAP0OaAA85mEjZ9Wc044.png


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文件进行如下修改:

wKgZO2kw7F2AIWNhAAD1QFfvm2M058.png

将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

wKgZO2kw7HuAMXqnAADUvp_rX2Y079.png

4.3编译测试APP

执行交叉编译命令,生成可执行文件:

elf@ubuntu:~/work$ aarch64-linux-gcc bh1750app.c -o bh1750app elf@ubuntu:~/work$ file bh1750app

wKgZPGkw7KaAA2O7AABlBOzNb3s686.png

通过file命令确认应用为ARM架构(支持开发板运行)。

4.4开发板测试

将bh1750.ko驱动模块和bh1750app应用通过U盘拷贝至开发板/root目录。

执行以下命令加载驱动,生成设备节点/dev/bh1750:

root@elf2-buildroot:~# insmod bh1750.ko [ 231.934533] bh1750: loading out-of-tree module taints 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

wKgZO2kw7NWAMitHAAALR9JXA7w888.png

通过上述步骤操作,即可完成【RK3588】ELF 2开发板的I2C功能复用配置。本文旨在为各位嵌入式开发爱好者提供切实可行的操作参考,若在实际调试过程中遇到任何问题,欢迎随时交流探讨。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45333

    浏览量

    663277
  • 嵌入式
    +关注

    关注

    5186

    文章

    20140

    浏览量

    328629
  • 开发板
    +关注

    关注

    25

    文章

    6116

    浏览量

    113121
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读 瑞芯微旗舰芯RK3588系列
    的头像 发表于 09-22 15:54 2.2w次阅读
    瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b><b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解读

    ElfBoard技术|如何在RK3588ELF 2开发板上进行根系统的定制

    ELF 2开发板已经适配了Linux 5.10及Elf2 Desktop 22.04操作系统,其中Elf2 Desktop 22.04系统是
    的头像 发表于 07-02 16:33 2746次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>上进行根系统的定制

    技术|【RK3588ELF 2开发板如何添加exFAT和NTFS文件系统格式

    基于RK3588设计的ELF2开发板在搭载Desktop22.04系统时,对TF卡的文件系统支持存在以下限制:不支持exFAT格式;支持NTFS格式,但需手动挂载;针对上述兼容性问题,本文将介绍
    的头像 发表于 08-27 17:21 3193次阅读
    <b class='flag-5'>技术</b><b class='flag-5'>贴</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>如何添加exFAT和NTFS文件系统格式

    ElfBoard技术|如何在RK3588ELF 2开发板上进行UART引脚复用配置

    IOMUX(引脚功能复用)是芯片厂商为高效利用有限硬件引脚资源而设计的关键技术,它允许单个物理引脚通过软件配置为多种不同的功能(如GPIO、UART、
    的头像 发表于 11-18 16:54 5051次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>上进行UART引脚<b class='flag-5'>复用</b>配置

    RK3588 EVB开发板原理图讲解【八】 RK3588 power Tree

    GPU负载高时自动通知RK860-2调高CPU电压 RK3588 Power Tree完整版图太大,截图看不完,需要的可以下载附件完成版。 RK3588 EVB开发板原理图 往
    发表于 03-01 11:38

    RK3588 EVB 开发板介绍

    S EVB在接口及开发板尺寸上进行了优化,尺寸为20cmX14cm,适用于高端平板、AR/VR、个人移动互联网设备等产品。图:RK3588S EVB 系统框图 RK3588S同样配备RK806
    发表于 03-16 16:39

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 开发板上有 4 个片上 I2C 控制器。本文主要描述如何在开发板上配置
    的头像 发表于 11-29 08:47 1985次阅读
    Firefly-<b class='flag-5'>RK</b>3128主板<b class='flag-5'>I2C</b>控制器

    迅为RK3588开发板-基于瑞芯微RK3588摄像头方案

    RK3588开发板
    的头像 发表于 06-09 11:09 7002次阅读
    迅为<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>-基于瑞芯微<b class='flag-5'>RK3588</b>摄像头方案

    rk3588有哪些开发板

    rk3588有哪些开发板 当前,rk3588开发板有RockPro64、Rock960 Plus、Rockchip Sapphire、Khadas VIM3 Pro和Firefly
    的头像 发表于 08-15 17:04 3594次阅读

    迅为iTOP-RK3588开发板Buildroot系统功能测试

    迅为iTOP-RK3588开发板Buildroot系统功能测试
    的头像 发表于 03-14 15:42 3274次阅读
    迅为iTOP-<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>Buildroot系统<b class='flag-5'>功能</b>测试

    RK3588!黑神话悟空,启动?-迅为电子RK3588开发板

    RK3588!黑神话悟空,启动?-迅为电子RK3588开发板
    的头像 发表于 08-30 14:13 1968次阅读
    <b class='flag-5'>RK3588</b>!黑神话悟空,启动?-迅为电子<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>

    玩转RK3588开发板基于connector-split 功能实现多屏联动

    玩转RK3588开发板基于connector-split 功能实现多屏联动
    的头像 发表于 12-02 16:05 1344次阅读
    玩转<b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>基于connector-split <b class='flag-5'>功能</b><b class='flag-5'>实现</b>多屏联动

    ElfBoard技术|【RK3588ELF 2开发板开机自启动详解

    在嵌入式系统开发中,合理管理开机自启动项目能够优化系统启动流程,确保关键服务和应用按时加载运行。本文将详细介绍在ELF2开发板Linux5.10.209系统下基于SystemVinit服务管理机制
    的头像 发表于 06-27 16:20 1773次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>开机自启动详解

    ElfBoard技术|如何在RK3588ELF 2开发板用户空间更换开机Logo

    ,提升了开发与调试效率。一、添加Logo分区elf@ubuntu:~/work/ELF2-linux-source$videvice/rockchip/.chip
    的头像 发表于 10-29 11:12 966次阅读
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技术</b><b class='flag-5'>贴</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>开发板</b>用户空间更换开机Logo

    基于迅为RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程

    基于迅为RK3588开发板实现高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程
    的头像 发表于 11-28 11:32 734次阅读
    基于迅为<b class='flag-5'>RK3588</b><b class='flag-5'>开发板实现</b>高性能机器狗主控解决方案- AI能力实战:YOLOv5目标检测例程