91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

【北京迅為】iTOP-RK3568OpenHarmony系統南向驅動開發GPIO基礎知識

北京迅為電子 ? 2025-03-06 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE圖形處理器。RK3568支持4K解碼和1080P編碼,支持SATA/PCIE/USB3.0外圍接口。RK3568內置獨立NPU,可用于輕量級人工智能應用。RK3568支持安卓11和linux系統,主要面向物聯網網關、NVR存儲、工控平板、工業檢測、工控盒、卡拉OK、云終端、車載中控等行業。

wKgZPGfJFRCAVVF2AAD8foavbSM335.png

?

【本文摘自】【北京迅為】iTOP-RK3568OpenHarmony系統南向驅動開發

【相關視頻】OpenHarmony學習開發系列教程(第1期 北向基礎篇一)

OpenHarmony學習開發系列教程(第2期 南向基礎篇一)

實戰:第一篇OpenHarmony配置HDF驅動控制LED

第1章GPIO基礎知識

1.1什么是GPIO

GPIO意為通用輸入/輸出接口,GPIO端口可以配置為輸入或輸出狀態,用于產生或讀取高低電平信號。其高低電平的數量、波形組合及變化方式沒有任何協議限制,用戶可以根據需求自由設定。GPIO廣泛應用于驅動簡單外設,如LED、按鍵、開關等,不需要復雜的協議支持。

與GPIO不同,專用IO端口通常是為特定通信協議設計的,具有更嚴格的協議要求。它們的高低電平數量、波形組合以及波形的持續時間必須嚴格遵循相應協議的規范。常見的專用IO協議包括I2C、SPI、UART和PWM等。這些接口通常用于數據傳輸或信號控制,如在傳感器、顯示模塊、通信設備等應用中,要求精確的時序和信號格式。

芯片通常需要提供豐富的功能和外部接口,以滿足各種應用需求。然而,由于芯片的管腳(pin)數量有限,為了最大化資源的利用,許多IO管腳支持多功能設計,并通過軟件配置實現管腳的分時復用。也就是說,同一個管腳可以根據需求在不同的功能模式之間切換。需要注意的是,并非所有IO管腳都可以用作GPIO。某些管腳被專門設計用于支持特定的專用接口(例如用于連接外部存儲芯片或通信模塊),這些管腳的功能是固定的,無法配置為GPIO。而另一些管腳則可以自由配置為GPIO,供用戶根據實際需求靈活使用。

1.2 GPIO引腳計算

為了更高效地管理數量眾多的GPIO,通常會將GPIO管腳按照一定規則進行分組管理。每個GPIO管腳都會被分配一個組號和組內偏移(offset)值,后者表示該管腳在所在組中的位置。通過這種分組方式,可以簡化GPIO的訪問和配置。

不同的芯片,其GPIO的分組數量和每組內包含的管腳數量可能有所不同。這些設計差異通常取決于芯片的架構和應用需求。例如,在RK3568芯片中有5組GPIO bank:GPIO0~GPIO4,每組又以A0~A7, B0~B7, C0~C7, D0~D7作為編號區分,常用以下公式計算引腳:

GPIO pin腳計算公式:pin = bank * 32 + number //bank為組號,number為小組編號

GPIO小組編號計算公式:number = group * 8 + X

引腳編號=控制寄存器的寄存器基數+控制引腳寄存器位數。 在rk3568中,GPIO_number的計算方法為:n*32 + (K-A)*8 + x;括號里面的A、B、C、D分別代表數值0、1、2、3, 在計算時候分別對應即可。

下面演示LED9用戶LED燈的GPIO0_PB7 pin腳計算方法:

bank = 0; //GPIO0_B7=> 0, bank∈[0,4]

group = 1; //GPIO0_B7 => 1, group∈{(A=0), (B=1), (C=2), (D=3)}

X = 7; //GPIO4_D7 => 5, X∈[0,7]

number = group * 8 + X = 1 * 8 + 7 =15

pin = bank*32 + number= 0 * 32 + 15 = 15;

1.3 GPIO用戶態測試

sysfs控制接口為/sys/class/gpio/export和/sys/class/gpio/unexport。如下圖所示:

wKgZO2fJFPGAWB8XAACO5vQx5yg904.png

?

/sys/class/gpio/export用于將GPIO控制從內核空間導出到用戶空間。/sys/class/gpio/unexport用于取消GPIO控制從內核空間到用戶空間的導出。export和unexport,他們都是只寫的。GpiochipX代表GPIO控制器

export:用于將指定編號的GPIO引腳導出。在使用GPIO引腳之前,需要將其導出,導出成功之后才能使用它。注意export文件是只寫文件,不能讀取,將一個指定的編號寫入到export文件中即可將對應的GPIO引腳導出,以GPIO0_PB7為例(pin計算值為15)使用export文件進行導出,導出成功如下圖所示:

echo 15 > export

?

wKgZPGfJFPGAXOUZAACHkWLfpEo325.png

