GPIO的內部結構與功能解析

一、GPIO總體結構

?總體構成

1.APB2(外設總線)

APB2總線是微控制器內部連接CPU與外設(如GPIO)的總線,負責CPU對GPIO寄存器的讀寫訪問,支持低速外設通信

2.寄存器

控制GPIO的配置(輸入/輸出模式、上拉/下拉等)和狀態讀取(輸入電平、輸出電平等)

3.驅動器

GPIO驅動器負責將寄存器中設置的電平信號轉換為實際的電壓輸出,驅動外部負載。同時,驅動器也對輸入信號進行緩沖和整形,確保信號穩定傳輸到輸入寄存器,有著數據預處理作用

二、內部構造

某一個端口內部的結構??

1.保護二級管

二極管具有單項導通性,在輸入情況下,當引腳電平低于Vss,Vss與引腳之間二極管導通,防止從GPIO內部汲取電流,同理,當引腳電平高于Vdd,引腳與Vdd之間二極管導通,防止GPIO內部電流過載。

2.上拉電阻和下拉電阻

為了解決引腳懸空導致輸入電平不確定的狀態,以接上拉電阻為例,可以保證默認輸入電壓為高電平,為什么呢,因為GPIO內部的等效電阻非常大,與上拉電阻串聯,根據串聯分壓可以知道電阻的壓降很小,所以輸入等價于固定在高電平。那么為什么需要接上拉電阻呢,直接去掉不行嗎?我的理解是:如果去掉上拉電阻,那么當輸入引腳為0,那么輸入驅動器內部的Vdd與輸入引腳之間就短路,進而可能會導致元器件損壞。

3.施密特觸發器(如圖中肖特基觸發器,翻譯錯誤)

用于對輸入電壓進行整型,提高輸入的穩定性,圖中輸入到輸入寄存器中的某一位,如下圖所示,只有電壓低于下線low或者高于上線low才會變化。同時由于片上外設ADC需要接受模擬量,因此可以在施密特觸發器整型之前獲取輸入的模擬量。

?4.端口輸出

?輸入設置如下,經過二路選擇器來選擇輸出的是GPIOx寄存器的指定比特位or復用功能信號。位設置/清楚寄存器可以用來操作寄存器中的某一位,而不影響其他位(輸出數據寄存器只能整體讀寫)。輸出控制,根據輸出寄存器的位信息,當輸出低電平,P-MOS導通,N-MOS截止,輸出高電平,反之輸出低電平。

GPIO的八種工作模式?

1.浮空輸入、上拉輸入、下拉輸入

三種輸入方式在于是否連接上拉電阻和下拉電阻,這種模式下輸出控制斷開,只進行輸入。當引腳懸空時,浮空輸入電平不確定,上拉輸入電平默認高電平,下拉輸入電平默認低電平。

?2.模擬輸入

模擬輸入時,不連接上拉電阻和下拉電阻。

3.開漏/推挽輸出

當P-MOS無效,N-MOS有效,就是開漏輸出,這時候高電平為高阻態,這可以兼容不同的部件的高電平電壓值,把高電平值交給連接的部件決定(上拉輸入)。同時輸出情況下,可以保持正常讀的功能,感知輸出值,但是輸入情況下不能輸出,可能因為防止輸出高電平,輸入低電平導致短路。

?4.復用開漏/推挽輸出

只不過復用的輸出,引腳的電平是由片上外設所決定的。

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

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

相關文章

汽車總線分析總結(CAN、LIN、FlexRay、MOST、車載以太網)

