尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

GPIO讲解

GPIO讲解 简介GPIO 是控制或者采集外部器件的信息的外设即负责输入输出。它按组分配每组 16 个 IO 口组数视芯片而定分为GPIOA,GPIOB等。GPIO一共有8种工作模式4种输入、2种输出、2种复用输入浮空输入上拉输入下拉模拟输入开漏输出推挽输出开漏式复用功能推挽式复用功能基本结构分析该图是GPIO 的基本结构图其所有功能都是依据该电路实现的。部分① 保护二极管保护二极管共有两个用于保护引脚外部过高或过低的电压输入。当引脚输入电压高于VDD 时上面的二极管导通当引脚输入电压低于 VSS 时下面的二极管导通从而使输入芯片内部的电压处于比较稳定的值。部分② 上拉、下拉电阻它们阻值大概在 30~50K 欧之间可以通过上、下两个对应的开关控制这两个开关由寄存器控制。当引脚外部的器件没有干扰引脚的电压时即没有外部的上、下拉电压引脚的电平由引脚内部上、下拉决定开启内部上拉电阻工作引脚电平为高开启内部下拉电阻工作则引脚电平为低。同样如果内部上、下拉电阻都不开启这种情况就是我们所说的浮空模式。但这里的上拉的高电平和推挽输出中的高电平仍有差别推挽输出的高电平驱动负载能力更强。部分③ 施密特触发器施密特触发器可作为波形整形电路能将模拟信号波形整形为数字电路能够处理的方波波形。部分④P-MOS管和N-MOS 管这个结构控制 GPIO 的开漏输出和推挽输出两种模式。开漏输出输出端相当于三极管的集电极要得到高电平状态需要上拉电阻才行。推挽输出这两只对称的 MOS 管每次只有一只导通。八种模式的特点浮空输入引脚悬空既不上拉也不下拉电平完全由外部信号决定。输入阻抗高但引脚悬空时电平不确定容易受干扰抖动。上拉/下拉输入上拉是内部接了一个上拉电阻引脚默认为高电平。下拉则跟上拉相反内部下拉电阻把引脚默认拉到低电平。但内部上下拉电阻的阻值均较大所以提供的电流较小驱动负载能力弱不适合做电流型驱动。模拟输入关闭数字部分的施密特触发器引脚可直连ADC或DAC等操作模拟信号的外设。推挽输出内部有两个MOS管一个P-MOS上管、一个N-MOS下管交替导通输出高电平 → 上管导通下管关断引脚接VDD输出低电平 → 上管关断下管导通引脚接VSS驱动能力强能主动输出高和低电平。需注意两个引脚都配推挽输出绝对不能直接短接。否则如果一个输出高一个输出低等于VDD直通VSS会烧坏板子。开漏输出只有下管N-MOS工作上管始终关断常用于 IIC 或其它需要进行电平转换的场景。输出低电平 → 下管导通引脚拉低到VSS输出高阻态 → 下管关断引脚悬空。如果芯片外部不接上拉电阻那么开漏输出模式下IO 无法输出高电平。其模式本身无法输出高电平。常用开漏输出的三大场景线与功能多个开漏输出接在同一根线上共用一个上拉电阻。只要有一个输出低整根线就是低全部关断才是高。I2C总线就是靠这个机制实现多主机的。电平转换上拉电阻可以拉到跟MCU供电不同的电压。比如3.3V的MCU通过开漏5V上拉就能驱动5V的外设。防短路多个设备共享一根线用开漏就不会出现一个推高一个推低烧片子的问题。复用推挽/开漏输出一个 IO 口可以是多个外设的功能引脚我们需要选择其中一个外设的功能引脚。当选择复用功能时引脚的状态是由对应的外设控制而不是输出数据寄存器。其余和前面的推挽/开漏输出没有区别。该图为复用开漏输出展示新版本的变化STM32F1将GPIO的输入输出类型、推挽开漏和上下拉组合成8种固定模式F4则将它们拆分为模式、输出类型、上下拉、速度和复用编号等独立属性通过组合完成配置。其基本电气原理相近但F4的配置方式更灵活、统一。例如在STM32F1中GPIO配置为开漏输出后不能再独立开启内部上拉。写0时引脚被主动拉低写1时输出管关闭引脚进入高阻态如果没有外部上拉电阻就不能形成稳定高电平。STM32F4将输出类型和上下拉配置拆开因此可以选择“开漏输出内部上拉”。此时写1仍然表示释放引脚但内部上拉电阻可以将引脚拉到高电平。
返回列表