GPIO 配置 和 PINCTRL有啥區別

GPIO(通用輸入/輸出)和 PINCTRL(引腳控制器)是在嵌入式系統中用于管理和控制硬件引腳的關鍵概念。它們在硬件層面上起著不同的作用。

GPIO配置
GPIO 是一種通用的硬件接口,用于控制和讀取數字信號。每個 GPIO 引腳都可以被配置為輸入(讀取信號)或輸出(控制信號)。GPIO 的配置指的是定義和設置特定引腳的輸入或輸出功能。配置 GPIO 包括以下方面:

  • 設置引腳的輸入或輸出模式
  • 配置引腳的電平(高或低)
  • 配置引腳的中斷

在設備樹中,可以使用類似 gpioX 這樣的表示法來描述 GPIO 引腳,其中 X 是引腳的編號。

PINCTRL
PINCTRL 是一種用于配置和控制引腳的子系統或驅動程序。它負責管理硬件引腳的復用和功能選擇。PINCTRL 允許將引腳分配給不同的功能(如 GPIO、I2C、SPI 等),并且可以在運行時動態配置引腳功能。使用 PINCTRL,可以將相同的硬件引腳用于不同的用途。

在設備樹中,PINCTRL 可以通過定義 pinctrl 節點和相關屬性來進行配置,并指定引腳的不同功能配置。這些屬性可能包括引腳編號、輸入輸出模式、電氣特性等。

區別
GPIO 是用于控制和讀取數字信號的通用接口,而 PINCTRL 是管理和配置硬件引腳的子系統。GPIO 配置是指定義和設置引腳的輸入或輸出功能,而 PINCTRL 可以動態配置引腳的不同功能。GPIO 配置是配置引腳本身的特性,而 PINCTRL 配置是管理引腳的復用和功能選擇。兩者在硬件層面上起到不同的作用,但通常在設備樹中一起使用以定義引腳和功能的配置。

讓我們通過一個例子更詳細地說明 GPIO 的配置和 PINCTRL 的使用:

假設我們的嵌入式系統有一個具備 GPIO 功能的引腳,我們希望將其配置為輸入模式,讀取來自外部設備的信號,并在特定條件下觸發中斷。

GPIO 配置
在設備樹中,我們可以定義以下內容來配置 GPIO 引腳:

gpio_example {compatible = "gpio_example";pinctrl-names = "default";pinctrl-0 = <&pinctrl_gpio>;gpio_pin: gpio-pin {gpio-hog;gpios = <&gpio_controller 0 GPIO_ACTIVE_HIGH>;input;interrupts = <IRQ_NUM IRQ_TYPE_EDGE_BOTH>;};
};
  • compatible:指定與該 GPIO 相關的設備或驅動程序的兼容性。
  • pinctrl-namespinctrl-0:指定使用的 PINCTRL 配置集。
  • gpio_pin:定義 GPIO 引腳的節點。
    • gpio-hog:表示將該 GPIO 引腳設置為永久控制模式,以確保其在系統運行時一直被控制。
    • gpios:指定 GPIO 控制器的引用和引腳編號,以及引腳的激活電平。
    • input:將引腳配置為輸入模式。
    • interrupts:指定觸發中斷的相關設置(如中斷線號、中斷觸發類型等)。

以上配置實際上是在設備樹中定義了一個 GPIO 控制器 gpio_controller,將其第0號引腳配置為輸入,啟用中斷,以便該引腳可以讀取傳感器信號并觸發中斷事件。

PINCTRL 配置
將 GPIO 引腳配置為特定功能通常需要 PINCTRL 的參與。以下是一個示例 PINCTRL 的設備樹配置:

pinctrl_gpio: gpio-pinctrl {gpio-controller;gpios = <&gpio_controller 0 GPIO_ACTIVE_HIGH>;pinctrl_gpio_example: gpio-example-pins {pingroups = <&gpio_example_pins>;};
};gpio_example_pins: gpio_example_pins {pinctrl-0 = <&pinctrl_gpio_example_mode>;
};pinctrl_gpio_example_mode: gpio_example_mode {rockchip,pins = <RK_GPIO4 RK_FUNC_GPIO>;
};

