• 注册 / 登录
  • 切换到窄版
  • 查看: 2137|回复: 0

    一文读懂GPIO口的结构之输出

    [复制链接]

    676

    主题

    690

    帖子

    6810

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6810
    发表于 2023-6-12 17:30:56 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 一路上 于 2023-6-12 17:42 编辑

    引言

    GPIO,即General purpose input output,通用输入输出端口,是可以根据实际使用场景需求来用软件来配置的引脚。GPIO的输出配置 需要注意的是,一款芯片的引脚分为其实分为很多域,比如仅为芯片供电的引脚群称为电源域,还有类似复位,地址配置等等称为逻辑域,还有原生支持I2C,SPI等等通讯的称为通讯域,搭建小系统用的引脚称为系统域。本节我们主要讲述不具有特定功能的GPIO域。(本文是所有的GPIO配置类型,但有的芯片GPIO不全都支持,这类GPIO叫裁剪型GPIO,使用芯片时需要查看其Pin List,不能默认都是全功能的GPIO)


    1.png
    图2-1:GPIO的一般结构

    一、开漏输出模式

    开漏输出模式为数字输出,可以输出引脚电平,高电平为高阻态,低电平接GND。处于开漏输出模式时,施密特触发器输入也会被激活,上下拉电阻被禁止,断开连接,对输入数据寄存器的读访问可得到IO状态,出现在IO引脚上的数据在每个APB2时钟被采样到输入数据寄存器。

    I2C就是利用引脚高阻态的特性,I2C总线上挂多个从机,当从机不工作时输出高阻态,总线默认为高电平。

    开漏输出模式时PMOS不工作,输出寄存器上的0会让NMOS导通,接地输出低电平,输出寄存器上的1会让NMOS关闭,此时引脚既不输出高电平也不输出低电平,为高阻态。所以输出数据寄存器可控制IO输出高阻态或者低电平。

    2.png
    图2-2:开漏输出模式路径

    二、推挽输出模式

    推挽输出模式为数字输出,可以输出引脚电平,高电平接VDD,低电平接GND。处于推挽输出模式时,施密特触发器输入也会被激活,上下拉电阻被禁止,断开连接,对输出数据寄存器的读访问可得到最后一次写的值,出现在IO引脚上的数据在每个APB2时钟被采样到输入数据寄存器。

    推挽输出模式双MOS管会以轮流的方式工作,输出寄存器上的0会让NMOS导通,输出低电平,输出寄存器上的1会让PMOS导通,输出高电平。

    3.png
    图2-3:推挽输出模式路径

    三、复用开漏输出

    在复用开漏输出模式中,复用功能输出使能,输出寄存器无效,输出信号源来自片上外设,此时输出速度可配置,输入可用,通过输入数据寄存器可获取IO实际状态,但一般直接用外设的寄存器来获取该数据信号。

    4.png
    图2-4:复用开漏输出模式路径

    四、复用推挽输出

    在复用推挽输出模式中,复用功能输出使能,输出寄存器无效,输出信号源来自片上外设,此时输出速度可配置,输入可用,通过输入数据寄存器可获取IO实际状态,但一般直接用外设的寄存器来获取该数据信号。

    5.png
    图2-5:复用推挽输出模式路径

    五、小结

    在输出模式下可以控制端口的输出电平高低,比如用于驱动LED闪烁,控制蜂鸣器,配合输入模式可以模拟通信接口协议I2C,SPI等等。

    相关文章:
    GPIO就是芯片上的一根干啥都行的引脚
    一文读懂GPIO口的结构之输入
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-12-22 20:31 , Processed in 0.058532 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表