91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板實現(xiàn)I2C功能復用

ElfBoard ? 2025-12-04 10:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

IOMUX(引腳功能復用)是一項關(guān)鍵硬件設(shè)計技術(shù),旨在幫助芯片廠商更高效地利用有限的引腳資源。它借助內(nèi)部寄存器,允許開發(fā)者通過軟件將同一物理引腳靈活配置為多種不同功能,例如GPIO、UARTI2C等。由于此項配置的具體實現(xiàn)因SoC平臺而異,本文特以【RK3588】ELF 2開發(fā)板上的I2C6引腳為例,系統(tǒng)說明從硬件規(guī)格查詢到軟件驅(qū)動配置的完整步驟。

1.引腳確認

在開始配置之前,首先需要了解【RK3588】ELF 2開發(fā)板的接口布局特點。ELF 2開發(fā)板的40Pin 2.54mm連接器兼容樹莓派40Pin連接器,集成了I2C、SPI、UART等常用通信接口及多路GPIO;而20Pin 2.54mm連接器則額外引出40Pin連接器未涵蓋的接口或拓展接口,包括SARADC、PWM和GPIO等。

引腳選擇原則:進行引腳復用時,應優(yōu)先選擇40Pin或20Pin連接器上的引腳,這類引腳位于開發(fā)板標準排針接口,無需額外焊接,接線更加便捷。

1.1查看引腳復用表

引腳復用表路徑:ELF 2開發(fā)板資料包\05-硬件資料\05-4 管腳分配表

打開引腳復用表后,可以看到Alt0~Alt9列是引腳的核心復用功能區(qū),這10列分別代表該引腳可配置的10種備選功能(部分未啟用列可能為空)。在表格中搜索"I2C6",所有Alt列中包含"I2C6"的行都會被篩選出來。

雖然支持復用為I2C6功能的引腳很多,但結(jié)合"優(yōu)先選擇40Pin或20Pin連接器引腳"的原則,最終選定P4_38和P4_40引腳:其中P4_38復用為I2C6_SCL_M4功能,P4_40復用為I2C6_SDA_M4功能。

wKgZPGkw6M2AXKaXAABzelzXgZk086.png

1.2匹配開發(fā)板引腳

硬件原理圖路徑:ELF 2開發(fā)板資料包\05-硬件資料\05-0 PDF原理圖

從硬件原理圖可知,【RK3588】ELF 2開發(fā)板共使用4個連接器,其中"P4"代表第4號連接器。需要先定位到該連接器,再查找其38號和40號引腳。

P4_38引腳對應開發(fā)板功能:GPIO2_C4--GPIO3_A1(左側(cè)GPIO2_C4為3576開發(fā)板引腳功能,右側(cè)GPIO3_A1為3588芯片引腳功能)

P4_40引腳對應開發(fā)板功能:GPIO2_C3--GPIO3_A0(左側(cè)GPIO2_C3為3576開發(fā)板引腳功能,右側(cè)GPIO3_A0為3588芯片引腳功能)

wKgZPGkw6neAX_VxAASWRpoRQow518.png

1.3定位開發(fā)板物理位置

核心板的功能引腳通過連接器傳輸?shù)降装澹旅嫘枰_認目標引腳在底板上的具體物理接口位置。

在原理圖中分別搜索GPIO2_C4--GPIO3_A1和GPIO2_C3--GPIO3_A0網(wǎng)絡(luò)標號:

GPIO2_C4--GPIO3_A1(P4_38引腳對應的網(wǎng)絡(luò)標號)對應開發(fā)板P26接口的32引腳。

GPIO2_C3--GPIO3_A0(P4_40引腳對應的網(wǎng)絡(luò)標號)對應開發(fā)板P26接口的35引腳。

wKgZPGkw6rKAEKRUAAQtjberXgY256.png

2.源碼適配

在完成硬件引腳確認后,接下來需要進行軟件層面的配置工作,主要包括設(shè)備樹中的IOMUX配置和設(shè)備節(jié)點配置。

2.1IOMUX配置

確定引腳后,需要在設(shè)備樹中配置IOMUX參數(shù)以確保引腳正確工作在I2C6模式。打開以下文件:

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

找到UART3相關(guān)定義,其中uart3m1_xfer節(jié)點已明確配置GPIO3_A1(I2C6_SCL_M4)和GPIO3_A0(I2C6_SDA_M4)的復用參數(shù),配置內(nèi)容如下:

wKgZO2kw6x6ANI-sAAE5Cn1sK2M333.png

2.2設(shè)備節(jié)點配置

完成IOMUX配置后,需要在設(shè)備樹中啟用I2C6設(shè)備節(jié)點。打開以下文字文件 :

kernel/arch/arm64/boot/dts/rockchip/elf2-3588-common.dtsi

添加I2C6節(jié)點引用,指定引腳配置為i2c6m4_xfer,啟用節(jié)點功能,并在該節(jié)點下添加光線傳感器設(shè)備,配置如下:

