0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPIO的八种工作模式

CHANBAEK 来源:四梯 作者:四梯 2023-07-02 16:38 次阅读

GPIO的八种工作模式

GPIO是通用输入/输出端口的简称,GPIO的引脚与外部设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。GPIO的8种输入模式:包括4种输入模式和4种输出模式(2种普通输出和2种复用输出)。

图片

GPIO基本结构

每个GPIO内部都有这样的一个电路结构,下面就简单的介绍一下这个电路

图片

保护二极管:I/O引脚上的二极管是为了防止引脚外部输入过高、过低的电压时对芯片造成损坏而设置的,起到保护电路的作用。当引脚电压>VDD时,上方的二极管导通;当引脚电压SS时,下方的二极管导通。

P-MOS管和N-MOS管:GPIO所具有的“推挽输出”输出和“开漏输出”模式得益于由P-MOS管和N-MOS管组成的单元电路。

TTL肖特触发器:可以理解为用肖特管构成的施密特触发器,模拟信号经过触发器后,就会转化为0和1的数字信号。如果GPIO引脚作为输入通道进行ADC电压采集时,用其“模拟输入”功能,信号就不会经过触发器进行TTL转换。

VDD_FT 对5V容忍I/O脚是特殊的,它与VDD不同。这句话的意思就是VDD_FT是兼容5V和3.3V的,而没有FT的是不兼容5V的。

下面具体介绍GPIO的8种工作模式:

输入模式—浮空输入

图片

在此模式下,上图黄色阴影部分①—④的电路为通路,由①I/0端口输入电平(高电平或低电平)→保护二极管→②TTL肖特基触发器→③输入数据寄存器→④CPU,这样CPU就能读取到I/O端口处的高低电平状态。浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。它的输入阻抗较大,一般把这种模式用于标准的通信协议如I2C、USART。

输入模式—输入上拉

图片

上拉电阻:把不确定的信号通过电阻连接到高电平,默认情况下输入引脚数据为1,高电平。在上拉输入模式下,也是I/O端口的电平信号直接进入输入数据寄存器,但是它和浮空模式的主要区别在于,输入上拉模式中上拉电阻(连接VDD)的开关闭合,上拉电阻的大小约为30—50kΩ。

输入模式—输入下拉

图片

下拉电阻:把不确定的信号通过电阻连接到低电平,默认情况下输入引脚数据为0,低电平。在下拉输入模式下,也是I/O端口的电平信号直接进入输入数据寄存器,同理,它和浮空模式的主要区别在于,输入下拉模式中下拉电阻(连接VSS)的开关闭合。

输入模式—模拟输入

图片

