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导通,引脚输出低电平

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

    关注

    182

    文章

    16559

    浏览量

    244779
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117763
  • GPIO
    +关注

    关注

    16

    文章

    1137

    浏览量

    50596
收藏 人收藏

    评论

    相关推荐

    详解ARM处理寄存器与运行模式

    指示ARM执行T=1 指示Thumb执行c. 模式控制位M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理工作
    发表于 11-27 19:32

    编程寄存器相关位详解

    目录一,涉及编程寄存器相关位详解二,源代码及解析:三,时钟设置的框图步骤分解stm32上电后默认使用的是内部8MHZ的HSI,速度比较慢,所以上电后要首先进行时钟的配置,让CPU工作在72MHZ
    发表于 08-12 06:41

    GPIO相关寄存器配置

    1. GPIO相关寄存器1.1 配置寄存器(CRL、CRH)1.2 数据寄存器(IDR、ODR)1.3 位设置/清除
    发表于 08-17 06:10

    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单片机GPIO寄存器的功能解析

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

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

    文章目录一、STM32F103系列芯片的地址映射和寄存器映射原理1.寄存器2.地址映射和寄存器映射原理二、GPIO端口的初始化1.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端口的寄存器包括:4个32位配置
    发表于 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引脚状态不确定,引脚悬空时,电平状态是不确定的值,可以做KEY
    发表于 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>

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

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

    【STM32】GPIO的相关配置寄存器、库函数、位操作

    STM32的每组GPIO口包括7个寄存器。也就是说,每个寄存器可以控制一组GPIO的16个GPIO口。这
    发表于 02-10 10:24 5次下载
    【STM32】<b class='flag-5'>GPIO</b>的相关配置<b class='flag-5'>寄存器</b>、库函数、位操作

    详解GPIO工作模式寄存器2

    因为模拟信号经过施密特触发器后只有0/1两种状态,因此信号源输入在施密特触发器前。类似地,当GPIO 引脚用于DAC 作为模拟电压输出通道时,DAC 的模拟信号输出就不经过双MOS 管结构,模拟信号直接输出到引脚。
    的头像 发表于 01-30 15:01 664次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>GPIO</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>与<b class='flag-5'>寄存器</b>2