會發現在/sys/class/gpio目錄下生成了一個名為gpio15的文件夾(gpioX,X表示對應的編 號),該文件夾就是導出來的GPIO引腳對應的文件夾,用于管理、控制該GPIO引腳。

unexport:將導出的GPIO引腳刪除。當使用完GPIO引腳之后,需要將導出的引腳刪除,同樣該文件也是只寫文件、不可讀,使用unexport文件進行刪除GPIO0_PB7,刪除成功如下圖所示:

echo 15 > unexport

wKgZPGfJFPGAUI8fAACjwgNBZuQ504.png

可以看到之前生成的 gpio15文件夾就會消失!

需要注意的是,并不是所有 GPIO引腳都可以成功導出,如果對應的GPIO已經被導出或者在內核中被使用了,那便無法成功導出,導出失敗如下圖所示:

?

wKgZPGfJFPGAVSdXAABHiKbLLb4780.png

出現上圖報錯的原因是該GPIO已經被其他GPIO使用,需要在內核中找到使用GPIO的驅動,并取消該驅動才可以正常使用GPIO。在使用GPIO15時,需要取消Linux內核源碼中LED燈的配置,如下所示:

?

wKgZO2fJFPGADsugAADGUcqd5B0951.png

再次使用以下命令導出GPIO0_PB7引腳,導出成功之后進入gpio15文件夾如下圖所示:

echo 15 > export

wKgZO2fJFPGAZ2VpAAB8PVVI_Hc818.png

?

可以看到gpio15文件夾下分別有active_low、device、direction、edge、power、subsystem、uevent、value八個文件,需要關心的文件是active_low、direction、edge以及value這四個屬性文件,接下來分別介紹這四個屬性文件的作用:

direction:配置GPIO引腳為輸入或輸出模式。該文件可讀、可寫,讀表示查看GPIO當前是輸入還是輸出模式,寫表示將GPIO配置為輸入或輸出模式;讀取或寫入操作可取的值為"out"(輸出模式)和"in"(輸入模式)。

在“/sys/class/gpio/gpio15”目錄下使用cat命令查看direction輸入輸出模式,如下圖所示:

cat direction

wKgZPGfJFPKAX5RxAABGACzzLIA517.png

默認狀態下的輸入輸出狀態為“in”,由于direction為可讀可寫,可以使用以下命令將模式配置為輸出,配置完成如下圖所示

echo out > direction

cat direction

wKgZPGfJFPKAM4VXAABT9eIKw94721.png

active_low:用于控制極性得屬性文件,可讀可寫,默認情況下為0,使用cat命令進行文件內容的查看,如下圖所示 :

cat active_low

當 active_low等于0時,value值若為1則引腳輸出高電平,value值若為0則引腳輸出低電平。當active_low等于1時 ,value值若為0則引腳輸出高電平,value值若為1則引腳輸出低電平。

edge:控制中斷的觸發模式,該文件可讀可寫。在配置GPIO引腳的中斷觸發模式之前,需將其設置為輸入模式,四種觸發模式的設置如下所示:

非中斷引腳:echo "none" > edge

上升沿觸發:echo "rising" > edge

下降沿觸發:echo "falling" > edge

邊沿觸發: echo "both" > edge

value:設置高低電平,如果我們要把這個管腳設置成高電平,我們只需要給value設置成1即可,反之,則設置成0。使用命令

echo 1 > value

反之,把GPIO設置成低電平,使用命令

echo 0 > value

