IOMUX(引腳功能復用)是芯片廠商為高效利用有限硬件引腳資源而設計的關鍵技術,它允許單個物理引腳通過軟件配置為多種不同的功能(如GPIO、UART、I2C等)。不同SoC芯片的配置方式各異,本文將以【RK3588】ELF 2開發(fā)板的UART3引腳為例,詳細闡述從硬件查找到軟件配置的完整流程。
一、引腳確認
在開始配置之前,首先需要了解【RK3588】ELF 2開發(fā)板的接口布局特點。【RK3588】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種備選功能(部分未啟用列可能為空)。在表格中搜索"UART3",所有Alt列中包含"UART3"的行都會被篩選出來。
雖然支持復用為UART3功能的引腳很多,但結合"優(yōu)先選擇40Pin或20Pin連接器引腳"的原則,最終選定P4_46和P4_37引腳:其中P4_46復用為UART3_TX_M1功能,P4_37復用為UART3_RX_M1功能。


1.2匹配開發(fā)板引腳
硬件原理圖路徑:ELF 2開發(fā)板資料包\05-硬件資料\05-0 PDF原理圖
從硬件原理圖可知,ELF 2開發(fā)板共使用4個連接器,其中"P4"代表第4號連接器。需要先定位到該連接器,再查找其46號和37號引腳。
P4_46引腳對應開發(fā)板功能:GPIO2_D0--GPIO3_B5(左側GPIO2_D0為3576開發(fā)板引腳功能,右側GPIO3_B5為3588芯片引腳功能)。
P4_37引腳對應開發(fā)板功能:GPIO2_D7--GPIO3_B6(左側GPIO2_D7為3576開發(fā)板引腳功能,右側GPIO3_B6為3588芯片引腳功能)。

1.3定位開發(fā)板物理位置
核心板的功能引腳通過連接器傳輸?shù)降装澹旅嫘枰_認目標引腳在底板上的具體物理接口位置。
在原理圖中分別搜索GPIO2_D0--GPIO3_B5和GPIO2_D7--GPIO3_B6網(wǎng)絡標號:
GPIO2_D0--GPIO3_B5(P4_46引腳對應的網(wǎng)絡標號)對應開發(fā)板P26接口的11引腳。
GPIO2_D7--GPIO3_B6(P4_37引腳對應的網(wǎng)絡標號)對應開發(fā)板P26接口的29引腳。

二、源碼適配
在完成硬件引腳確認后,接下來需要進行軟件層面的配置工作,主要包括設備樹中的IOMUX配置和設備節(jié)點配置。
2.1IOMUX配置
確定引腳后,需要在設備樹中配置IOMUX參數(shù)以確保引腳正確工作在UART3模式。打開kernel/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi文件,找到UART3相關定義,其中uart3m1_xfer節(jié)點已明確配置GPIO3_B6(UART3_RX_M1)和GPIO3_B5(UART3_TX_M1)的復用參數(shù),配置內容如下:

2.2設備節(jié)點配置
完成IOMUX配置后,需要在設備樹中啟用UART3設備節(jié)點。打開kernel/arch/arm64/boot/dts/rockchip/elf2-3588-common.dtsi文件,添加UART3節(jié)點引用,指定引腳配置為uart3m1_xfer,啟用節(jié)點功能,配置如下:

2.3編譯
配置完成后,需要重新編譯內核以生成包含新配置的鏡像文件。執(zhí)行編譯命令,生成內核鏡像:
elf@ubuntu:~/work/ELF2-linux-source$./build.sh kernel
編譯完成后,將在kernel目錄下生成boot.img內核鏡像文件。
三、燒錄與驗證
編譯生成新的內核鏡像后,下一步是將其燒錄到開發(fā)板并進行驗證。將kernel目錄下生成的boot.img內核鏡像文件燒錄到開發(fā)板。
開發(fā)板啟動后,在/dev目錄下會生成UART3對應的設備節(jié)點ttyS3,可通過以下命令驗證:
root@elf2-buildroot:~#ls/dev/ttyS3

