GPIO內部結構及工作原理

2020-12-09 電子工程專輯


一、STM32F103ZET6介紹


1. STM32實物圖:

  

2. STM32引腳分布圖:

  

STM32F103ZET6:共144個引腳,7組IO口,每組16個IO口

7*16=112個IO口(這7組IO口分別為GPIOA,GPIOB…GPIOG)

例如:PGIOA包含PA0,PA1,PA2…PA15,每組16個IO口

 

二、IO口的基本結構和工作方式

1. STM32F1系列IO口的基本結構()IO口內部電路結構)

  

右側I/O引腳部分為晶片暴露在外部的引腳

每個引腳在數據手冊都有說明是否支持(識別))5V電壓

 

三、PGIO的8種工作方式

 

四、八種工作方式講解

1、GPIO輸入工作模式1-輸入浮空模式

  

1)外部通過IO口輸入電平,外部電平通過上下拉部分(浮空模式下都關閉,既無上拉也無下拉電阻)

2)傳輸到施密特觸發器(此時施密特觸發器為打開狀態)

3)繼續傳輸到輸入數據寄存器IDR

4)CPU通過讀輸入數據寄存器IDR實現讀取外部輸入電平值

在輸入浮空模式下可以讀取外部輸入電平

 

2,GPIO輸入工作模式2-輸入上拉模式 

和輸入浮空模式相比較,不同之處在於內部有一個上拉電阻連接到VDD(輸入上拉模式下,上拉電阻開關接通,阻值約30-50K)

外部輸入通過上拉電阻,施密特觸發器存入輸入數據寄存器IDR,被CPU讀取

 

3,GPIO輸入工作模式3-輸入下拉模式 

和輸入浮空模式相比較,不同之處在於內部有一個下拉電阻連接到VSS(輸入下拉模式下,下拉電阻開關接通,阻值約30-50K)

外部輸入通過下拉電阻,施密特觸發器存入輸入數據寄存器IDR,被CPU讀取

 

4,GPIO輸入工作模式4-輸入模擬模式  

上拉和下拉部分均為關閉狀態(AD轉換-模擬量轉換為數字量)

施密特觸發器為截止狀態

通過模擬輸入通道輸入到CPU

IO口外部電壓為模擬量(電壓形式非電平形式),作為模擬輸入範圍一般為0~3.3V

 

5,GPIO輸出工作模式1-開漏輸出模式

1,CPU寫入位設置/清楚寄存器BSRR,映射到輸出數據寄存器ODR

2,聯通到輸出控制電路(也就是ODR的電平)

3,ODR電平通過輸出控制電路進入N-MOS管

  N-MOS截止,IO埠電平不會由ODR輸出決定,而由外部上拉/下拉決定

  在輸出狀態下,輸出的電平可以被讀取,數據存入輸入數據寄存器,由CPU讀取,實現CPU讀取輸出電平

  所以,當N-MOS截止時,如果讀取到輸出電平為1,不一定是我們輸出的1,有可能是外部上拉產生的1

  N-MOS開啟,IO埠電平被N-MOS管拉倒VSS,使IO輸出低電平

  此時輸出的低電平同樣可以被CPU讀取到


6,GPIO輸出工作模式2-開漏復用輸出模式 

與開漏輸出模式唯一的區別在於輸出控制電路之前電平的來源

開漏輸出模式的輸出電平是由CPU寫入輸出數據寄存器控制的

開漏推輓輸出模式的輸出電平是由復用功能外設輸出決定的


其他與開漏輸出模式相似:

控制電路輸出為1:N-MOS截止,IO口電平由外部上拉/下拉決定

控制電路輸出為0:N-MOS開啟,IO口輸出低電平

 

7,GPIO輸出工作模式3-推輓輸出模式

與開漏輸出相比較:

輸出控制寄存器部分相同

輸出驅動器部分加入了P-MOS管部分


當輸出控制電路輸出1時:

P-MOS管導通N-MOS管截止,被上拉到高電平,IO口輸出為高電平1


當輸出控制電路輸出0時:

P-MOS管截止N-MOS管導通,被下拉到低電平,IO口輸出為低電平0

同時IO口輸出的電平可以通過輸入電路讀取

 

8,GPIO輸出工作模式4-復用推輓輸出模式

與推輓輸出模式唯一的區別在於輸出控制電路之前電平的來源

開漏輸出模式的輸出電平是由CPU寫入輸出數據寄存器控制的

