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

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

3天内不再提示

详解GPIO工作模式与寄存器1

jf_78858299 来源:百问网 作者:韦东山 2023-01-30 15:00 次阅读

1 模电知识

1675060747(1).png

在这里插入图片描述

VDD:D=device 表示芯片内部工作电源(一般VDD

VSS:S=series 表示公共连接,通常指电路公共接地端电压。

TTL肖特基触发器即为用肖特基管构成的施密特触发器,施密特触发器利用门阀电压将引脚模拟信号变成矩形信号,进行转化为0/1数字信号存入输入数据寄存器

当引脚电压高于VDD 时,上方的二极管导通,当引脚电压低于VSS 时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。(虽有这样的保护,但不能驱动大功率器件,如直接驱动电机,电机堵转的反向电流会烧毁芯片)

  • 推挽输出
    1675060786(1).png

PMOS栅极低电平导通,NMOS栅极高电平导通。一般PMOS源极接VDD,NMOS源极接GND。

MOS管中寄生二极管作用是防止VDD过压的情况下,烧坏mos管。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载拉取电流。下面分析电路:

当输入为高电平时,经过反向后输出到MOS管栅极为低电平,PMOS的SD导通,OUT输出为高电平VDD;当输如为低时,NMOS导通,OUT输出为低电平。当引脚高低电平切换时,两个管子轮流导通,P 管负责灌电流,N 管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。

  • 开漏输出
    1675061125(1).png
  • 开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。
  • 上拉电阻的阻值决定了逻辑电平转换的沿的速度 :阻值越大,速度越低,功耗越小;所以负载电阻的选择要兼顾功耗和速度。一般会带来上升沿的延时,因为上升沿是通过外接上拉电路对负载供电,所以若对延时有要求,建议用下降沿输出。
  • 开漏输出可以实现线与功能,可以将多个开漏输出的Pin,经上拉电阻连接到一条总线上,实现与逻辑,主要用于IIC、SMBus总线。

线与:当在很多个开漏引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于短路接地,所以外电路逻辑电平便为0;只有当所有引脚均输出高阻态时,才由上拉电阻提供高电平,即为逻辑1。

2 GPIO模块电路结构

1675061488(1).png

在这里插入图片描述

2.1 输入模式

1675061528(1).png

在这里插入图片描述

  1. 输出驱动器关闭(N/PMOS关闭)
  2. 施密特触发器打开,可以获取引脚状态
  3. 通过寄存器使能上/下拉电阻配置输入模式下的三种状态
  4. 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
  5. 引脚电平状态将存入输入数据寄存器
  • 浮空输入:上下拉电阻全断开
    图片
  • 上拉输入:上拉电阻打开,下拉电阻关闭
    图片
  • 下拉输入:下拉电阻打开,上拉电阻关闭
    图片

注意

  • 设计按键电路时可以利用芯片内部弱上拉和下拉电阻,这样省去了外接的电阻。
  • 浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定。

2.2 输出模式

图片

在这里插入图片描述

  1. 输出驱动器打开
  2. 施密特触发器打开
  3. 弱上拉和下拉电阻被禁止
  4. 在每个APB2时钟周期,出现在I/O脚上的数据被采样到输入数据寄存器
  5. 在开漏模式时,对输入数据寄存器的读访问可得到I/O状态;在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值。
  • 通用推挽输出
    图片
  • 当输出数据寄存器相应位为1时,同相端输出为1,但经过反相器(小圆圈)后,到PMOS栅极输出为0,反相端反相后输出为1,此时PMOS导通;NMOS截止,引脚输出高电平。( 推-灌电流
  • 当输出数据寄存器相应位为0时,PMOS截止,NMOS导通,引脚输出低电平。( 挽-拉电流

  • 通用开漏输出
    图片
    开漏输出时,PMOS关闭(输出数据寄存器的1将端口置于 高阻态 ),只有NMOS工作,但是此时只能输出低电平,要输出高电平必须外加上拉电阻。

上图为加了上拉电阻的开漏输出(需用户外接):当输出数据寄存器相应位为1时,反相端输出0,此时NMOS截止,由外加的上拉电阻提供高电平。当输出数据寄存器相应位为0时,NMOS导通,引脚输出低电平

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

    关注

    184

    文章

    17471

    浏览量

    249053
  • 寄存器
    +关注

    关注

    31

    文章

    5284

    浏览量

    119770
  • GPIO
    +关注

    关注

    16

    文章

    1187

    浏览量

    51807
收藏 人收藏

    评论

    相关推荐

    基于DWC2的USB驱动开发-发送相关的寄存器DMA寄存器详解

    /Gather DMA模式IN端点1进行操作 寄存器的地址偏移分别是 0x900+i*0x20 0x908+i*0x20 0x910+i*0x20
    的头像 发表于 07-16 16:42 1543次阅读
    基于DWC2的USB驱动开发-发送相关的<b class='flag-5'>寄存器</b>DMA<b class='flag-5'>寄存器</b><b class='flag-5'>详解</b>

    GPIO寄存器详解

    STM32F4工程--IO口--GPIO寄存器详解 ----芯片:STM32F429IGT6----参考资料:正点原子视频一、基础知识1、每组IO口包含10个
    发表于 01-18 06:53

    DSP2812寄存器详解

    DSP2812寄存器详解DSP2812寄存器详DSP2812寄存器详解
    发表于 01-08 14:17 8次下载

    STM32 GPIO寄存器ODR BSRR BRR

    STM32 GPIO寄存器ODR BSRR BRR详细介绍
    发表于 07-29 10:27 2次下载

    51寄存器的所有寄存器名称,(包括寄存器每一位的作用及用法)资源详解

    51寄存器的所有寄存器名称,(包括寄存器每一位的作用及用法)资源详解
    发表于 10-16 13:04 14次下载
    51<b class='flag-5'>寄存器</b>的所有<b class='flag-5'>寄存器</b>名称,(包括<b class='flag-5'>寄存器</b>每一位的作用及用法)资源<b class='flag-5'>详解</b>

    STM32使用BSRR和BRR寄存器快速操作GPIO端口

    STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置1
    发表于 11-26 11:50 1次下载

    基于stm32的GPIO寄存器学习解析

    GPIO即通用输入/输出 (General Purpose Input Output) 包括: 两个32位的配置寄存器 GPIOx->CRL,GPIOx->CRH 两个32位的数据
    的头像 发表于 01-11 09:03 1.3w次阅读
    基于stm32的<b class='flag-5'>GPIO</b><b class='flag-5'>寄存器</b>学习解析

    STM32单片机GPIO寄存器的功能解析

    对于GPIO端口,每个端口有16个引脚,每个引脚的模式寄存器的四个位控制,每四位又分为两位控制引脚配置(CNFy[1:0]),两位控制引脚的模式
    发表于 12-04 14:54 1.3w次阅读
    STM32单片机<b class='flag-5'>GPIO</b><b class='flag-5'>寄存器</b>的功能解析

    【嵌入式07】寄存器映射原理详解GPIO端口的初始化设置步骤

    本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)。
    发表于 12-04 12:06 11次下载
    【嵌入式07】<b class='flag-5'>寄存器</b>映射原理<b class='flag-5'>详解</b>,<b class='flag-5'>GPIO</b>端口的初始化设置步骤

    STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化

    文章目录一、STM32F103系列芯片的地址映射和寄存器映射原理1.寄存器2.地址映射和寄存器映射原理二、GPIO端口的初始化
    发表于 12-05 14:21 10次下载
    STM32F103系列芯片的地址映射和<b class='flag-5'>寄存器</b>映射原理,<b class='flag-5'>GPIO</b>端口的初始化

    GPIO寄存器

    ,一般高16位保留BSRR寄存器32位分为低16位BSRRL和高16位BSRRH,BSRRL配置一组IO口的16个IO口的状态(1),BSRRH配置复位状态(0)。每组GPIO端口的寄存器
    发表于 12-08 17:06 5次下载
    <b class='flag-5'>GPIO</b><b class='flag-5'>寄存器</b>

    STM32寄存器点灯

    配置寄存器使STM32最小系统板上的LED灯点亮根据原理图,要使D2点亮,需要将PC13拉低,分为以下步骤:使能GPIO的时钟配置GPIO13为输出模式配置
    发表于 12-08 17:21 3次下载
    STM32<b class='flag-5'>寄存器</b>点灯

    GPIO工作模式寄存器

    GPIO工作模式1、浮空输入模式 GPIO_Mode_IN_FLOATING引脚状态不确定,引
    发表于 12-08 17:21 7次下载
    <b class='flag-5'>GPIO</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>和<b class='flag-5'>寄存器</b>

    STM32-GPIO_寄存器版(1

    、4个 32 位配置寄存器1、GPIOx_MODER——用于选择 I/O 方向(输入、输出、AF(复用)、模拟)。2、GPIOx_OTYPER——用于选择输出类型(推挽或开漏)(IO口设置为输入时不用设置此寄存器)3、GPIOx
    发表于 12-28 19:26 0次下载
    STM32-<b class='flag-5'>GPIO</b>_<b class='flag-5'>寄存器</b>版(<b class='flag-5'>1</b>)

    STM32F103寄存器配置相关学习 —— GPIO

    1. GPIO相关寄存器1.1 配置寄存器(CRL、CRH)1.2 数据寄存器(IDR、ODR)1.3 位设置/清除
    发表于 01-17 09:33 2次下载
    STM32F103<b class='flag-5'>寄存器</b>配置相关学习 —— <b class='flag-5'>GPIO</b>