STM32 GPIO的原理、特性、选型和配置
目錄
1、基本結構
2、4種輸入模式
3、4種輸出模式
4、GPIO選型和配置
1、基本結構
STM32 GPIO是通用輸入/輸出端口的英文簡稱,其可實現輸入、輸出、驅動、通信等功能,STM32的I/O 端口有8種模式(4種輸入模式和4種輸出模式),每個 I/O 端口位支持3種最大翻轉速度(2MHz、10MHz、50MHz),均可自由編程,但I/O 端口寄存器必須按 32 位字、半字(16位)或字節(8位)進行訪問,具體模式如下所示:
- 浮空輸入
- 上拉輸入
- 下拉輸入
- 模擬輸入
- 開漏輸出
- 推挽輸出
- 復用功能推挽輸出
- 復用功能開漏輸出
以STM32L011為例(其他STM32處理器大同小異),GPIO基本結構如下所示:
關鍵器件解析:
1、保護二極管:防止I/O引腳外部過高、過低的電壓輸入,當引腳電壓高于VDDIOx時,上方的二極管導通;當引腳電壓低于VSS時,下方的二極管導通,防止不正常電壓引入芯片導致芯片燒毀。
2、開關:開關為TTL肖特基觸發器,將模擬信號轉化為0和1的數字信號,但當GPIO作為ADC采集電壓通道時,此時信號不再經過觸發器進行TTL電平轉換。
3、P-MOS、N-MOS:單元電路使得GPIO具有“推挽輸出”和“開漏輸出”的功能。
2、4種輸入模式
STM32具有浮空輸入、上拉輸入、下拉輸入和模擬輸入4種輸入模式。
浮空輸入模式,I/O端口的電平信號由外部輸入決定,電平狀態不確定,最終直接進入輸入數據寄存器。浮空輸入通常用于配置USART的RX引腳,如下圖所示:
上拉輸入模式,I/O端口懸空(在無信號輸入)的情況下,電平狀態保持在高電平,當輸入低電平時,電平狀態是低電平,最終直接進入輸入數據寄存器,如下圖所示:
下拉輸入模式,I/O端口懸空(在無信號輸入)的情況下,電平狀態保持在低電平,當輸入高電平時,電平狀態是高電平,最終直接進入輸入數據寄存器,如下圖所示:
模擬輸入模式,I/O端口的模擬信號(電壓信號,而非電平信號)直接模擬輸入到片上外設模塊,比如ADC模塊等。模擬輸入通常應用于ADC模擬輸入,或者低功耗下省電等情景,如下圖所示:
3、4種輸出模式
STM32有開漏輸出、推挽輸出、復用功能開漏輸出和復用功能推挽輸出4種輸出模式(本文STM32L011的上、下拉電阻為公共區域,所以輸出模式具有上拉或下拉功能)。
開漏輸出模式,通過配置置位/復位寄存器或者輸出數據寄存器的值,途經N-MOS管,最終輸出到I/O端口。開漏輸出只可以輸出強低電平,高電平得靠外部電阻拉高,輸出端相當于三極管的集電極,適合于做電流型的驅動,其吸收電流的能力相對強(一般20ma以內),如下圖所示:
需要注意N-MOS管的特性,當設置輸出的電平狀態為高電平時,N-MOS管處于關閉狀態,此時I/O端口的電平就不會由輸出的高低電平決定,而是由I/O端口內部或者外部的上拉或者下拉決定;當設置輸出的電平狀態為低電平時,N-MOS管處于開啟狀態,此時I/O端口的電平就是低電平。
推挽輸出模式,通過配置置位/復位寄存器或者輸出數據寄存器的值,P-MOS管和N-MOS管,最終輸出到I/O端口。推挽輸出可以輸出強高、低電平,連接數字器件,如下圖所示:
需要注意P-MOS管和N-MOS管的特性,當設置輸出的電平狀態為高電平時,P-MOS管處于開啟狀態,N-MOS管處于關閉狀態,此時I/O端口的電平就由P-MOS管決定:高電平;當設置輸出的電平狀態為低電平時,P-MOS管處于關閉狀態,N-MOS管處于開啟狀態,此時I/O端口的電平就由N-MOS管決定:低電平。
復用功能開漏輸出模式、復用功能推挽輸出模式的原理和開漏輸出模式、推挽輸出模式原理基本一致,只不過輸出的高低電平,不是由MCU配置置位/復位寄存器或者輸出數據寄存器的值,而是利用片上外設模塊的復用功能輸出來決定的(通信接口(SPI,UART,I 2 C,USB,CAN,LCD等)、定時器、調試接口等復用)。復用功能開漏輸出通常用于TX1、MOSI、MISO等引腳的配置,復用功能推挽輸出通常用于I2C的SCL、SDA。以復用功能推挽輸出模式為例,實現原理如下圖所示:
4、GPIO選型和配置
如何選擇適合其應用開發的GPIO模式和配置呢?請參考下圖所示。
總結
以上是生活随笔為你收集整理的STM32 GPIO的原理、特性、选型和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32低功耗模式下GPIO如何配置最
- 下一篇: 2018年摩拜校招嵌入式工程师笔试卷