四、功能測試
確認設備節(jié)點生成后,需要進行完整的功能測試以確保UART3正常工作。
4.1測試準備
注意事項:UART引腳電平范圍為0~3.3V,嚴禁接入超過3.3V的電壓,避免硬件損壞。
測試工具路徑:ELF 2開發(fā)板資料包\06-常用工具\06-4 測試工具\SerialTool1.4.0a_Win32_Setup.zip
硬件連接:通過TTL轉USB模塊連接開發(fā)板與電腦,按照模塊引腳定義對應連接 UART3_TX、UART3_RX 、VCC以及GND。
TTL轉USB模塊與【RK3588】ELF 2開發(fā)板硬件連接如圖:

4.2串口參數(shù)配置
開發(fā)板上電后,在電腦設備管理器中查看TTL轉USB模塊識別的COM口(示例為 COM26,以實際識別準)。

打開電腦串口工具,選擇端口COM26、設置波特率115200,點擊藍色端口設置圖標進行設置,8位數(shù)據(jù)位、1位停止位、無校驗、無流控制,點擊OK,點擊綠色圖標打開串口。

4.3發(fā)送數(shù)據(jù)測試
在開發(fā)板終端執(zhí)行以下命令,自動發(fā)送測試數(shù)據(jù) “aabbccddeeff”:
root@elf2-buildroot:~# cmddemo_serialport ttyS3 -o -b 115200 -t aabbccddeeff 1 baudrate=115200,data_bit=8,stop_bit=1,check='O' set done! [nwrite=12] aabbccddeeff //發(fā)送的數(shù)據(jù)
命令執(zhí)行后,串口工具會持續(xù)接收該測試數(shù)據(jù),可在接收區(qū)查看結果。

4.4接收數(shù)據(jù)測試
在開發(fā)板終端執(zhí)行以下命令,啟動接收模式:
root@elf2-buildroot:~# cmddemo_serialport ttyS3 -b 115200
在串口工具的發(fā)送區(qū)輸入測試數(shù)據(jù)(示例為 “abcdefg”),點擊發(fā)送:

開發(fā)板終端會顯示接收到的數(shù)據(jù):
root@elf2-buildroot:~# cmddemo_serialport ttyS3 -b 115200 baudrate=115200,data_bit=8,stop_bit=1,check='N' set done! [nread=7] abcdefg //接收到的數(shù)據(jù)
通過以上步驟,即可完成【RK3588】ELF 2開發(fā)板上UART3引腳復用的配置與功能驗證。這一流程確保了硬件資源得到正確配置,軟件功能正常運作,為后續(xù)的串口通信應用奠定了堅實基礎。
-
單片機
+關注
關注
6072文章
45304瀏覽量
662384 -
嵌入式開發(fā)板
+關注
關注
5文章
103瀏覽量
19645 -
瑞芯微電子
+關注
關注
1文章
69瀏覽量
10532 -
Linux開發(fā)
+關注
關注
0文章
44瀏覽量
7596 -
RK3588
+關注
關注
8文章
480瀏覽量
7013
發(fā)布評論請先 登錄
Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器
ElfBoard技術貼|如何在【RK3588】ELF 2開發(fā)板上進行根系統(tǒng)的定制
技術貼|【RK3588】ELF 2開發(fā)板如何添加exFAT和NTFS文件系統(tǒng)格式
RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree
RK3588 EVB 開發(fā)板介紹
瑞芯微旗艦芯RK3588開發(fā)板開售 比亞迪為應達利頒獎
rk3588有哪些開發(fā)板?
ElfBoard技術貼|【RK3588】ELF 2開發(fā)板開機自啟動詳解
ElfBoard技術貼|如何在【RK3588】ELF 2開發(fā)板用戶空間更換開機Logo

ElfBoard技術貼|如何在【RK3588】ELF 2開發(fā)板上進行UART引腳復用配置
評論