一文详解GPIO的输入配置
GPIO-1---GPIO的输入配置 引言:GPIO,即General purpose input output,通用输入输出端口,是可以根据实际使用场景需求来用软件来配置的引脚。需要注意的是,一款芯片的引脚分为其实分为很多域,比如仅为芯片供电的引脚群称为电源域,还有类似复位,地址配置等等称为逻辑域,还有原生支持I2C,SPI等等通讯的称为通讯域,搭建小系统用的引脚称为系统域。本节我们主要讲述不具有特定功能的GPIO域。(本节和下节是所有的GPIO配置类型,但有的芯片GPIO不全都支持,这类GPIO叫裁剪型GPIO,使用芯片时需要查看其Pin List,不能默认都是全功能的GPIO) 1.GPIO的一般结构 如图1-1所示为GPIO的一般结构,由七大部分组成:上下拉 推挽MOS 输出数据寄存器 复用功能输出 输入数据寄存器 复用功能输入 模拟输入,其中保护管二极管不是每一个芯片都有。 1.保护二极管 比如芯片的引脚电(píng)为0/3.3V,引脚的两个保护二极管可以在一定程度上防止引脚外部过高或过低的电压输入损坏引脚。当引脚电压高于3.3V时,上方二极管导通钳位,防止过高电压进入芯片内部。同理当引脚电压低于GND(负电压)时,下方二极管导通,防止电压过低从芯片内部抽取电流。 2.施密特触发器 施密特触发器有两个阈值,高于上面的阈值就输出固定高电(píng),低于下面的阈值就输出固定低电(píng),有效去除输入信号的波动效应。
图1-1:GPIO的一般结构 2.浮空输入模式 浮空输入模式为数字输入模式,可读取引脚电(píng),如果引脚悬空,则电(píng)不确定,在浮空输入模式时,施密特触发器会打开,此时输出驱动器被禁止。
图1-2:浮空输入模式路径 3.上拉输入模式 上拉输入模式为数字输入模式,可读取引脚电(píng),此时内部上拉电阻使能激活,IO口被上拉电阻连接到VDD,当引脚悬空时默认高电(píng)。在上拉输入模式时,施密特触发器会打开,此时输出驱动器被禁止。
图1-3:上拉输入模式路径 4.下拉输入模式 下拉输入模式为数字输入模式,可读取引脚电(píng),此时内部下拉电阻使能激活,IO口被下拉电阻连接到GND,当引脚悬空时默认低电(píng)。在下拉输入模式时,施密特触发器会打开,此时输出驱动器被禁止。
图1-4:下拉输入模式路径 5.模拟输入模式 当配置为模拟输入时,输出驱动器关闭,施密特触发器关闭,引脚的模拟电(píng)直接输入到芯片内部,一般是输入到ADC模块进行采样,此时一定要注意引脚电(píng)的大小,不然会损坏芯片。所以模拟输入模式主要为片上ADC配置的,注意模拟输入电(píng)和ADC的量程是否匹配。
图1-5:模拟输入模式路径 6.小结 在输入模式下可以读取引脚是高电(píng)还是低电(píng)或者电压值,用于读取按键输入,外接模拟电(píng)信号输入,ADC电压采集,配合输出模式可以模拟通信协议(I2C,SPI等等)接收发送数据。 |