一、概述
這篇文章根據(jù)海思SS528芯片提供的
《22AP30 H.265編解碼處理器用戶指南.pdf》
文檔(文檔路徑:SS528ReleaseDoc\hardware\chip
),演示怎樣操作GPIO寄存器來控制某個IO口輸出高電平,本文控制的是GPIO20_6
。關(guān)于如何操作寄存器的步驟,在文檔的
13.6.3
有提供說明,結(jié)合本文目的分為三個步驟:
- 配置復(fù)用控制寄存器,使能GPIO功能;
- 配置
GPIO_DIR
寄存器,選擇輸出;- 配置
GPIO_DATA
寄存器,寫入輸出值 1 ,表示輸出高電平。![]()
二、配置復(fù)用控制寄存器,使能GPIO功能
復(fù)用是指該管腳有多種功能,可以根據(jù)控制寄存器里的值,來選擇使用哪個功能。
關(guān)于GPIO管腳復(fù)用控制寄存器的說明在22AP30_PINOUT_CN.xlsx
(文檔路徑:SS528ReleaseDoc\hardware\chip
),打開22AP30_PINOUT_CN.xlsx
,在下面選擇表格管腳控制寄存器
,按Ctrl+F
搜索GPIO20_6
,找到我們要配置的管腳寄存器,如下圖:根據(jù)表格信息知道,
- 寄存器地址
0x17c701d0
- 寄存器的值可以配置為
0x1200
,表示使能GPIO功能、IO6擋位8、關(guān)閉上拉、打開下拉
![]()
三、配置GPIO_DIR寄存器,選擇輸出
要配置寄存器,首先需要找到它的地址,
GPIO_DIR
寄存器是采用 基地址+偏移地址 的方式來獲得的。GPIO20基地址在
《22AP30 H.265編解碼處理器用戶指南.pdf》
的13.6.4
可以查到,為:0x110a_4000
。
GPIO_DIR
的偏移地址為400,GPIO20_6設(shè)置為輸出功能,即設(shè)置的值第6位為1,其他都為0,用二進(jìn)制表示為0100 0000
,轉(zhuǎn)換為十六進(jìn)制為0x40
;小結(jié):
- GPIO20_6的
GPIO_DIR
寄存器地址為:0x110a4400
- GPIO20_6設(shè)置為輸出,值為:
0x40
。
四、配置GPIO_DATA寄存器,輸出高電平
要配置寄存器,首先需要找到它的地址,
GPIO_DATA
寄存器也是采用 基地址+偏移地址 的方式來獲得的。GPIO20基地址在
《22AP30 H.265編解碼處理器用戶指南.pdf》
的13.6.4
可以查到,為:0x110a_4000
,它的偏移地址給了一個范圍,我們選擇0x3FC
,表示寄存器的[7:0]操作全部有效。如下圖:我們要使GPIO20_6輸出高電平,即設(shè)置的值第6位為1,其他都為0,用二進(jìn)制表示為
0100 0000
,轉(zhuǎn)換為十六進(jìn)制為0x40
;小結(jié):
- GPIO20_6的
GPIO_DATA
寄存器地址為:0x110a43fc
- GPIO20_6設(shè)置為輸出,值為:
0x40
。
五、測試
根據(jù)海思SDK提供的寄存器工具,測試GPIO操作,測試工具在SDK包的 路徑為:SS528V100R001C02SPC003\SS528V100_SDK_V2.0.0.3\osdrv\tools\board\reg-tools-1.0.0\bin
測試結(jié)果如圖:
測試命令如下:文章來源:http://www.zghlxwxcb.cn/news/detail-475788.html
# 配置復(fù)用寄存器
bspmm 0x17c701d0 0x00001200
# 配置方向寄存器為輸出
bspmm 0x110a4400 0x40
# 配置輸出高電平
bspmm 0x110a43fc 0x40
# 配置輸出高電平
bspmm 0x110a43fc 0x00
如果文章有幫助的話,點贊??、收藏?,支持一波,謝謝 ??????文章來源地址http://www.zghlxwxcb.cn/news/detail-475788.html
到了這里,關(guān)于【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管腳輸出高、低電平的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!