在此模式下,数据通道中上拉、下拉电阻和TTL肖特触发器,这时均处于关断的状态,在模拟输入状态下,CPU是无法通过“输入数据寄存器”读到IO端口变化的数据了,也就是说“输入数据寄存器”就无法反映I/O端口上的电平变化的了。I/O端口的模拟信号(注意是电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块。

输出模式—开漏输出

图片

图片

若②输出控制电路接收到1(高电平),则③N-MOS管截止,那么此时 ④I/O端口处的电平不是通过②输出控制电路和③N-MOS管来控制的,而是取决于外部的“上拉”或“下拉”。

若②输出控制电路接收到 0(低电平),③N-MOS管导通,此时④I/O端口处的电平就被③N-MOS管拉低。

同时,在输出的状态下,I/O口的电平还可以通入输入电路(④I/O端口→⑥输入数据寄存器→⑦CPU读取)来读取。

输出模式—开漏复用输出

图片

开漏复用输出模式与开漏输出模式很相似,区别在于输出的高低电平的来源,不是让CPU直接向位设置/清除寄存器写1/0然后将其映射到输出数据寄存器中,而是利用片上外设模块的复用功能输出来决定的。

输出模式—推挽输出

图片

由图可知,GPIO的推挽输出模式是在开漏输出模式的基础上,在“输出控制电路”之后,增加了一个P-MOS管。

当CPU输出逻辑“1 ”时,③P-MOS管导通,N-MOS管截止,输出高电平。

当CPU输出逻辑“0 ”时,③P-MOS管截止,N-MOS管导通,输出低电平。

同时,I/O端口的电平也可以通过输入电路(④I/O端口→⑥输入数据寄存器→⑦CPU读取)进行读取。

输出模式—推挽复用输出

图片

推挽复用输出模式与推挽输出模式相似。只是输出的高低电平的来源,不是让CPU直接向位设置/清除寄存器写1/0然后将其映射到输出数据寄存器中,而是利用片上外设模块的复用功能输出来决定的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二极管
    +关注

    关注

    147

    文章

    9637

    浏览量

    166445
  • 引脚
    +关注

    关注

    16

    文章

    1196

    浏览量

    50465
  • 触发器
    +关注

    关注

    14

    文章

    2000

    浏览量

    61148
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52087
  • VDD
    VDD
    +关注

    关注

    1

    文章

    312

    浏览量

    33215
收藏 人收藏

    评论

    相关推荐

    单片机中常见GPIO工作模式详解

    GPIO 是通用输入/输出端口的简称,是 STM32 可控制的引脚。GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。
    发表于 06-13 09:26 1.5w次阅读
    单片机中常见<b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>种</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>详解

    【转载】STM32GPIO工作模式区别

    在Cortex-M3里,对于GPIO的配置种类有8:(1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入(3)
    发表于 02-05 14:55

    深度剖析STM32F4 GPIO工作模式

    数据手册的引脚定义中,会看到有“I/O电平”一列有FT即为支持5V4 GPIO工作模式剖析:浮空输入
    发表于 04-02 11:03

    ARM嵌入式裸机--GPIO工作模式

    功能的输出端相连此时“输出数据寄存器”被从输出通道断开了,片上外设的输出信号直接与“输出控制电路”的输入端想连接。以上就是GPIO的8工作模式,如果各位看官觉得有所补充,欢迎留言告知
    发表于 10-12 07:57

    GPIO有哪几种工作模式

    IO口的类型与应用GPIO工作模式详解
    发表于 03-17 06:25

    STM32CubeMX-GPIO工作模式 精选资料分享

    STM32IO口的工作模式:1)、GPIO_Mode_IN_FLOATING:浮空输入2)、GPIO
    发表于 07-22 08:36

    ST MCU_GPIO有哪几种工作模式

    补充:N、P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS)GPIO工作模式详解浮空输入_IN_FLOATIN
    发表于 11-04 07:37

    GPIO工作模式介绍

    一、GPIO介绍GPIO:就是一个引脚作为输入或者输出。GPIO工作
    发表于 01-24 06:52

    stm32单片机的基本工作原理

    通讯和控制外部硬件的功能。 GPIO工作模式 GPIO一共支持4
    的头像 发表于 08-19 11:06 2.8w次阅读

    ST MCU_GPIO工作模式详解。

    补充:N、P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS)GPIO工作模式详解浮空输入_IN_FLOATIN
    发表于 10-28 20:51 13次下载
    ST MCU_<b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>种</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>详解。

    GPIO工作模式

    输入模式输入浮空输入上拉输入下拉模拟输入四输出模式(带上下拉)开漏输出(带上拉或者下拉)开漏复用功能(带上拉或者下拉)推挽式输出(带上拉或者下拉)推挽式复用功能(带上拉或者下拉)
    发表于 11-20 12:06 9次下载
    <b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>种</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    STM32CubeMX-GPIO工作模式

    STM32IO口的工作模式:1)、GPIO_Mode_IN_FLOATING:浮空输入2)、GPIO
    发表于 11-25 13:36 10次下载
    STM32CubeMX-<b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>种</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    STM32学习-GPIO详解

    一、GPIO介绍GPIO:就是一个引脚作为输入或者输出。GPIO工作
    发表于 11-29 16:51 20次下载
    STM32学习-<b class='flag-5'>GPIO</b>详解

    HAL库的GPIO工作模式

    众所周知,STM32的GPIO工作模式,但是打开HAL库发现,有12中可以供自己设置。先不要懵,下面解释一下这12
    发表于 12-05 13:06 8次下载
    HAL库的<b class='flag-5'>GPIO</b><b class='flag-5'>八</b><b class='flag-5'>种</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    STM32 GPIO工作模式

    GPIO (general purpose input output)是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
    的头像 发表于 11-06 09:40 590次阅读
    STM32 <b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>种</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>