最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ù)用配置方法的評論 (共 條)

分享到微博請遵守國家法律
马鞍山市| 喀喇| 全椒县| 光泽县| 通州区| 封开县| 玉龙| 云霄县| 合肥市| 汶川县| 郁南县| 临安市| 朝阳区| 乐平市| 呈贡县| 府谷县| 迭部县| 瑞丽市| 盘山县| 阳泉市| 温州市| 二手房| 诸暨市| 凉山| 贵德县| 中江县| 应城市| 承德县| 启东市| 上思县| 平乐县| 峨边| 通辽市| 武威市| 洛隆县| 蛟河市| 根河市| 平乐县| 酒泉市| 黄陵县| 灌云县|