&i2c6 { status = "okay"; pinctrl-0 = <&i2c6m4_xfer>; bh1750:bh1750@23 { compatible = "elfboard,bh1750"; reg = <0x23>; status = "okay"; }; };

wKgZPGkw60KAL69aAACctNZykO8093.png


2.3編譯

配置完成后,需要重新編譯內(nèi)核以生成包含新配置的鏡像文件。

執(zhí)行編譯命令,生成內(nèi)核鏡像:

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

編譯完成后,將在 kernel 目錄下生成 boot.img 內(nèi)核鏡像文件。


3.燒錄與驗證

編譯生成新的內(nèi)核鏡像后,需將其燒錄到開發(fā)板并完成基礎(chǔ)驗證。

1.將kernel目錄下生成的boot.img內(nèi)核鏡像文件燒錄到開發(fā)板。

2.開發(fā)板啟動后,/dev目錄會自動生成I2C6對應的設(shè)備節(jié)點i2c-6,通過以下命令驗證節(jié)點是否存在:

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

wKgZPGkw7BKAc92FAAAUwMje3Jc093.png


4.功能測試

4.1測試準備

1.測試驅(qū)動、測試應用下載

https://forlinx-book.yuque.com/umxagc/vzgvcx/xoclfmmeispbak3h

2.硬件引腳連接(左邊為光線傳感器引腳,右邊為【RK3588】ELF 2開發(fā)板引腳):

SDA-------I2C6--SDA(P26的35引腳)

SCL--------I2C6--SCL(P26的32引腳)

VCC-------3.3V(P26的1引腳)

GND-------GND(P26的6引腳)

光線傳感器與【RK3588】ELF 2開發(fā)板連接如圖:

wKgZO2kw7ECAP0OaAA85mEjZ9Wc044.png


4.2編譯驅(qū)動模塊

將驅(qū)動文件(bh1750.c、Makefile)、應用文件(bh1750app.c)復制到開發(fā)環(huán)境的/home/elf/work路徑下。

4.2.1修改Makefile

配置環(huán)境變量,在終端執(zhí)行以下命令,添加交叉編譯工具鏈路徑:

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編譯驅(qū)動

在/home/elf/work目錄下執(zhí)行make命令,生成bh1750.ko驅(qū)動模塊:

elf@ubuntu:~/work$make

wKgZO2kw7HuAMXqnAADUvp_rX2Y079.png

4.3編譯測試APP

執(zhí)行交叉編譯命令,生成可執(zhí)行文件:

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

wKgZPGkw7KaAA2O7AABlBOzNb3s686.png

通過file命令確認應用為ARM架構(gòu)(支持開發(fā)板運行)。

4.4開發(fā)板測試

將bh1750.ko驅(qū)動模塊和bh1750app應用通過U盤拷貝至開發(fā)板/root目錄。

執(zhí)行以下命令加載驅(qū)動,生成設(shè)備節(jié)點/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

運行測試應用,執(zhí)行應用程序讀取光線傳感器數(shù)值:

root@elf2-buildroot:~# ./bh1750app /dev/bh1750

wKgZO2kw7NWAMitHAAALR9JXA7w888.png