上面的設備樹片段定義了一個名為 gpio_controller 的 GPIO 控制器,并將其第0號引腳配置為 GPIO 功能。然后,定義了一個名為 gpio_example_pins 的 PINCTRL 配置集,用于將 GPIO 引腳配置為具體的功能模式。在此示例中,我們將 GPIO 引腳 RK_GPIO4(在 Rockchip 平臺上的GPIO編號)配置為 GPIO 功能。

綜上所述,以上設備樹配置演示了如何通過 GPIO 配置和 PINCTRL 來定義和配置一個 GPIO 引腳,并將其設置為輸入模式以讀取信號,并通過 PINCTRL 指定其特定功能模式。實際的設備樹配置可能因具體的硬件平臺和需求而有所不同。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40283.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40283.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40283.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自動駕駛——駛向未來的革命性技術

自動駕駛——駛向未來的革命性技術 自動駕駛的組件自動駕駛的優勢自動駕駛的應用自動駕駛的未來中國的自動駕駛 自動駕駛是一種技術&#xff0c;它允許車輛在沒有人類駕駛員的情況下自主地進行行駛。它利用各種傳感器、計算機視覺、人工智能和機器學習算法來感知和理解周圍環境…

.net連接mysql,提示找不到請求的 .Net Framework Data Provider。可能沒有安裝

開發完成的.net程序需要連接mysql數據庫&#xff0c;在個人電腦上運行沒問題&#xff0c;別人運行時提示“提示找不到請求的 .Net Framework Data Provider。可能沒有安裝”。經過查詢&#xff0c;安裝Connector/NET 8.1.0&#xff0c;下載地址如下所示&#xff1a; https://d…

Linux touch 命令指南大全

1. 概述 在本教程中,我們將學習touch命令。簡而言之,這個命令允許我們更新文件或目錄的最后修改時間和最后訪問時間。 因此,我們將重點關注如何使用該命令及其各種選項。 請注意,我們使用 Bash 測試了此處顯示的所有命令;但是,它們應該與任何兼容 POSIX 的 shell 一起使…

使用騰訊云輕量服務器Matomo應用模板建網站流量統計系統

騰訊云百科分享使用騰訊云輕量應用服務器Matomo應用模板搭建網站流量統計系統&#xff0c;Matomo 是一款開源的網站數據統計軟件&#xff0c;可以用于跟蹤、分析您的網站的流量&#xff0c;同時充分保障數據安全性、隱私性。該鏡像基于 CentOS 7.6 64位操作系統&#xff0c;已預…

postgresql字段被截斷問題

前言 最近遇到一個問題就是字段名過長&#xff0c;會被pg給截斷&#xff0c;導致原始字段和下游用的的字段不一樣&#xff0c;就會報錯。當然&#xff0c;小伙伴可能會說為什么會用那么長的字段名&#xff0c;每個應用程序里面處理不一樣&#xff0c;我們數據字段每次被使用就…

06-加密算法

加密算法 一、前言知識1、加密解密2、MD5&#xff08;最常見&#xff09;3、SHA4、進制5、時間戳6、URL編碼7、base64編碼8、unescape編碼9、AES加密10、DES&#xff08;類似于base64&#xff09; 二、常見加密形式算法解析三、演示案例1、某 CTF 比賽題目解析2、某 CMS 密碼加…

爆肝整理,Python自動化測試-Pytest參數化實戰封裝,一篇打通...

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 參數化&#xff1…

uniapp案例30余種實戰項目

uniapp案例30余種實戰項目 mpvue框架仿滴滴出行didi-masteruni-app自定義導航欄title-customvue-mpvue-ChatRobot聊天機器人vue-mpvue-ChatRobot-master一款播課類小程序, 基于 mpvue 構建mp-podcast-mpvue-mastermpVue高仿美團小程序教程mpvue-meituan-masteruni-app 二維碼生…

【RS485 - 為什么要接收端計算時間偏移量】

我以前一直以為計算機等的信號傳輸速率都是非常快的&#xff0c;不用計算時間差。 然而在實際應用中發現信息是需要傳輸時間的&#xff0c;而這些時間somehow是可以計算的。 前提信息 波特率 9600&#xff1b; 控制器和執行器通過RS485通信&#xff1b; 控制器發出同步的命令…

spring框架,以及和spring框架相關的Java面試題和spring ioc的注入方式

