前言 筆者近日在B站刷到了一個視頻,使我對GPIO的I/O口內部基本結構以及工作原理有了恍然大明白的理解,現在對此做一個總結,并為大家推薦該視頻Keysking
前言
GPIO內部結構概覽
GPIO內部結構詳解
輸出電路
推挽輸出
開漏輸出
輸入電路
總結
參考資料
GPIO內部結構概覽

結構關系圖如下圖所示

GPIO內部結構詳解
保護電路

PS:
當I/O口為FT 5V容忍時,其上方保護二極管電壓Vdd = 5V
保護二極管不能長期導通,否則會燒壞保護二極管。所以保護電路只能抵御一瞬間的電壓波動,較長時間的電壓波動仍會損壞芯片
輸出電路
推挽輸出

流程圖:
代碼 --》 寄存器 --》 輸出控制器 --》 控制P-MOS/N-MOS的導通與斷開 --》 輸出的電壓
分類討論:
SET置1:P-MOS導通 N-MOS斷開 芯片輸出3.3V(此電壓由芯片輸出,所以推挽輸出有驅動能力
RESET置0:P-MOS斷開 N-MOS導通 芯片輸出0V
開漏輸出

前提:在開漏輸出下,P-MOS一直斷開,所以在圖上我直接將其刪去以簡化單路
以I/O口外接工作電壓為5v的小燈泡為例
開漏輸出更像是一個電子開關,小燈泡的工作電壓由小燈泡外接的5V提供(注意,此I/O口需5V容忍)。因為電壓由外部提供,所以開漏輸出無驅動能力(他只是個電子開關 不提供電壓 所以當然沒驅動能力)
分類討論:
SET置1:N-MOS導通 電路通路 小燈泡電壓由外部5V提供 燈亮
RESET置0:N-MOS斷開 電路內部高阻態 電路斷路 無電流 燈滅
所以,開漏輸出的高電平實際是高阻態 無法輸出電流 無驅動能力
輸入電路

上下拉電阻:
Pull-up上拉:開關1閉合,I/O引腳內部上拉
Pull-down下拉:開關2閉合,I/O引腳內部下拉
不上拉也不下拉:開關1、2均不閉合,I/O引腳內部浮空 電平不確定
PS:I/O口輸入可以配置內部的上下拉電阻,為硬件功能實現提供了更多的可能(比如KEY按鍵模塊中,如果KEY模塊沒有配置外部的上拉電阻,則可以通過自行配置內部的上下拉電阻來實現功能。具體請參考B站
TTL肖特基觸發器:
實際上是模擬電壓 --》 數字電壓

高低參考電壓之間,維持原本電平信號不變,以此來抗噪聲 PS:
Q:為什么沒有復用輸入模式?
A:因為復用功能輸入與通用功能輸入可以同時讀取施密特觸發器的輸
總結
對于GPIO內部結構而言,通過不同的配置可以完成不同的輸入輸出功能
輸出:
代碼 --》 寄存器 --》 輸出控制模塊 --》 控制P-MOS與N-MOS的導通與斷開情況 --》 推挽/開漏輸出
輸入:
I/O口輸入模擬電壓 --》 上下拉電阻 --》 施密特觸發器 --》 數字電壓 --》 存儲到輸入數據寄存器
-
保護電路
+關注
關注
46文章
946瀏覽量
103582 -
輸出電路
+關注
關注
0文章
86瀏覽量
16423 -
GPIO
+關注
關注
16文章
1328瀏覽量
56215
原文標題:研究了GPIO內部電路原理,恍然大悟的理解了
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
STM32 GPIO的工作模式
STM32 GPIO寄存器的相關知識
使用樹莓派Pico開發板的一些思考與應用實踐資料分享
為什么選擇二極管鉗位電路?二極管鉗位電路有哪些類型?
GPIO的內部上下拉電阻_GPIO的驅動能力
樹莓派Pico開發板硬件擴展接口及電源模塊解析
GPIO工作原理
GPIO內部結構和工作模式
GPIO內部結構及輸入輸出模式
GPIO是什么?
GPIO內部電路的原理
評論