凡亿专栏 | STM32单片机的GPIO引脚内部结构图解
STM32单片机的GPIO引脚内部结构图解

前文我们概述了STM32单片机的GPIO外部功能,接下来将是STM32单片机的GPIO内部结构,希望对小伙伴们有所帮助。

GPIO端口位的基本结构如图所示:

96fb64b414e6e638c2f20399fac037.png

1、保护二极管

GPIO引脚内部加上两个保护二极管配置,可防止单片机引脚外部过高或过低的电压输入。当引脚电压高于VDD_FT或VDD时,上方的二极管将导通吸收该电压;当引脚电压低于VSS 时,下方的二极管将导通,防止不正常电压因引入芯片导致被毁。

需要注意的是,当引脚接入大功率器件,将有烧坏的风险。

2、上、下拉电阻

如上图所示,上下拉电阻都配置一个开关,它们可通过配置上下拉电阻开关,控制引脚的默认状态电平。

当GPIO的电阻开启上拉时,将默认电压为高电平;当GPIO的电阻开启,将默认电压为高电平,这样可以消除引脚间不定状态的影响,也可选择浮空模式,将上拉下拉的开关全都关掉,需要注意的是若上下电阻处于浮空模式,其引脚电压将不确定。

3、P-MOS管和N-MOS管

GPIO引脚经过两个保护二极管将分为两部分,上面是输入模式,下面是输出模式。后者的线路将经过一个由P-MOS和N-MOS管组成的单元电路,具有推挽和开漏两种输出模式。

4、复用功能输出

由于STM32单片机的GPIO引脚具有第二功能,当时用复用功能,将通过其他外设复用功能输出信号与GPIO数据寄存器一起连接到双MOS管电路的输入,其中梯型结构是用来选择复用功能还是普通IO口功能。

5、输出数据寄存器

前文所提到的P-MOS管和N-MOS管结构电路的输入信号,是由输出数据寄存器GPIOx_ODR提供的,若是想修改GPIO引脚的输出电平,可直接修改输出数据寄存器的值。而“置位/复位寄存器GPIOx_BSRR”可通过修改输出数据寄存器的值从而影响电路的输出。

6、复用功能输入

该模式与前文所提到的复用功能输出类似,在复用功能输入模式时,GPIO引脚的信号传输到STM32其他片上外设,由该外设读取引脚的状态。

7、输入数据寄存器

输入数据寄存器是由IO口经过上下拉电阻、肖特基触发器引入。

当信号经过触发器,模拟信号将变为数字信号0或1,然后存储在输入数据寄存器中,通过读取输入数据寄存器GPIOx_IDR可知IO口的电平状态。

8、模拟输入输出

当GPIO引脚用于ADC才几点呀的输入通道时,将作为模拟输入功能,此时信号是不经过施密特触发器。因为经过施密特触发器后信号只有0、1两种状态,ADC外设要采集到原始的模拟信号,信号源输入必须在施密特触发器前,当GPIO引脚用于DAC作为模拟电压输出通道时,此时作为“模拟输出功能”,DAC的模拟信号也不经过双MOS管结构了,直接通过管脚输出。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论