目錄 一.spring來源&#xff0c;以及介紹 1.spring誕生的背景 2.spring框架 介紹 3.spring框架在使用中的優點以及不足 3.1優點 3.2不足 3.3總結 4.為什么要使用spring 二.將spring框架部署在IDEA中 1.替換pom.xml 2.構建spring所需要的xml文件 三.spring的三種注入…

網絡通信原理IP頭部格式(第四十二課)

字段作用解析:1)版本: 指的IP地址的版本 (IPv4 或 IPV6)2)首部長度: 次數據包的首部長度一共是多少,沒有加可選項3)優先級與服務類型:表示****數據包是否需要優選傳遞4)總長度: 表示的是整個數據包的大小,也就****是首部+數據5)標識符、標志、段偏移量:的作用將拆開的…

無涯教程-Perl - syswrite函數

描述 此函數嘗試將SCALAR中的LENGTH個字節寫入與FILEHANDLE相關的文件。如果指定了OFFSET,則從提供的SCALAR中的OFFSET字節中讀取信息。該函數使用C /操作系統的write()函數,該函數繞過普通緩沖。 語法 以下是此函數的簡單語法- syswrite FILEHANDLE, SCALAR, LENGTH, OFFS…

draw.io導出矢量圖到word報錯text is not svg - cannot display

先參考https://blog.csdn.net/a625750076/article/details/126384831 如果不行&#xff0c;可能是轉存的問題 解決方法&#xff1a;直接在draw.io上操作 第一步 第二步 然后再word中粘貼&#xff0c;依舊是矢量圖哦&#xff01;

Ajax入門+aixos+HTTP協議

一.Ajax入門 概念:AJAX是瀏覽器與服務器進行數據通信的技術 axios使用: 引入axios.js使用axios函數:傳入配置對象,再用.then回調函數接受結果,并做后續處理 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>01.axios使用…

面試題. 零矩陣

編寫一種算法&#xff0c;若M N矩陣中某個元素為0&#xff0c;則將其所在的行與列清零。 示例 1&#xff1a; 輸入&#xff1a; [[1,1,1],[1,0,1],[1,1,1] ] 輸出&#xff1a; [[1,0,1],[0,0,0],[1,0,1] ] 示例 2&#xff1a; 輸入&#xff1a; [[0,1,2,0],[3,4,5,2],[1,3…

獲取excel中的圖片(包含wps中嵌入單元格圖片)

項目中有excel導入功能,并且需要導入excel中的圖片;模板如圖: 已知office中插入的圖片為浮動形式;如圖: wps中可以插入浮動圖片,也可以插入嵌入單元格圖片;如圖: 并且在wps嵌入單元格形式的圖片可以看到使用的是公式;如圖: 問題來了,如何獲取圖片 并且將圖片與單元格進行對應 …

Cat(3):客戶端集成—簡單案例

接下來編寫一個簡單的springboot與Cat整合的案例 1 新建springboot項目 首先創建一個Spring Boot的初始化工程。只需要勾選web依賴即可。 2 添加 Maven 添加依賴 <dependency><groupId>com.dianping.cat</groupId><artifactId>cat-client</artifa…

UE4/5Niagara粒子特效學習(使用UE5.1,適合新手)

目錄 創建空模板 創建粒子 粒子的基礎屬性 粒子的生命周期 顏色 大小設置 生成的位置 Skeletal Mesh Location的效果&#xff1a; Shape Location 添加速度 添加Noise力場 在生成中添加&#xff1a; 效果&#xff1a; ?編輯 在更新中添加&#xff1a; 效果&…

機器學習線性代數基礎

本文是斯坦福大學CS 229機器學習課程的基礎材料&#xff0c;原始文件下載 原文作者&#xff1a;Zico Kolter&#xff0c;修改&#xff1a;Chuong Do&#xff0c; Tengyu Ma 翻譯&#xff1a;黃海廣 備注&#xff1a;請關注github的更新&#xff0c;線性代數和概率論已經更新完畢…

簡述 TCP 和 UDP 的區別以及優缺點和使用場景?

一、TCP與UDP區別總結&#xff1a; 1、TCP面向連接&#xff08;如打電話要先撥號建立連接&#xff09;;UDP是無連接的&#xff0c;即發送數據之前不需要建立連接 2、TCP提供可靠的服務。也就是說&#xff0c;通過TCP連接傳送的數據&#xff0c;無差錯&#xff0c;不丟失&…