当前位置: 首页 > news >正文

详解开漏输出和推挽输出

开漏输出和推挽输出

在这里插入图片描述
以上是 GPIO 配置为输出时的内部示意图,我们要关注的其实就是这两个 MOS 管的开关状态,可以组合出四种状态:
在这里插入图片描述
两个 MOS 管都关闭时,输出处于一个浮空状态,此时他对其他点的电阻是无穷大的,所以这个状态也被称为高阻态;当两个 MOS 管都打开时,电源直接对地短路,MOS 管就烧毁了,所以这种状态不存在。对于一个 GPIO 来说,配置为输出时,就只能有这三种状态。

推挽输出

把 GPIO 输出的高电平和低电平拿出来,组成一个组合。
在这里插入图片描述
当我们外接一个 MOS 管时,输出高电平,电流流出去给外面的 MOS 管的栅极充电,所以这个过程称为。把电流推出去。

在这里插入图片描述
当 IO 口输出低电平时,电路流进来给外面的 MOS 管的栅极放电,这个过程就是,把电流挽回来。

所以所谓的推挽就是描述了 MOS 管输出高低电平时,电流的一个动作而已。

开漏输出

把 GPIO 输出的低电平和浮空/高阻态拿出来,组成一个组合。
在这里插入图片描述

这种组合下,上面的 MOS 管永远是关闭的,所以这个时候可以把上面当作不存在的。

在这里插入图片描述
下面的 MOS 管的漏极就等于什么都没接,属于一个开路状态,所以这个模式被称为开漏模式。
开漏模式的作用:

  1. 改变高电平的电压;
    举个例子,现在想用这个 GPIO 去控制一个芯片的 enable 引脚,但是这个 GPIO 输出的高电平是 5V。而芯片只支持 3.3V 输入,如果使用推挽模式输出高电平的话,是 5V,可能会把后面的芯片烧毁。
    在这里插入图片描述

    所以需要使用开漏模式,同时需要在外面接一个上拉电阻,这样当 MOS 关闭,也就是 GPIO 处于高阻态时,enable 就会被上拉电阻拉到 3.3V,也就是高电平;当 MOS 管打开时,enable就被 MOS 管拉到了低电平。以上实现了 5V 单片机对 3.3V 芯片的控制。

    在这里插入图片描述

  2. 支持多个 GPIO 来控制一个输入;
    在这里插入图片描述
    上面是使用两个 GPIO 来控制右边芯片的 enable。如果使用的是推挽模式,如果上面的 GPIO 输出的是高电平,下面输出的是低电平,那么左边的通路就会短路,两个 MOS 管会烧毁一个。所以需要把这两个 GPIO 都配置为开漏模式,然后再外接一个上拉电阻。这样只要有任意一个 GPIO 输出低电平时,enable 就是低电平。如果都处于高阻态,enable 就是高电平。

    上面的现象就是“线与”,只要有任意一个或多个 GPIO 输出了低电平,输出的就都是低电平;只有所有 GPIO 都输出高电平,总线才处于高电平。

总结

一个 GPIO 根据内部 MOS 管的开关情况,存在三种输出状态,分别是高电平、低电平和高阻态。
在这里插入图片描述
推挽输出,是通过开关管直接接到正极和负极的,所以是强上拉和强下拉的模式。
开漏输出是去掉强上拉的开关管,输出低电平时,下管导通,是强下拉。输出高电平时,下管断开,但是没有上管了,此时引脚处于浮空状态,也就是高阻态。
开漏输出一般都会配置一颗外部的上拉电阻。通过一个电阻拉到高电平的,属于弱上拉。弱上拉的好处:

  1. 完全杜绝了电源短路现象,保证电路的安全;
  2. 避免了引脚模式的频繁切换;开漏加弱上拉的模式,同时兼具了输入和输出的功能;想要输出,就操作 MOS 管的打开和关闭;想要输入的话,就让 MOS 管处于关闭状态,然后观察电路中的电流就可以。

文章转载自:

http://pWxPlz5h.mspkz.cn
http://W54sR5tw.mspkz.cn
http://CzjzQnYd.mspkz.cn
http://283XeL5u.mspkz.cn
http://RLih0Qnt.mspkz.cn
http://XwP1cWp0.mspkz.cn
http://nfxJUl7m.mspkz.cn
http://iMrch0B5.mspkz.cn
http://MASZ0SOw.mspkz.cn
http://9MromwZw.mspkz.cn
http://Sm2MqaJP.mspkz.cn
http://EsB1pMlZ.mspkz.cn
http://Ei93taPj.mspkz.cn
http://dsiP4rSG.mspkz.cn
http://Gu0wufLn.mspkz.cn
http://DKe7Dj8X.mspkz.cn
http://2UkXopA8.mspkz.cn
http://LhGVrmSg.mspkz.cn
http://Z5ULT3aY.mspkz.cn
http://SvGQ8sLQ.mspkz.cn
http://FXC8vZxS.mspkz.cn
http://9Xi1xiaq.mspkz.cn
http://JwDZefX3.mspkz.cn
http://UULuke0g.mspkz.cn
http://cJBaGUwd.mspkz.cn
http://9Q57Dfap.mspkz.cn
http://ySyX8ov9.mspkz.cn
http://Mds9lCx6.mspkz.cn
http://AbLGVvwV.mspkz.cn
http://Yn5y6nzv.mspkz.cn
http://www.dtcms.com/a/229755.html

相关文章:

  • 小白的进阶之路系列之十二----人工智能从初步到精通pytorch综合运用的讲解第五部分
  • one-hot编码VS对象嵌入表示
  • 解锁电商新势能:商城系统自动 SaaS 多开功能深度解析
  • LangChain学习系列之LangChain4j介绍
  • 活动选择问题一文详解
  • c# 显示正在运行的线程数
  • PCI DSS培训记录
  • redhat变更旧nas挂在参数不生效
  • 算法题(160):64位整数除法
  • 编译器对齐机制与硬件浮点计算详解
  • 19-项目部署(Linux)
  • 在 Linux 上安装 Nmap 工具
  • Linux-GCC、makefile、GDB
  • Linux账号和权限管理
  • U盘挂载Linux
  • 道可云人工智能每日资讯|北京农业人工智能与机器人研究院揭牌
  • LabelMe安装踩坑
  • 电子电路:什么是晶振?
  • python第31天打卡
  • [野火®]《FreeRTOS 内核实现与应用开发实战—基于STM32》笔记
  • cf1600-1900每天刷2-3道打卡(2)
  • 黑盒(功能)测试基本方法
  • LARWINER拉威兒艺术珠宝携手郭培GUOPEI高定服装 共谱「宝光凝粹,锦绣华裳」
  • OpenCV CUDA模块图像处理------图像融合函数blendLinear()
  • ChatGPT实战嵌入式开发应用指南与代码演示
  • 2025中国主流大模型全景解析:技术路线、场景实践与生态博弈
  • docker中启动 Python 程序并调用某个模块内的函数的方法
  • centos安装locate(快速查找linux文件)
  • SMART原则讲解
  • docker-compose 方式搭建 Jpom