国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

TQIMX8MM設(shè)備樹IO引腳復(fù)用配置方法

2023-05-11 15:35 作者:天嵌-倪工  | 我要投稿

▲點擊上方“廣州天嵌”關(guān)注公眾號后回復(fù)TQIMX8MM獲取板卡wiki資料

例程開發(fā)板:TQIMX8MM

開發(fā)板系統(tǒng):Ubuntu 20.04

內(nèi)核版本:5.4.24

前言??

隨著嵌入式系統(tǒng)的不斷發(fā)展,設(shè)備樹作為一種重要的硬件描述語言,已經(jīng)成為了嵌入式系統(tǒng)開發(fā)中不可或缺的一部分。

在設(shè)備樹中,配置IO引腳和復(fù)用功能是非常常見的需求。

這時候,pinctrl就會發(fā)揮重要的作用。

它可以幫助開發(fā)者在不同的設(shè)備上配置GPIO引腳和復(fù)用功能,從而方便地實現(xiàn)硬件資源的管理和控制。

在本文中,我們將詳細介紹如何在設(shè)備樹中借助pinctrl來配置GPIO引腳和復(fù)用功能,以及如何在Linux內(nèi)核中使用這些配置來控制硬件資源。

由于篇幅有限,本文只涉及IO引腳復(fù)用配置,如需完全掌握IO引腳配置并使用,還需進一步了解IO引腳電氣特性配置方法以及GPIO子系統(tǒng)相關(guān)知識。

pinctrl子系統(tǒng)簡介??

大多數(shù)芯片的引腳都是支持復(fù)用的,如某些引腳既可以設(shè)置為GPIO,也可設(shè)置為I2C,此外,與單片機一樣,引腳還需要設(shè)置各種電氣特性,如上拉下拉、速度、驅(qū)動能力等。

在如今芯片上百個引腳的情況下,傳統(tǒng)寄存器配置引腳的方法顯得非常吃力,其中容易造成引腳功能沖突等問題顯得尤為突出,pinctrl就是為解決此類問題而誕生的。

pinctrl 子系統(tǒng)主要工作內(nèi)容如下:

①、獲取設(shè)備樹中 pin 信息。

②、根據(jù)獲取到的 pin 信息來設(shè)置 pin 的復(fù)用功能

③、根據(jù)獲取到的 pin 信息來設(shè)置 pin 的電氣特性,比如上/下拉、速度、驅(qū)動能力等。

對于我們使用者,一般只需在設(shè)備樹中修改引腳相關(guān)屬性既可,引腳初始化等工作均由pinctrl完成。以下將介紹基于pinctrl的引腳復(fù)用配置思路方法。

引腳復(fù)用基本思路

1.根據(jù)需要復(fù)用的功能,查找空閑可用引腳

2.如無空閑引腳,可先關(guān)掉原先占用這些引腳的設(shè)備

3.在對應(yīng)的外設(shè)的設(shè)備樹修改或添加復(fù)用功能引腳

1、確認功能引腳??

比如,需要使用PWM1,在《IMX8MMRM.pdf》芯片參考手冊(以下簡稱芯片手冊)第八章,IO復(fù)用表,找到PWM1:

可以看到此功能可以在這三個引腳中選擇一個作為復(fù)用。

若選擇“I2C4_SDA”引腳作為PWM1,需要在設(shè)備樹中關(guān)閉引腳原來的功能,再進行修改復(fù)用。

2、查找并關(guān)閉引腳占用??

①在“imx8mm-tqv1.dts”設(shè)備樹中搜索“I2C4_SDA”,可以發(fā)現(xiàn)引腳有兩處引用:

此處作為I2C4輸出:

②此處作為GPIO:

③搜索這兩個節(jié)點的名稱,查看是否被調(diào)用:

在“imx8mm-tqv1-lvds.dts”文件中,找到“pinctrl_i2c4”節(jié)點的引用,但并未在此設(shè)備樹文件或其他設(shè)備樹文件中找到“pinctrl_gpio_wlf”的引用,說明只有“pinctrl_i2c4”配置生效,現(xiàn)在引腳被復(fù)用為I2C4的SDA功能:

④將此節(jié)點注釋:

vscode中選中代碼塊,鍵盤Ctrl+/進行注釋

3、重新配置設(shè)備引腳??

①搜索找到pwm1的pinctrl節(jié)點:

在“imx8mm-tqv1.dts”找到:

②找到相關(guān)復(fù)用宏定義:

在“imx8mm-pinfunc.h”中可以找到“PWM1_OUT”的相關(guān)的宏定義,可以搜索到三條,找到“I2C4_SDA”引腳的此條定義:

③替換復(fù)用宏定義:

將“pinctrl_pwm1”節(jié)點下的宏定義替換為剛剛找到的宏定義:

修改完成:

至此,“I2C4_SDA”引腳被復(fù)用成“PWM1_OUT”功能。

下面列舉I2C的引腳配置。

I2C引腳復(fù)用配置 ?

由于不同外設(shè)的復(fù)用方式各有不同,需要具體情況具體分析。

本例以I2C4引腳復(fù)用配置舉例,在IMX8MM上,通過查看芯片手冊得知,每一路硬件I2C只能用唯一的特定的引腳,無法復(fù)用成其他引腳,但當(dāng)其引腳被其他功能占用時,就需要先關(guān)閉占用引腳的功能。

1.在芯片手冊中查找功能對應(yīng)的引腳

可以看到,要使用“I2C4_SCL”和“I2C4_SDA”:

2.在設(shè)備樹中查找引腳是否被占用,有占用就關(guān)閉:

“I2C4_SDA”被PWM1占用,注釋此節(jié)點,或?qū)⒋斯?jié)點功能引腳改復(fù)用成其他引腳:

這個節(jié)點也用到了此引腳,但節(jié)點未被調(diào)用,可以不用管:

這個同上,未被調(diào)用,不用管:

3.將“pinctrl_i2c4”節(jié)點的引腳設(shè)置為“I2C4_SCL”和“I2C4_SDA”:

至此,在設(shè)備樹中I2C4引腳復(fù)用配置完成。


TQIMX8MM設(shè)備樹IO引腳復(fù)用配置方法的評論 (共 條)

分享到微博請遵守國家法律
北宁市| 凤台县| 聂拉木县| 监利县| 玛多县| 资阳市| 曲沃县| 长沙县| 兴化市| 日喀则市| 綦江县| 兰坪| 五寨县| 江安县| 大冶市| 察雅县| 屏山县| 天气| 横山县| 株洲县| 灵丘县| 萝北县| 永城市| 石河子市| 青冈县| 隆尧县| 淮南市| 元氏县| 抚州市| 兰西县| 尼木县| 乃东县| 仲巴县| 广德县| 宝山区| 方正县| 章丘市| 广灵县| 黄山市| 富锦市| 六盘水市|