一、GPIO (General-purpose I/Os--通用输入输出端口)简介:
(一)定义:
GPIO是MCU对外进行数据交互的通用IO接口,在MCU内部其可配置与其它片上外设或MCU内核(CPU)连接完成引脚上电压信号的读写。
- GPIO端口在MCU上分为多个组来共同完成IO引脚读写(如GPIOA...),并且每个GPIO组掌控的IO引脚可以单独配置
(二)框图分析 :
从框图中我们可以得到以下信息:
1.保护二极管:
其用于保护引脚外部有过高或过低的电压输入时稳定输入电压,当引脚输入电压高于
VDD 时,上面的二极管导通,由二极管的正向导通特性可知,真正输入到内部的信号电压不会超过(VDD+Vin) V,下方二极管原理与上类似。
2.上/下拉电阻:
- GPIO用此来决定三种默认引脚状态:上拉(默认高电平)、下拉(默认低电平),浮空(随机电平)
- 强弱上/下拉:指代上下拉电阻的大小,与电阻上电流的大小的关系
- 弱->电阻阻值大,流经电流较小
- 强->电阻阻值小,流经电流较大
3.输入驱动器:
- 施密特触发器:其原理类似于电压比较器,将电压输入根据电路设计时的上下阈值电压进行整形比较输出得到对应的高低电平。如要输入原电压则不需要开启施密特触发器,将电压输入通道配置为模拟输入通道即可。
4.输出驱动器:
- 链路选择器(1):选择数据为CPU直接控制GPIO寄存器式输出还是由其它外设控制的电平输出
- 输出控制单元(2):根据GPIO的输出模式(开漏/推挽)控制与前端输出电平来决定对称MOS管的导通状态,最终来确定最终输出电平为何。(后边解释何为推挽/推挽)
- 对称MOS管(3)
5.[复用]输入输出单元:
- CPU直接接读写GPIO寄存器
- 其它非模拟外设直接读写