
------------------------------------
注:詳細(xì)使用可參考《【北京迅為】itop-3588開發(fā)板驅(qū)動開發(fā)指南》
GPIO基本概念
GPIO,即General-Purpose Input/Output,指的是可以由軟件控制的通用輸入輸出引腳。每個GPIO引腳可以配置為輸入或輸出,用來讀取外部設(shè)備的狀態(tài)(如按鍵)或控制外設(shè)(如LED、馬達等)
GPIO應(yīng)用領(lǐng)域
GPIO作為嵌入式設(shè)備中不可或缺的接口,在以下多個領(lǐng)域有廣泛應(yīng)用:
●智能家居:用于控制和監(jiān)測家電、燈光、窗簾、傳感器等智能設(shè)備,通過GPIO引腳讀取傳感器狀態(tài)或發(fā)送控制信號。
●工業(yè)自動化:GPIO用于連接和控制工業(yè)機器、機器人、傳感器等設(shè)備,通過簡單的開關(guān)控制機制實現(xiàn)自動化流程。
●物聯(lián)網(wǎng)(IoT):GPIO在物聯(lián)網(wǎng)設(shè)備中廣泛應(yīng)用,用于與傳感器、執(zhí)行器(如繼電器)等設(shè)備通信,實現(xiàn)數(shù)據(jù)采集和設(shè)備控制。
●汽車電子:在車載系統(tǒng)中,GPIO用于與各種車載傳感器和執(zhí)行器連接,提供控制信號,如車燈、門鎖、報警器等的控制。
●機器人技術(shù):GPIO用于控制機器人中的電機、傳感器和其他外部設(shè)備,實現(xiàn)精準(zhǔn)的硬件控制和反饋處理。
使用RK3588處理器上的GPIO接口
在RK3588平臺上,GPIO的使用非常靈活,既可以通過內(nèi)核提供的sysfs接口進行控制,也可以通過debugfs進行調(diào)試。下面我們將介紹如何通過這兩種方式來操作GPIO。
01
01GPIO選擇

可以看到5號管腳的網(wǎng)絡(luò)標(biāo)號為UART9_RX_M0_BT,然后打開pin腳復(fù)用手冊,根據(jù)這個網(wǎng)絡(luò)標(biāo)號進行搜索,查找到的復(fù)用內(nèi)容如下所示:

可以看到GPIO引腳編號GPIO2_C4,我們將LED的正極連接到這GPIO,負(fù)極連接到GND。
02
02使用sysfs接口控制GPIO
GPIO軟件編程方式有多種,可以寫驅(qū)動程序調(diào)用GPIO函數(shù)操作GPIO,也可以直接通過操作寄存器的方式操作GPIO,還可以通過sysfs方式實現(xiàn)對GPIO的控制。
sysfs接口是Linux內(nèi)核提供的一種標(biāo)準(zhǔn)方式,允許用戶在用戶空間操作GPIO。通過簡單的命令行操作,就可以控制GPIO引腳,點亮或熄滅LED。這里我們使用較為簡單的用戶空間控制GPIO的方法,通過配置GPIO為輸出模式,向其寫入高電平(1)或低電平(0)來控制LED的開關(guān)。
?引腳號計算
引腳編號=控制寄存器的寄存器基數(shù)+控制引腳寄存器位數(shù)。
GPIO2_PC4 pin腳計算方法:
bank = 2; //GPIO2_C4=> 2, bank ∈ [0,4]group = 2; //GPIO2_C4 => 2, group ∈ {(A=0), (B=1), (C=2), (D=3)}X = 4; //GPIO2_C4=>4, X ∈ [0,7]number = group * 8 + X = 2 * 8 + 4 =20;pin = bank*32 + number= 2 * 32 + 20 = 84;
? 導(dǎo)出GPIO引腳
echo 84> /sys/class/gpio/export

? 配置GPIO為輸出模式
接下來,設(shè)置該GPIO引腳為輸出模式:
echo "out" > /sys/class/gpio/gpio84/direction

? 控制LED開關(guān)
通過向GPIO的value文件寫入1或0來控制LED的狀態(tài):
打開LED:
echo 1 > /sys/class/gpio/gpio84/value

關(guān)閉LED:
echo 0 > /sys/class/gpio/gpio84/value

?釋放GPIO引腳
使用完畢后,可以將GPIO從用戶空間移除:
echo 84> /sys/class/gpio/unexport

03
03GPIO調(diào)試
在更高級的調(diào)試場景中,debugfs文件系統(tǒng)提供了對GPIO引腳狀態(tài)和復(fù)用情況的深入查看和調(diào)試能力??梢酝ㄟ^以下步驟獲取GPIO的詳細(xì)信息:
? 查看GPIO的輸入/輸出模式、上拉/下拉設(shè)置等電氣屬性
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinconf-pins | grep 84

? 查看每個引腳的功能模式、引腳復(fù)用選擇以及其他相關(guān)的配置信息
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins| grep 84

通過這個文件,你可以確認(rèn)每個引腳的當(dāng)前復(fù)用配置,例如某個引腳可能被復(fù)用為UART、SPI等設(shè)備的控制引腳。如果想要重新配置為GPIO引腳,可以通過設(shè)備樹進行調(diào)整。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5682瀏覽量
104802 -
GPIO
+關(guān)注
關(guān)注
16文章
1280瀏覽量
54115 -
RK3588
+關(guān)注
關(guān)注
7文章
421瀏覽量
5919 -
迅為電子
+關(guān)注
關(guān)注
0文章
64瀏覽量
175
發(fā)布評論請先 登錄
評論