天天看點

STM32 GPIO的原理、特性、選型和配置

目錄

1、基本結構

2、4種輸入模式

3、4種輸出模式

4、GPIO選型和配置

STM32 GPIO是通用輸入/輸出端口的英文簡稱,其可實作輸入、輸出、驅動、通信等功能,STM32的I/O 端口有8種模式(4種輸入模式和4種輸出模式),每個 I/O 端口位支援3種最大翻轉速度(2MHz、10MHz、50MHz),均可自由程式設計,但I/O 端口寄存器必須按 32 位字、半字(16位)或位元組(8位)進行通路,具體模式如下所示:

浮空輸入

上拉輸入

下拉輸入

模拟輸入

開漏輸出

推挽輸出

複用功能推挽輸出

複用功能開漏輸出

以STM32L011為例(其他STM32處理器大同小異),GPIO基本結構如下所示:

STM32 GPIO的原理、特性、選型和配置

關鍵器件解析:

1、保護二極管:防止I/O引腳外部過高、過低的電壓輸入,當引腳電壓高于VDDIOx時,上方的二極管導通;當引腳電壓低于VSS時,下方的二極管導通,防止不正常電壓引入晶片導緻晶片燒毀。

2、開關:開關為TTL肖特基觸發器,将模拟信号轉化為0和1的數字信号,但當GPIO作為ADC采集電壓通道時,此時信号不再經過觸發器進行TTL電平轉換。

3、P-MOS、N-MOS:單元電路使得GPIO具有“推挽輸出”和“開漏輸出”的功能。

STM32具有浮空輸入、上拉輸入、下拉輸入和模拟輸入4種輸入模式。

浮空輸入模式,I/O端口的電平信号由外部輸入決定,電平狀态不确定,最終直接進入輸入資料寄存器。浮空輸入通常用于配置USART的RX引腳,如下圖所示:

STM32 GPIO的原理、特性、選型和配置

上拉輸入模式,I/O端口懸空(在無信号輸入)的情況下,電平狀态保持在高電平,當輸入低電平時,電平狀态是低電平,最終直接進入輸入資料寄存器,如下圖所示:

STM32 GPIO的原理、特性、選型和配置

下拉輸入模式,I/O端口懸空(在無信号輸入)的情況下,電平狀态保持在低電平,當輸入高電平時,電平狀态是高電平,最終直接進入輸入資料寄存器,如下圖所示:

STM32 GPIO的原理、特性、選型和配置

模拟輸入模式,I/O端口的模拟信号(電壓信号,而非電平信号)直接模拟輸入到片上外設子產品,比如ADC子產品等。模拟輸入通常應用于ADC模拟輸入,或者低功耗下省電等情景,如下圖所示:

STM32 GPIO的原理、特性、選型和配置

STM32有開漏輸出、推挽輸出、複用功能開漏輸出和複用功能推挽輸出4種輸出模式(本文STM32L011的上、下拉電阻為公共區域,是以輸出模式具有上拉或下拉功能)。

開漏輸出模式,通過配置置位/複位寄存器或者輸出資料寄存器的值,途經N-MOS管,最終輸出到I/O端口。開漏輸出隻可以輸出強低電平,高電平得靠外部電阻拉高,輸出端相當于三極管的集電極,适合于做電流型的驅動,其吸收電流的能力相對強(一般20ma以内),如下圖所示:

需要注意N-MOS管的特性,當設定輸出的電平狀态為高電平時,N-MOS管處于關閉狀态,此時I/O端口的電平就不會由輸出的高低電平決定,而是由I/O端口内部或者外部的上拉或者下拉決定;當設定輸出的電平狀态為低電平時,N-MOS管處于開啟狀态,此時I/O端口的電平就是低電平。

STM32 GPIO的原理、特性、選型和配置

推挽輸出模式,通過配置置位/複位寄存器或者輸出資料寄存器的值,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管決定:低電平。

STM32 GPIO的原理、特性、選型和配置

複用功能開漏輸出模式、複用功能推挽輸出模式的原理和開漏輸出模式、推挽輸出模式原理基本一緻,隻不過輸出的高低電平,不是由MCU配置置位/複位寄存器或者輸出資料寄存器的值,而是利用片上外設子產品的複用功能輸出來決定的(通信接口(SPI,UART,I 2 C,USB,CAN,LCD等)、定時器、調試接口等複用)。複用功能開漏輸出通常用于TX1、MOSI、MISO等引腳的配置,複用功能推挽輸出通常用于I2C的SCL、SDA。以複用功能推挽輸出模式為例,實作原理如下圖所示:

STM32 GPIO的原理、特性、選型和配置

如何選擇适合其應用開發的GPIO模式和配置呢?請參考下圖所示。

STM32 GPIO的原理、特性、選型和配置
STM32 GPIO的原理、特性、選型和配置

繼續閱讀