【GPIO】通用输入/输出工作模式原理

1、GPIO基本结构
  • 保护二极管:IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入。 当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。
  • P-MOS管和N-MOS管:由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式
  • TTL肖特基触发器:信号经过触发器后,模拟信号转化为0和1的数字信号(整形电路)。
  • 当GPIO引脚作为ADC采集电压的输入通道时,用其“模拟输入”功能,此时信号不再经过触发器进行TTL电平转换, 以保证 ADC外设要采集到的原始的模拟信号。
  • FT 代表着这个GPIO口时兼容3.3V和5V的;如果没有标注“FT”,就代表着不兼容5V

2、GPIO输入输出的8种模式
  • 4种输入模式:上拉输入、下拉输入、浮空输入、模拟输入
1) 上拉输入模式:
默认情况下输入引脚数据为1,高电平
上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器
在I/O端口悬空(在无信号输入)的情况下,输入端的电平保持在高电平(上拉连接电压)
在I/O端口输入为低电平的时候,输入端的电平也是低电平(上拉电压和端口导通)
2)下拉 输入 模式:
默认情况下输入引脚为0,低电平。
下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器
在I/O端口悬空(在无信号输入)的情况下,输入端的电平保持在低电平(下拉连接电压)
在I/O端口输入为高电平的时候,输入端的电平也是高电平(下拉电压和端口导通)
3)浮空输入模式:
I/O端口的电平信号直接进入输入数据寄存器
I/O的电平状态是不确定的,完全由外部输入决定
———— 如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的
[]通常用于IIC、USART
4)模拟输入模式:
I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到 片上外设模块(如ADC模块)
  • 4种输出模式:推挽输出、 开漏输出、推挽复用输出、开漏复用输出
1)推挽输出: P-MOS管+N-MOS管
可以输出高低电平0和1,适用于双向IO使用
当设置输出的值为高电平的时候,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端口电平由P-MOS管决定:高电平
当设置输出的值为低电平的时候,P-MOS管处于关闭状态,N-MOS管处于开启状态,此时I/O端口电平由N-MOS管决定:低电平
同时,I/O端口的电平也可以通过输入电路进行读取;注意,此时I/O端口的电平 一定是输出的电平
2)开漏输出: 上拉电阻+N-MOS管
可以输出0和1,适用于电平不匹配场合,要得到高电平需要上拉电阻才行
当设置输出的值为高电平的时候,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;
当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端口的电平就是低电平
同时,I/O端口的电平也可以通过输入电路进行读取;注意,I/O端口的电平 不一定是输出的电平
3)推挽复用输出
不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的
片内外设功能:IIC的SCL、SDL
4)开漏复用输出
不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的
片内外设功能:TX1,MOSI,MISO,SCK,SS

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值