開漏推輓輸出模式的輸出電平是由復用功能外設輸出決定的

 

9,推輓輸出和開漏輸出的區別:

推輓輸出:

可以輸出強高/強低電平,可以連接數字器件


開漏輸出:

只能輸出強低電平(高電平需要依靠外部上拉電子拉高),適合做電流型驅動,吸收電流能力較強(20ma之內)

 

五、STM32-IO口相關寄存器

每組GPIO包含系列7個寄存器(7組GPIO共包含7*7=49個寄存器)

兩個32位配置寄存器

GPIOx_CRL     低16位

GPIOx_CRH     高16位


兩個32位數據寄存器

GPIOx_IDR     輸入數據寄存器

GPIOx_ODR   輸出數據寄存器


一個32位置位/復位寄存器

GPIOx_BSRR


一個16位復位寄存器

GPIOx_BRR


一個32位鎖定寄存器

GPIOx_LCKR


六、STM32-IO口相關寄存器講解

1,埠配置寄存器:

STM32每組GPIO位16個IO口,每4位控制一個IO口,所以32位控制8個IO口

分為低16位:GPIOx_CRL和高16位:GPIOx_CRH共32位控制一組GPIO的16個IO口

  

如圖:以埠配置寄存器低16位為例,每四位控制一個IO口(高16位同理)

MODEx的2位 : 配置IO口輸出/輸出模式(1種輸出+3種不同速度的輸出模式)

CNFx的2位 : 配置IO口輸入/輸出狀態下(由MODEx控制)的輸入/輸出模式

 

以GPIOA_CRL為例,配置IO口PA0 -> MODE0=00(輸入模式) CNF0=10(上拉/下拉輸入模式)
 此種配置下到底是上拉還是下拉輸入模式還需由ODR寄存器決定 

關於上拉/下拉的控制我們將在下面-數據寄存器-中介紹ODR輸出寄存器時詳細說明

 

2,數據寄存器(以輸入數據寄存器GPIOx_IDR為例)

每一組IO口都具有一個GPIOx_IDR的32位寄存器(實際只使用低16位,高16位保留),即16位控制16個IO口,每一位控制一個

  

如圖:IDR寄存器共32位,0~15位代表一組IO口16個IO當前值

  

這裡我們已經了解了輸入/輸出數據寄存器,現在說下上面提到的問題:

當IO口配置為輸入模式且配置為上拉/下拉輸入模式(即MODEx=00 CNFx=10時),ODR決定到底是上拉還是下拉

1)當輸出模式時,ODR為輸出數據寄存器

2)當輸入模式時,ODR用作區分當前位輸入模式到底是上拉輸入(ODRx=0)還是下拉輸入(ODRx=1)

3,埠位設置/清除寄存器(GPIOx_BSRR)

  

BSRR寄存器作用:

BSRR寄存器為32位寄存器,低16位BSx為設置為(1設置0不變),高16位BRx為重置位(1:清除0:不變)

當然,最終的目的還是通過BSRR間接設置ODR寄存器,改變IO口電平

 

4,埠位清除寄存器(GPIOx_BRR)

  

GPIOx_BRR寄存器作用同GPIOx_BSRR寄存器高16位

一般我們使用BSRR低16位和BRR的低16位(STM32F4系列取消了BSRR的高16位)

 

5,鎖存寄存器:使用較少暫不分析

 

七,埠的復用和重映射

1,埠的復用:

大部分IO口可復用為外部功能引腳,參考晶片數據手冊(IO口復用和重映射)

  

例如:STM32F103ZET6的PA9和PA10引腳可復用為串口發送和接收功能引腳,也可復用為定時器1的通道2和通道3

埠復用的作用:最大限度的利用埠資源

 

2,埠的重映射:

  

串口1默認引腳是PA9,PA10可以通過配置重映射映射到PB6,PB7

埠重映射的作用:方便布線

 

3,STM32所有的IO口都可作為中斷輸入(51單片機只有2個埠可以作為外部中斷輸入)

以上為STM32-GPIO工作原理及相關寄存器內容


-END-



#推薦閱讀#


點擊閱讀原文,下載《Cadence混合信號仿真教程》