通過上述步驟操作,即可完成【RK3588】ELF 2開發(fā)板的I2C功能復用配置。本文旨在為各位嵌入式開發(fā)愛好者提供切實可行的操作參考,若在實際調(diào)試過程中遇到任何問題,歡迎隨時交流探討。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6076

    文章

    45498

    瀏覽量

    670579
  • 嵌入式
    +關(guān)注

    關(guān)注

    5199

    文章

    20454

    瀏覽量

    334234
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6293

    瀏覽量

    118222
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀 瑞芯微旗艦芯RK3588系列
    的頭像 發(fā)表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    ElfBoard技術(shù)|如何在RK3588ELF 2開發(fā)板上進行根系統(tǒng)的定制

    ELF 2開發(fā)板已經(jīng)適配了Linux 5.10及Elf2 Desktop 22.04操作系統(tǒng),其中Elf2 Desktop 22.04系統(tǒng)是
    的頭像 發(fā)表于 07-02 16:33 ?3016次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</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'>開發(fā)板</b>上進行根系統(tǒng)的定制

    技術(shù)|【RK3588ELF 2開發(fā)板如何添加exFAT和NTFS文件系統(tǒng)格式

    基于RK3588設(shè)計的ELF2開發(fā)板在搭載Desktop22.04系統(tǒng)時,對TF卡的文件系統(tǒng)支持存在以下限制:不支持exFAT格式;支持NTFS格式,但需手動掛載;針對上述兼容性問題,本文將介紹
    的頭像 發(fā)表于 08-27 17:21 ?3543次閱讀
    <b class='flag-5'>技術(shù)</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'>開發(fā)板</b>如何添加exFAT和NTFS文件系統(tǒng)格式

    ElfBoard技術(shù)|如何在RK3588ELF 2開發(fā)板上進行UART引腳復用配置

    IOMUX(引腳功能復用)是芯片廠商為高效利用有限硬件引腳資源而設(shè)計的關(guān)鍵技術(shù),它允許單個物理引腳通過軟件配置為多種不同的功能(如GPIO、UART、
    的頭像 發(fā)表于 11-18 16:54 ?5483次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</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'>開發(fā)板</b>上進行UART引腳<b class='flag-5'>復用</b>配置

    RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree

    GPU負載高時自動通知RK860-2調(diào)高CPU電壓 RK3588 Power Tree完整版圖太大,截圖看不完,需要的可以下載附件完成版。 RK3588 EVB開發(fā)板原理圖 往
    發(fā)表于 03-01 11:38

    RK3588 EVB 開發(fā)板介紹

    S EVB在接口及開發(fā)板尺寸上進行了優(yōu)化,尺寸為20cmX14cm,適用于高端平板、AR/VR、個人移動互聯(lián)網(wǎng)設(shè)備等產(chǎn)品。圖:RK3588S EVB 系統(tǒng)框圖 RK3588S同樣配備RK806
    發(fā)表于 03-16 16:39

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 開發(fā)板上有 4 個片上 I2C 控制器。本文主要描述如何在開發(fā)板上配置
    的頭像 發(fā)表于 11-29 08:47 ?2185次閱讀
    Firefly-<b class='flag-5'>RK</b>3128主板<b class='flag-5'>I2C</b>控制器

    迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    RK3588開發(fā)板
    的頭像 發(fā)表于 06-09 11:09 ?7444次閱讀
    迅為<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>-基于瑞芯微<b class='flag-5'>RK3588</b>攝像頭方案

    rk3588有哪些開發(fā)板?

    rk3588有哪些開發(fā)板 當前,rk3588開發(fā)板有RockPro64、Rock960 Plus、Rockchip Sapphire、Khadas VIM3 Pro和Firefly
    的頭像 發(fā)表于 08-15 17:04 ?3902次閱讀

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板
    的頭像 發(fā)表于 08-30 14:13 ?2339次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動?-迅為電子<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>

    玩轉(zhuǎn)RK3588開發(fā)板基于connector-split 功能實現(xiàn)多屏聯(lián)動

    玩轉(zhuǎn)RK3588開發(fā)板基于connector-split 功能實現(xiàn)多屏聯(lián)動
    的頭像 發(fā)表于 12-02 16:05 ?1626次閱讀
    玩轉(zhuǎn)<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>基于connector-split <b class='flag-5'>功能</b><b class='flag-5'>實現(xiàn)</b>多屏聯(lián)動

    ElfBoard技術(shù)|【RK3588ELF 2開發(fā)板開機自啟動詳解

    在嵌入式系統(tǒng)開發(fā)中,合理管理開機自啟動項目能夠優(yōu)化系統(tǒng)啟動流程,確保關(guān)鍵服務和應用按時加載運行。本文將詳細介紹在ELF2開發(fā)板Linux5.10.209系統(tǒng)下基于SystemVinit服務管理機制
    的頭像 發(fā)表于 06-27 16:20 ?2054次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</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'>開發(fā)板</b>開機自啟動詳解

    ElfBoard技術(shù)|如何在RK3588ELF 2開發(fā)板用戶空間更換開機Logo

    ,提升了開發(fā)與調(diào)試效率。一、添加Logo分區(qū)elf@ubuntu:~/work/ELF2-linux-source$videvice/rockchip/.chip
    的頭像 發(fā)表于 10-29 11:12 ?1167次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</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'>開發(fā)板</b>用戶空間更換開機Logo

    基于迅為RK3588開發(fā)板實現(xiàn)高性能機器狗主控解決方案-?AI能力實戰(zhàn):YOLOv5目標檢測例程

    基于迅為RK3588開發(fā)板實現(xiàn)高性能機器狗主控解決方案-?AI能力實戰(zhàn):YOLOv5目標檢測例程
    的頭像 發(fā)表于 11-28 11:32 ?1529次閱讀
    基于迅為<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板實現(xiàn)</b>高性能機器狗主控解決方案-?AI能力實戰(zhàn):YOLOv5目標檢測例程

    ElfBoard技術(shù)|如何在RK3588ELF 2開發(fā)板實現(xiàn)GPIO功能復用

    IOMUX(引腳功能復用)是芯片廠商為高效利用有限引腳資源而設(shè)計的關(guān)鍵技術(shù),它允許單個物理引腳通過軟件靈活配置為多種功能(如GPIO、UART、I2
    的頭像 發(fā)表于 12-29 10:37 ?1085次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</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'>開發(fā)板實現(xiàn)</b>GPIO<b class='flag-5'>功能</b><b class='flag-5'>復用</b>