目錄 一、汽車總線技術概述 二、主流汽車總線技術對比分析 1. CAN總線(Controller Area Network) 2. LIN總線(Local Interconnect Network) 3. FlexRay總線 4. MOST總線(Media Oriented Systems Transport&#x…

WordPress 6.5版本帶來的新功能

WordPress 6.5正式上線了!WordPress團隊再一次為我們帶來了許多新的改進。在全球開發者的共同努力下,WordPress推出了許多新的功能,本文將對其進行詳細總結。 Hostease的虛擬主機現已支持一鍵安裝最新版本的WordPress。對于想要體驗WordPres…

【vue+ts】找不到模塊“./App.vue”或其相應的類型聲明

報錯&#xff1a;找不到模塊“./App.vue”或其相應的類型聲明。 原因&#xff1a;typescript只能理解.ts文件&#xff0c;無法理解.vue文件。 解決&#xff1a;在src/env.d.ts下添加&#xff1a; /// <reference types"vite/client" /> // 三斜線引用告訴編譯…

Nginx+Tomcat 負載均衡群集

目錄 一&#xff0c;部署Tomcat 1&#xff0c;案例概述 2&#xff0c;案例前置知識點 &#xff08;1&#xff09;Tomcat簡介 &#xff08;2&#xff09;應用場景 3&#xff0c;案例實施 3.1&#xff0c;實施準備 &#xff08;1&#xff09;關閉firewalld防火墻 &#…

Spring Boot Actuator未授權訪問漏洞修復

方案1&#xff1a;在網關的配置文件里增加以下配置 management:endpoints:web:exposure:include: []enabled-by-default: falseendpoint:health:show-details: ALWAYS 方案二&#xff1a;直接在nginx配置攔截actuator相關接口 location /actuator { return 403; …

動態規劃之網格圖模型(二)

文章目錄 動態規劃之網格圖模型&#xff08;二&#xff09;LeetCode 931. 下降路徑最小和思路Golang 代碼 LeetCode 2684. 矩陣中移動的最大次數思路Golang 代碼 LeetCode 2304. 網格中的最小路徑代價思路Golang 代碼 LeetCode 1289. 下降路徑最小和 II思路Golang 代碼 LeetCod…

React 編譯器

&#x1f916; 作者簡介&#xff1a;水煮白菜王&#xff0c;一位前端勸退師 &#x1f47b; &#x1f440; 文章專欄&#xff1a; 前端專欄 &#xff0c;記錄一下平時在博客寫作中&#xff0c;總結出的一些開發技巧和知識歸納總結?。 感謝支持&#x1f495;&#x1f495;&#…

mac下通過anaconda安裝Python

本次分享mac下通過anaconda安裝Python、Jupyter Notebook、R。 anaconda安裝 點擊&#x1f449;https://www.anaconda.com/download&#xff0c; 點擊Mac系統安裝包&#xff0c; 選擇Mac芯片&#xff1a;蘋果芯片 or intel芯片&#xff0c; 選擇蘋果芯片圖形界面安裝&#x…

Pandas 技術解析:從數據結構到應用場景的深度探索

序 我最早用Python做大數據項目時&#xff0c;接觸最早的就是Pandas了。覺得對于IT技術人員而言&#xff0c;它是可以屬于多場景的存在&#xff0c;因為它的本身就是數據驅動的技術生態中&#xff0c;對于軟件工程師而言&#xff0c;它是快速構建數據處理管道的基石&#xff1…

【循環神經網絡RNN第一期】循環神經網絡RNN原理概述

目錄 &#x1f9e0; 什么是循環神經網絡&#xff08;RNN&#xff09;&#xff1f;&#x1f501; RNN 的結構圖&#x1f504; RNN 的“記憶”與問題RNN梯度推導 &#x1f9ec; LSTM&#xff1a;解決長期依賴問題&#x1f9f1; LSTM 的核心結構LSTM總結 參考 人類在思考的時候&am…

代碼隨想錄算法訓練營 Day60 圖論Ⅹ Bellmen_ford 系列算法

圖論 題目 94. 城市間貨物運輸 I Bellmen_ford 隊列優化算法 SPFA 大家可以發現 Bellman_ford 算法每次松弛 都是對所有邊進行松弛。 但真正有效的松弛&#xff0c;是基于已經計算過的節點在做的松弛。 本圖中&#xff0c;對所有邊進行松弛&#xff0c;真正有效的松弛&#…

Juce實現Table自定義

Juce實現Table自定義 一.總體展示概及概述 在項目中Juce中TableList往往無法滿足用戶需求&#xff0c;頭部和背景及背景顏色設置以及在Cell中添加自定義按鈕&#xff0c;所以需要自己實現自定義TabelList&#xff0c;該示例是展示實現自定義TableList&#xff0c;實現自定義標…

C++ set數據插入、set數據查找、set數據刪除、set數據統計、set排序規則、代碼練習1、2

set數據插入&#xff0c;代碼見下 #include<iostream> #include<set> #include<vector>using namespace std;void printSet(const set<int>& s) {for (set<int>::const_iterator it s.begin(); it ! s.end(); it) {cout << *it <…

深度學習賦能圖像識別:技術、應用與展望

論文&#xff1a; 一、引言? 1.1 研究背景與意義? 在當今數字化時代&#xff0c;圖像作為信息的重要載體&#xff0c;廣泛存在于各個領域。圖像識別技術旨在讓計算機理解和識別圖像內容&#xff0c;將圖像中的對象、場景、行為等信息轉化為計算機能夠處理的符號或數據 &am…

深入解析C++引用:從別名機制到函數特性實踐

1.C引用 1.1引用的概念和定義 引用不是新定義?個變量&#xff0c;而是給已存在變量取了?個別名&#xff0c;編譯器不會為引用變量開辟內存空間&#xff0c;它和它引用的變量共用同?塊內存空間。比如四大名著中林沖&#xff0c;他有一個外號叫豹子頭&#xff0c;類比到C里就…

【從0-1的HTML】第1篇:HTML簡介

1 HTML簡介 HTML是用來描述網頁的一種語言,是超文本標記語言的縮寫(Hyper Text Markup Language),不屬于編程語言的范疇&#xff0c;屬于一種標記語言。 標記語言使用一套標記標簽(Markup tag)&#xff0c;又稱為標簽,HTML就是使用標記標簽來描述網頁。 1.2 HTML標簽 1、HTM…

vue+cesium示例:地形開挖(附源碼下載)

基于cesium和vue繪制多邊形實現地形開挖效果&#xff0c;適合學習Cesium與前端框架結合開發3D可視化項目。 demo源碼運行環境以及配置 運行環境&#xff1a;依賴Node安裝環境&#xff0c;demo本地Node版本:推薦v18。 運行工具&#xff1a;vscode或者其他工具。 配置方式&#x…

qwen大模型在進行詞嵌入向量時,針對的詞表中的唯一數字還是其他的?

qwen大模型在進行詞嵌入向量時,針對的詞表中的唯一數字還是其他的? Qwen大模型進行詞嵌入向量時,針對的是詞表中每個 Token 對應的唯一數字(Token ID) ,核心邏輯結合詞表構建、嵌入過程展開 一、Qwen 詞表與 Token ID Qwen 用 BPE 分詞器(基于 tiktoken,以 cl100k 為…

動態規劃-1143.最長公共子序列-力扣(LeetCode)

一、題目解析 對于給定了兩個字符串中&#xff0c;需要找到最長的公共子序列&#xff0c;也就是兩個字符串所共同擁有的子序列。 二、算法原理 1、狀態表示 dp[i][j]&#xff1a;表示s1的[0,i]和s2的[0,j]區間內所有子序列&#xff0c;最長子序列的長度 2、狀態轉移方程 根…

互聯網c++開發崗位偏少,測開怎么樣?

通過這標題&#xff0c;不難看出問這個問題的&#xff0c;就是沒工作過的。如果工作過&#xff0c;那就是不斷往深的鉆研&#xff0c;路越走越窄&#xff0c;找工作一般就是找原來方向的。沒工作過的&#xff0c;那一般就是學生。 學生找什么方向的工作比較好&#xff1f; 學生…