wKgZO2fJFPKAL707AAEfrd_mLb4205.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • GPIO
    +關注

    關注

    16

    文章

    1283

    瀏覽量

    54272
  • 驅動開發
    +關注

    關注

    0

    文章

    134

    瀏覽量

    12333
  • OpenHarmony
    +關注

    關注

    30

    文章

    3858

    瀏覽量

    18772
  • RK3568
    +關注

    關注

    5

    文章

    591

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    北京RK3568開發OpenHarmony系統南向驅動開發內核HDF驅動框架架構

    北京RK3568開發OpenHarmony系統
    的頭像 發表于 03-11 14:13 ?1165次閱讀
    <b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統</b><b class='flag-5'>南向</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>內核HDF<b class='flag-5'>驅動</b>框架架構

    RK3568開發驅動指南GPIO系統三級節點操作函數實驗

    RK3568開發驅動指南GPIO系統三級節點
    的頭像 發表于 05-26 15:39 ?895次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>驅動</b>指南<b class='flag-5'>GPIO</b>子<b class='flag-5'>系統</b>三級節點操作函數實驗

    鴻蒙OpenHarmony南向/北向快速開發教程-RK3568開發

    -修改產品信息 P20_源碼定制-關閉自動息屏 P21_源碼定制-修改開機logo和動畫 P22_新建運行北向應用 RK3568開發板同時也支持更多
    發表于 07-23 10:44

    RK3568開發板鴻蒙OpenHarmony系統固件燒寫步驟

    1、RK3568開發板鴻蒙OpenHarmony系統固件燒寫首先拷貝燒寫器(燒寫器在光盤資料
    發表于 08-26 17:45

    系統升級 | RK3568體驗 OpenHarmony 3.2

    iTOP -RK3568開發板使用手冊上新,后續資料會不斷更新,不斷完善,幫助用戶快速入門,大大提升研發速度。北京
    發表于 03-29 10:21

    【教程上新】基于iTOP-RK3568開發板的OpenCV開發手冊

    【教程上新】基于iTOP-RK3568開發板的OpenCV開發手冊
    的頭像 發表于 02-08 15:22 ?1694次閱讀
    【教程上新】基于<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>iTOP-RK3568</b><b class='flag-5'>開發</b>板的OpenCV<b class='flag-5'>開發</b>手冊

    itop-rk3568指導手冊v3

    itop-rk3568指導手冊,專為RK3568編寫!拒絕網絡拼湊!持續更新中.
    發表于 09-06 14:09 ?40次下載

    RK3568開發驅動開發指南-輸入子系統

    RK3568開發驅動開發指南-輸入子系統
    的頭像 發表于 02-23 15:11 ?1634次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>驅動</b><b class='flag-5'>開發</b>指南-輸入子<b class='flag-5'>系統</b>

    iTOP-RK3568/RK3588開發板獲麒麟軟件適配認證

    iTOP-RK3568/RK3588開發板獲麒麟軟件適配認證
    的頭像 發表于 10-18 14:56 ?1298次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>iTOP-RK3568</b>/<b class='flag-5'>RK</b>3588<b class='flag-5'>開發</b>板獲麒麟軟件適配認證

    北京iTOP-RK3568開發OpenHarmony系統南向驅動開發實操-HDF驅動配置LED

    北京iTOP-RK3568開發OpenHarmony
    的頭像 發表于 03-14 14:41 ?758次閱讀
    <b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>iTOP-RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統</b><b class='flag-5'>南向</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實操-HDF<b class='flag-5'>驅動</b>配置LED

    北京iTOP-RK3568開發OpenHarmony系統南向驅動開發-第4章 UART基礎知識

    北京iTOP-RK3568開發OpenHarmony
    的頭像 發表于 03-17 15:50 ?530次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】<b class='flag-5'>iTOP-RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統</b><b class='flag-5'>南向</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-第4章 UART<b class='flag-5'>基礎知識</b>

    北京iTOP-RK3568開發板鴻蒙OpenHarmony系統南向驅動開發實操-HDF驅動配置UART

    北京iTOP-RK3568開發板鴻蒙OpenHarmony
    的頭像 發表于 03-25 11:02 ?762次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】<b class='flag-5'>iTOP-RK3568</b><b class='flag-5'>開發</b>板鴻蒙<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系統</b><b class='flag-5'>南向</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實操-HDF<b class='flag-5'>驅動</b>配置UART

    RK3568驅動指南GPIO系統 GPIO操作函數實驗

    電子RK3568開發驅動指南GPIO系統
    的頭像 發表于 05-28 15:24 ?491次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>驅動</b>指南<b class='flag-5'>GPIO</b>子<b class='flag-5'>系統</b> <b class='flag-5'>GPIO</b>操作函數實驗

    RK3568開發驅動指南GPIO系統GPIO系統API函數的引入

    RK3568開發驅動指南GPIO系統
    的頭像 發表于 05-29 14:05 ?497次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發</b>板<b class='flag-5'>驅動</b>指南<b class='flag-5'>GPIO</b>子<b class='flag-5'>系統</b><b class='flag-5'>GPIO</b>子<b class='flag-5'>系統</b>API函數的引入

    RK3568?重制版RK3568驅動指南全面升級

    RK3568 重制版RK3568驅動指南全面升級
    的頭像 發表于 07-28 15:25 ?435次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>?重制版<b class='flag-5'>RK3568</b><b class='flag-5'>驅動</b>指南全面升級
    主站蜘蛛池模板: 国产资源视频在线观看 | 婷婷热 | 国产美女精品在线 | v天堂网| 欧美不卡视频在线 | 国产精品第九页 | 日本特黄特色大片免费看 | 色天天躁夜夜躁天干天干 | 中文字幕一区二区三区四区五区人 | 亚洲主播自拍 | 久久在线免费观看 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片鸭王 | 亚洲精品乱码久久久久久蜜桃图片 | 久久久久久人精品免费费看 | 亚洲综合涩 | 午夜视频在线观看免费观看在线观看 | 男女激情做爰叫床声视频偷拍 | 亚洲精品美女 | 四虎影院永久免费观看 | 丁香天堂网 | 亚洲成人三级 | 国产尤物在线视频 | 天天夜夜啦啦啦 | 五月婷婷激情六月 | 四虎院影永久在线观看 | 亚洲人成在线精品不卡网 | 免费看国产一级特黄aa大片 | 免费一级毛片女人图片 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 | 色色色色色色色色色色色色 | 91在线视频免费 | 国产午夜视频在线观看 | 激情福利视频 | 色四月婷婷| 在线精品小视频 | 欧美三j片 | 亚洲特级毛片 | 插插好爽爽爽 | 亚洲一区在线观看视频 | 九月婷婷综合 | 中文天堂最新版资源新版天堂资源 |