2026年全國大學生嵌入式芯片與系統設計競賽報名已正式啟動。本次瑞芯微&飛凌嵌入式賽題共設置了三個參賽平臺(ELF 2開發板、ELF-RV1126B開發板、ELF-RK3506開發板)供選手選擇。為助力參賽隊伍更好地完成項目設計,本文將以RK3506平臺的復用GPIO為例,詳細講解從硬件查詢到軟件配置的完整實現流程。
1.引腳確認
在開始配置之前,首先需要了解ELF-RK3506開發板的接口布局特點。ELF-RK3506開發板配備兩組40Pin排針,其中一組兼容樹莓派40Pin接口,集成了I2C、SPI、UART等常用通信接口及多路GPIO;另一組則引出額外的IO排針,可復用為LCD、DSMC等功能接口。
引腳選擇原則:進行引腳復用時,應優先選擇40Pin排針上的引腳,這類引腳位于開發板標準排針接口,無需額外焊接,接線更加便捷。
1.1.查看引腳復用表
引腳復用表路徑:ELF-RK3506開發板資料包\05-硬件資料\05-4管腳分配表
在引腳復用表中,通過查看Alt0~Alt8列可了解各引腳的可選功能;在Alt0列中所有GPIOn_xy的引腳都可以被復用成GPIO功能。遵循“優先選用40Pin排針引腳”的布局原則,最終選定將連接器引腳號為86的引腳復用成GPIO0_A0功能。

1.2.匹配開發板引腳
硬件原理圖路徑:ELF-RK3506開發板資料包\05-硬件資料\05-0 PDF原理圖
從硬件原理圖可知,連接器86引腳號對應開發板功能UART1_TX。

1.3.定位開發板物理位置
核心板的功能引腳通過連接器傳輸到底板,下面需要確認目標引腳在底板上的具體物理接口位置。
在原理圖中搜索UART1_TX網絡標號,對應開發板P9排針的8引腳。

2.源碼適配
在完成硬件引腳確認后,接下來需要進行軟件層面的配置工作,主要包括設備樹中的IOMUX配置和設備節點配置。
2.1.IOMUX配置
如果引腳不進行其他功能的復用,引腳默認就是GPIO功能。
2.2.設備節點配置
連接器引腳號為86的引腳開發板功能為UART1_TX,需要在設備樹中關閉UART1節點,關閉UART1功能之后默認就是GPIO功能。
打開kernel/arch/arm/boot/dts/elf-3506-common.dtsi,關閉UART1節點引用。
&uart1 { status = "disabled"; pinctrl-names = "default"; pinctrl-0 = <&rm_io0_uart1_tx &rm_io1_uart1_rx>; };

2.3.編譯
配置完成后,需要重新編譯內核以生成包含新配置的鏡像文件。
執行編譯命令,生成內核鏡像:
elf@ubuntu:~/work/ELF-RK3506-linux-source$./build.sh kernel
編譯完成后,將在kernel目錄下生成boot.img內核鏡像文件。
3.燒錄與驗證
編譯生成新的內核鏡像后,下一步是將其燒錄到開發板并進行驗證。
將kernel目錄下生成的boot.img內核鏡像文件燒錄到開發板。
開發板啟動后,/dev 目錄下UART1對應的設備節點ttyS1已經不存在。

4.功能測試
注意:GPIO引腳的電平范圍為0~3.3V,嚴禁對此引腳接入超過3.3V的電壓。
GPIO的命名規則為GPIOn_xy其中x的表現形式有ABCD四種。在GPIO計算編號的過程中,A對應1,B對應2,C對應3,D對應4。
計算公式為:

以GPIO1_D0為例,計算其GPIO編號。
GPIO0_A0=0×32+(1?1)×8+0=0
將GPIO引腳配置為輸出模式后,在完成相關設置操作后,可使用萬用表測量該引腳的電壓狀態,以驗證GPIO輸出模式是否配置成功。
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/export //系統需要導出控制的GPIO引腳編號 root@elf3506-buildroot:~# echo out > /sys/class/gpio/gpio0/direction //設置為輸出 root@elf3506-buildroot:~# echo 1 > /sys/class/gpio/gpio0/value //設置IO輸出高電平 root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/gpio0/value //設置IO輸出低電平 root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/unexport //系統取消導出
將GPIO引腳配置為輸入模式后,通過向該引腳施加高電平或低電平信號,隨后可以使用cat命令讀取并查看該引腳的當前電平狀態。
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/export //系統需要導出控制的GPIO引腳編號 root@elf3506-buildroot:~# echo in > /sys/class/gpio/gpio0/direction //設置為輸出 root@elf3506-buildroot:~# cat /sys/class/gpio/gpio0/value //查看引腳狀態 root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/unexport //系統取消導出
-
單片機
+關注
關注
6077文章
45507瀏覽量
671188 -
嵌入式
+關注
關注
5200文章
20495瀏覽量
334689 -
開發板
+關注
關注
26文章
6310瀏覽量
118635 -
學習開發板
+關注
關注
0文章
11瀏覽量
724
發布評論請先 登錄
ElfBoard技術貼|如何在【RK3588】ELF 2開發板上進行UART引腳復用配置
ElfBoard技術貼|如何在【RK3588】ELF 2開發板實現I2C功能復用
ElfBoard技術貼|如何在ELF - RK3506開發板上構建AI編程環境
【ELF 1開發板試用】1.開箱驗貨
ELF技術貼|如何在開發板上實現對Java的支持
ElfBoard技術貼|如何在ELF 1開發板上搭建流媒體服務器
ElfBoard技術貼|如何在【RK3588】ELF 2開發板實現GPIO功能復用
飛凌嵌入式旗下教育品牌推出RV1126B\RK3506B\RK3576新品開發板
【超值首選!僅88元】ELF-RK3506開發板限時優惠震撼來襲
ElfBoard技術貼|借助AI編程,輕松搞定ELF-RK3506開發板上光照傳感器的數據讀取
飛凌精靈(ElfBoard)技術貼|如何在ELF-RK3506開發板上實現GPIO復用
評論