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

1.2.匹配開(kāi)發(fā)板引腳
硬件原理圖路徑:ELF-RK3506開(kāi)發(fā)板資料包\05-硬件資料\05-0 PDF原理圖
從硬件原理圖可知,連接器86引腳號(hào)對(duì)應(yīng)開(kāi)發(fā)板功能UART1_TX。

1.3.定位開(kāi)發(fā)板物理位置
核心板的功能引腳通過(guò)連接器傳輸?shù)降装澹旅嫘枰_認(rèn)目標(biāo)引腳在底板上的具體物理接口位置。
在原理圖中搜索UART1_TX網(wǎng)絡(luò)標(biāo)號(hào),對(duì)應(yīng)開(kāi)發(fā)板P9排針的8引腳。

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

2.3.編譯
配置完成后,需要重新編譯內(nèi)核以生成包含新配置的鏡像文件。
執(zhí)行編譯命令,生成內(nèi)核鏡像:
elf@ubuntu:~/work/ELF-RK3506-linux-source$./build.sh kernel
編譯完成后,將在kernel目錄下生成boot.img內(nèi)核鏡像文件。
3.燒錄與驗(yàn)證
編譯生成新的內(nèi)核鏡像后,下一步是將其燒錄到開(kāi)發(fā)板并進(jìn)行驗(yàn)證。
將kernel目錄下生成的boot.img內(nèi)核鏡像文件燒錄到開(kāi)發(fā)板。
開(kāi)發(fā)板啟動(dòng)后,/dev 目錄下UART1對(duì)應(yīng)的設(shè)備節(jié)點(diǎn)ttyS1已經(jīng)不存在。

4.功能測(cè)試
注意:GPIO引腳的電平范圍為0~3.3V,嚴(yán)禁對(duì)此引腳接入超過(guò)3.3V的電壓。
GPIO的命名規(guī)則為GPIOn_xy其中x的表現(xiàn)形式有ABCD四種。在GPIO計(jì)算編號(hào)的過(guò)程中,A對(duì)應(yīng)1,B對(duì)應(yīng)2,C對(duì)應(yīng)3,D對(duì)應(yīng)4。
計(jì)算公式為:

以GPIO1_D0為例,計(jì)算其GPIO編號(hào)。
GPIO0_A0=0×32+(1?1)×8+0=0
將GPIO引腳配置為輸出模式后,在完成相關(guān)設(shè)置操作后,可使用萬(wàn)用表測(cè)量該引腳的電壓狀態(tài),以驗(yàn)證GPIO輸出模式是否配置成功。
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/export //系統(tǒng)需要導(dǎo)出控制的GPIO引腳編號(hào) root@elf3506-buildroot:~# echo out > /sys/class/gpio/gpio0/direction //設(shè)置為輸出 root@elf3506-buildroot:~# echo 1 > /sys/class/gpio/gpio0/value //設(shè)置IO輸出高電平 root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/gpio0/value //設(shè)置IO輸出低電平 root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/unexport //系統(tǒng)取消導(dǎo)出
將GPIO引腳配置為輸入模式后,通過(guò)向該引腳施加高電平或低電平信號(hào),隨后可以使用cat命令讀取并查看該引腳的當(dāng)前電平狀態(tài)。
root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/export //系統(tǒng)需要導(dǎo)出控制的GPIO引腳編號(hào) root@elf3506-buildroot:~# echo in > /sys/class/gpio/gpio0/direction //設(shè)置為輸出 root@elf3506-buildroot:~# cat /sys/class/gpio/gpio0/value //查看引腳狀態(tài) root@elf3506-buildroot:~# echo 0 > /sys/class/gpio/unexport //系統(tǒng)取消導(dǎo)出
-
單片機(jī)
+關(guān)注
關(guān)注
6077文章
45507瀏覽量
671186 -
嵌入式
+關(guān)注
關(guān)注
5200文章
20495瀏覽量
334688 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6310瀏覽量
118635 -
學(xué)習(xí)開(kāi)發(fā)板
+關(guān)注
關(guān)注
0文章
11瀏覽量
724
發(fā)布評(píng)論請(qǐng)先 登錄
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開(kāi)發(fā)板上進(jìn)行UART引腳復(fù)用配置
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開(kāi)發(fā)板實(shí)現(xiàn)I2C功能復(fù)用
ElfBoard技術(shù)貼|如何在ELF - RK3506開(kāi)發(fā)板上構(gòu)建AI編程環(huán)境
【ELF 1開(kāi)發(fā)板試用】1.開(kāi)箱驗(yàn)貨
ELF技術(shù)貼|如何在開(kāi)發(fā)板上實(shí)現(xiàn)對(duì)Java的支持
ElfBoard技術(shù)貼|如何在ELF 1開(kāi)發(fā)板上搭建流媒體服務(wù)器
RK3506J行業(yè)首發(fā)!飛凌嵌入式FET3506J-S核心板亮相2024工博會(huì)
基于小凌派RK2206開(kāi)發(fā)板:OpenHarmony如何使用IoT接口控制GPIO外設(shè)
基于小凌派RK2206開(kāi)發(fā)板:OpenHarmony如何使用IoT接口控制GPIO中斷
RK3506開(kāi)發(fā)板Linux開(kāi)發(fā)板極致性價(jià)比之選
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開(kāi)發(fā)板實(shí)現(xiàn)GPIO功能復(fù)用
飛凌嵌入式旗下教育品牌推出RV1126B\RK3506B\RK3576新品開(kāi)發(fā)板
【超值首選!僅88元】ELF-RK3506開(kāi)發(fā)板限時(shí)優(yōu)惠震撼來(lái)襲
ElfBoard技術(shù)貼|借助AI編程,輕松搞定ELF-RK3506開(kāi)發(fā)板上光照傳感器的數(shù)據(jù)讀取
飛凌精靈(ElfBoard)技術(shù)貼|如何在ELF-RK3506開(kāi)發(fā)板上實(shí)現(xiàn)GPIO復(fù)用
評(píng)論