相關焦點

  • 化糞池哪裡有賣的內部結構及工作原理
    化糞池哪裡有賣的內部結構及工作原理   合肥峰昊化糞池公司專業生產玻璃鋼化糞池、水泥化糞池、塑料檢查井、大口徑埋地排水管材等一大批新型建材產品,如有需要,歡迎隨時來電諮詢!
  • 振動開關內部結構及工作原理
    常見的振動開關振動開關從機械結構上,一般分為滾珠類和彈簧類。滾珠振動開關內部結構滾珠類的振動開關根據觸點類型又分為常閉型和常開型,常閉型的振動開關在水平狀態時同樣,當壓電陶瓷受到外部震動時,也會將機械振動轉換成電壓信號,這就是壓電陶瓷片作為振動傳感器的工作原理。壓電陶瓷片由於受外界震動時的形變及輸出電壓信號比較微弱,所以這種元件當作震動開關使用時其靈敏度較低。
  • GPIO內部結構、工作原理及相關寄存器詳解(以STM32為例)
    STM32F103ZET6:共144個引腳,7組IO口,每組16個IO口  7*16=112個IO口(這7組IO口分別為GPIOA,GPIOB…GPIOG)  例如:PGIOA包含PA0,PA1,PA2…PA15,每組16個IO口  二,IO口的基本結構和工作方式
  • 伺服電機內部結構及其工作原理
    交流伺服電動機的工作原理與分相式單相異步電動機雖然相似,但前者的轉子電阻比後者大得多,所以伺服電動機與單機異步電動機相比,有三個顯著特點:  1、起動轉矩大  由於轉子電阻大,其轉矩特性曲線如圖3中曲線1所示,與普通異步電動機的轉矩特性曲線2相比,有明顯的區別。
  • 【STM32】GPIO工作原理(八種工作方式分析,附電路圖)
    GPIO基本結構每個GPIO內部都有這樣的一個電路結構,這個結構在本文下面會具體介紹。 總結與分析1、什麼是推挽結構和推挽電路?推挽結構一般是指兩個參數相同的三極體或MOS管分別受兩互補信號的控制,總是在一個三極體或MOS管導通的時候另一個截止。高低電平由輸出電平決定。
  • 步進電機原理及內部結構
    一體化步進電機什麼是步進電機,步進電機原理及內部結構是什麼,從家中的簡單DVD播放器或印表機到高度複雜的數控工具機或機械臂,步進電機幾乎無處不在。步進電機內部結構如果您看下定子上的線圈,它們按線圈對排列,如A和A'形成一對B和B'形成一對,依此類推。因此,每個線圈對形成一個電磁鐵,它們可以使用驅動電路單獨通電。
  • 3號玻璃鋼化糞池內部結構及工作原理
    3號玻璃鋼化糞池內部結構及工作原理   合肥峰昊一直專注於水泥整體化糞池的生產與銷售。3號玻璃鋼化糞池,耐酸鹼強,使用壽命長,抗壓,抗震,抗坍塌,如有需要,歡迎來電諮詢!
  • 新能源電池結構及工作原理簡述
    新能源電池結構及工作原理簡述 ,「iyufk」   無錫冠亞恆溫製冷技術有限公司致力於致力於製冷加熱控溫系統、超低溫冷凍機、新能源汽車部件測試系統、VOCs冷凝回收裝置、加熱循環系統等生產銷售,新能源電池,廠家直銷,價格優惠,歡迎來電採購!
  • 吸塵器的結構及工作原理.
    2)按功能分類:乾式吸塵器、乾濕兩用吸塵器、旋轉刷式地毯吸塵器、打蠟吸塵器等。二、基本結構、工作原理及控制電路1、吸塵器的基本結構2.工作原理接通電源,電動機直接驅動風機產生高速旋轉,風機葉輪帶動空氣以極高的速度向機殼外排放,在風機前面形成局部真空,使吸塵器內部與外界產生很高的負壓差,使充滿灰塵和髒物的空氣通過吸嘴和管道吸入吸塵器的集塵室內
  • 爆震傳感器的結構及工作原理
    打開APP 爆震傳感器的結構及工作原理 電工基礎 發表於 2020-03-15 15:28:00   磁致伸縮式爆震傳感器的外形與結構如圖2-261所示, 其內部有永久磁鐵、靠永久磁鐵激磁的強磁性鐵芯以 及鐵芯周圍的線圈。磁致伸縮式爆震傳感器的組成如圖2-262所示。其工作原理是:當發動機的氣缸體出現振動時,該傳感器在7kHz左右處與發動機產生共振,強 磁性材料鐵芯的磁導率發生變化,致使永久磁鐵穿過鐵 芯的磁通密度也發生變化,從而在鐵芯周圍的繞組中產。
  • 滾筒洗衣機的整機結構和工作原理
    一、滾筒式洗衣機的整機結構1、滾筒式洗衣機的外部結構
  • 儲能鋰電池結構及工作原理簡述
    儲能鋰電池結構及工作原理簡述 ,「iyufk」   無錫冠亞恆溫製冷技術有限公司致力於致力於製冷加熱控溫系統、超低溫冷凍機、新能源汽車部件測試系統、VOCs冷凝回收裝置、加熱循環系統等生產銷售,儲能鋰電池,廠家直銷,價格優惠,歡迎來電採購!
  • 抽水馬桶工作原理及結構介紹
    馬桶,日常生活的衛浴必用品,這是每個家庭都必須有的,但是如果我們一點也不了解馬桶的結構及原理,那麼當馬桶出現小問題的時候我們就被難住了,實際上馬桶的工作的原理是很簡單的,不過我們現在還沒有真正的了解馬桶,如果我們了解了就不會再覺得馬桶只是髒、臭的印象了。
  • 瓦斯繼電器工作原理及結構
    瓦斯保護基本原理瓦斯繼電器是變壓器的一種保護裝置,裝在變壓器的儲油櫃和油箱之間的管道內,利用變壓器內部故障而使油分解產生氣體或造成油流湧動時,使瓦斯繼電器的接點動作,接通指定的控制迴路,並及時發出信號告警(輕瓦斯)或啟動保護元件自動切除變壓器(重瓦斯)。
  • GPIO子系統重要概念
    我們要做的是找到它名字,比如「gpio1」,然後指定要用它裡面的哪個引腳,比如<&gpio1 0>。led-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>, /* red */ <&gpio 16 GPIO_ACTIVE_HIGH>, /* green */ <&gpio 17 GPIO_ACTIVE_HIGH>; /* blue */ power-gpios = <&gpio 1 GPIO_ACTIVE_LOW
  • 鹼性燃料電池工作原理及結構組成
    ; 鹼性燃料電池工作原理及結構組成
  • 8086/8088CPU的基本結構與其工作原理
    並且,在上一章中,著重介紹的是整個計算機系統的基本組成以及它的工作原理。由於CPU是計算機系統中的核心部件,機器指令的執行是由它來完成的,因此,細化理解CPU的基本結構以及它的工作原理成為學習指令系統的基礎。本章將針對8086/8088CPU晶片,介紹其基本構成與工作原理,為學習下一章的80868088CPU指令系統做好準備。
  • 晶閘管的結構和工作原理
    一、晶閘管的結構目前大功率晶閘管常用的外形結構有螺栓式和平板式,它具有三個PN結的四層結構,其外形、結構和圖形符號如圖所示。晶閘管內部是PNPN四層半導體結構,分別命名為P1、N1、P2、N2四個區。晶閘管是電力電子器件,在工作過程中會因損耗而發熱,因此必須安裝散熱器。對於螺栓型封裝,通常螺栓是其陽極,做成螺栓狀是為了能與散熱器緊密連接且安裝方便,通過陽極(螺栓)擰緊在鋁製散熱器上,為自然冷卻;平板式晶閘管則由兩個相互絕緣的散熱器夾緊晶閘管,靠冷風冷卻。
  • 望遠鏡稜鏡內部結構及原理圖
    望遠鏡稜鏡內部結構及原理圖光學設計方面,常見的望遠鏡一般採用二個基本設計之一: 屋脊(Roof)或普羅(Porro,又譯保羅,寶羅)稜鏡。
  • 電腦硬碟內部硬體結構和工作原理詳解.
    硬碟的內部結構通常是指盤體的內部結構;控制電路板上主要有硬碟BIOS、硬碟緩存(即CACHE)和主控制晶片等單元,如圖1-2所示;硬碟接口包括電源插座、數據接口和主、從跳線,如圖1-3所示。此外,在硬碟表面有一個透氣孔(見圖1-1),它的作用是使硬碟內部氣壓與外部大氣壓保持一致。由於盤體是密封的,所以,這個透氣孔不直接和內部相通,而是經由一個高效過濾器和盤體相通,用以保證盤體內部的潔淨無塵,使用中注意不要將它蓋住。1.2 硬碟的內部結構硬碟的內部結構通常專指盤體的內部結構。