为什么软件iic需要用开漏输出和上拉电阻

news2025/1/13 10:48:24

1、疑惑:

不知道大家有没有这种疑惑,在软件iic的配置过程当中,有些时候要输出高低电平,为什么使用开漏输出而不是推挽输出?

2.推挽输出和开漏输出的区别

推挽输出: 输出逻辑0,则N-MOS激活;输出逻辑1,则P-MOS激活。

开漏输出:在不接上拉电阻时, 输出逻辑0,则N-MOS激活;输出逻辑1,P-MOS不会激活, 不会输出高电平。在接上拉电阻时, 输出逻辑0,则N-MOS激活;输出逻辑1,P-MOS激活, 可以输出高电平。

也就是说开漏输出如果不接上拉电阻, 没有输出高电平的能力。如果需要开漏输出有输出高电平的能力需要接一个上拉电阻. 目前很多单片机GPIO可以通过软件配置上拉电阻.

在这里插入图片描述

 左图为开漏输出(接上拉电阻), 右图为推挽输出

3.开漏输出的作用

防止短路: 在一些情况下(比如总线), 多个GPIO口可能会连接在同一根线上, 存在某个GPIO输出高电平, 另一个GPIO输出低电平的情况. 如果使用推挽输出, 你会发现这个GPIO的VCC和另一个GPIO的GND接在了一起, 也就是短路了(凉凉了). 如果换成开漏输出呢? VCC和GND多了个电阻, 这样电路就是安全的.所以总线一般会使用开漏输出.
在这里插入图片描述

线与: 开漏输出还能实现 线与 (自行百度), 减少一个与门, 简化电路. 

4、IIC为什么用开漏输出和上拉电阻

IIC协议支持多个主设备与多个从设备在一条总线上, 如果不用开漏输出, 而用推挽输出, 会出现主设备之间短路的情况.
至于为什么需要上拉电阻, 那是因为IIC通信需要输出高电平的能力.
为了实现多个主设备抢占总线时的仲裁.IIC只有两根线(SCL和SDA), 怎么判断哪个主设备占用总线(当然是先来后到了).

假设主设备A需要启动IIC, 他需要在SCL高电平时, 将SDA由高电平转换为低电平作为启动信号. 主设备A在把SDA拉高后, 它需要再检查一下SDA的电平。

为什么? 因为线与. 如果主设备A拉高SDA时, 已经有其他主设备将SDA拉低了. 由于 1 & 0 = 0 那么主设备A在检查SDA电平时, 会发现不是高电平, 而是低电平. 说明其他主设备抢占总线的时间比它早, 主设备A只能放弃占用总线. 如果是高电平, 则可以占用。

这就是开漏输出在IIC通信中的另一个作用。

SDA是高电平, 说明主设备A可以占用总线, 然后主设备A将SDA拉低, 开始通信.SDA是低电平, 说明有人已经捷足先登了, 主设备A不能占用总线, 结束通信.

因此, 模拟IIC一定要将GPIO端口设置为开漏输出并加上上拉电阻.(硬件IIC会自动配置为开漏输出)。

5.解决方案:

最后说一下为什么之前使用推挽输出的IIC读取RTC没有问题,这个因为上拉电阻的阻值不同,RTC的上拉电阻即使推挽输出也可以正常拉高拉低电平。这个根据上文讲述的,可以查MCU的datasheet,确认IO的PMOS和NMOS的阻抗,计算一下电压。

还有一个简单粗暴的办法,直接使用示波器看波形也可以发现问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

<C++>类和对象-上

目录 前言 一、类的引入 二、类的定义 1.类的两种定义方式 三、类的访问限定符及封装 1.访问限定符 2.封装 四、类的作用域 五、类的实例化 六、类对象模型 1.计算类对象的大小 2 类对象的存储方式猜测 3. 结构体内存对齐规则 七、this指针 1. 引入 2 this指针的特性 总结 前言…

ChatGPT帮你调用PID算法【结合代码】

目录 PID算法是一种控制算法 下面分别介绍PID算法中的三个参数 MATLAB代码实现PID MATLAB代码实现PID PID算法是一种控制算法 用于控制系统的稳定性和精度。PID算法的名称来源于其三个组成部分:比例(P)、积分(I)和微…

CVE漏洞复现-CVE-2021-22205 GitLab未授权 RCE

CVE-2021-22205 GitLab未授权 RCE 漏洞背景和描述 2021年4月15日,GitLab官方发布安全补丁更新修复了GitLab命令执行漏洞(CVE-2021-22205)。由于GitLab中的ExifTool没有对传入的图像文件的扩展名进行正确处理,攻击者通过上传特制…

不得不说的结构型模式-外观模式

目录 ​编辑 1. 什么是外观模式 1.1外观模式的结构: 2实际案例: 3下面是面试中关于装饰器模式的常见的问题: 3.1下面是问题的答案: 1. 什么是外观模式 Facade模式也叫外观模式, Facade模式为一组具有类似功能的类群&#xff…

3ASC25H214 DATX130以力控制为基础的装配应用方面已经形成了一个解决方案

​ 3ASC25H214 DATX130以力控制为基础的装配应用方面已经形成了一个解决方案 ABB的机器人解决方案最终选择了IRB6400机器人 ABB的解决方案 ABB一直都在不断地研究和开发机器人应用的新技术,有一部分研究活动是与大学进行合作的,其中一项是ABB的科学家和…

数据建模方法论及实施步骤

了解数据建模之前首先要知道的是什么是数据模型。数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。 一、概要:数据…

关于数据包丢失你需要知道的一切(以及如何避免它)

当数据从一个地方传输到另一个地方时,一些数据包可能会被延迟、损坏甚至丢失。这就是所谓的数据包丢失。这很常见,但这并不意味着你必须接受它! 数据包丢失、延迟、抖动——如果你注意到互联网性能不佳,你可能会遇到其中一种或多种情况。 延迟与速度有关,但什么是数据包…

AP9193 升压恒流驱动芯片 24V 36V1A三线三色 LED大功率方案

AP9193 是一款高效率、高精度的升 压型大功率 LED 灯恒流驱动控制芯片。 应用领域 LED 灯杯 电池供电的 LED 灯串 平板显示 LED 背光 恒流充电器控制 大功率 LED 照明 AP9193 内置高精度误差放大器,固 定关断时间控制电路,恒流驱动电路等, …

【云原生Kubernetes】01-Kubernetes简介

【云原生Kubernetes】01-Kubernetes简介 文章目录 【云原生Kubernetes】01-Kubernetes简介前言kubernets概述为什么要使用Kubernetes?Kubernetes能做什么?Kubenets架构架构图架构组件说明Master节点Node节点Etcd节点 组件间的工作流程 Kubernetes的核心技术Pod副本…

Spring boot 集成Skywalking

一、Skywalking官网 Apache SkyWalking 备注:本文使用的V9.0.0版本 二、SkyWalking服务端安装 1.下载SkyWalking APM 2.解压直接启动bin下的startup.bat 3. 日志查看 见logs/skywalking-oap-server.log 4.监控平台默认地址访问 http://127.0.0.1:8080 如需修…

九款顶级AI工具推荐

ChatGPT OpenAI开发的最强对话系统 地址:chat.openai.com ChatGPT能够在同一个会话期间内回答上下文相关的后续问题。其在短时间内引爆全球的原因在于,在网友们晒出的截图中,ChatGPT不仅能流畅地与用户对话,甚至能写诗、撰文、编…

任务调度框架Azkaban Flow1.0和Azkaban Flow2.0

目录: 一、Azkaban Flow1.0简介二、Azkaban Flow1.0基本任务调度三、Azkaban Flow1.0多任务调度四、Azkaban Flow1.0调度HDFS作业五、Azkaban Flow1.0调度MR作业六、Azkaban Flow1.0调度Hive作业七、Azkaban Flow1.0在线修改作业配置八、Azkaban Flow 2.0 简介九、A…

论文笔记:路网匹配算法综述

17年的老论文了,作为入门是可以的 1 Intro GPS信号和实际的轨迹是有一段距离的 如果对GPS数据不做处理直接定位,那么位置会被定位到非道路的建筑、湖泊、公园中,这显然是不合理的——>需要对GPS数据进行处理,使得其能较为准确…

nodejs搭建web框架开发web服务

首先安装nodejs,然后安装express MVC框架 1. npm install -g express 由于我写的是一个proxy代理服务所以我也安装了 http-proxy-middleware 【npm install -g http-proxy-middleware】 2.如果执行express,未能识别指令主要原因是因为环境变量中没有express.ex…

你真的使用过低代码产品吗?

低代码已经迅速成为现代软件开发的一个重要组成部分。其核心思想是加快和民主化应用程序开发过程。从开发人员的角度来看,这意味着他们可以用最少的编码来构建复杂的应用程序,使开发过程更快、更简单、更高效。对于企业用户来说,它使他们能够…

ChatGPT搭建AI网站实战

1.概述 ChatGPT是一款基于GPT-3.5架构的大型语言模型,它能够进行自然语言处理和生成对话等任务。作为一款智能化的聊天机器人,ChatGPT有着广泛的应用场景,如在线客服、智能助手、个性化推荐等。今天笔者给大家分享一下如何使用ChatGPT的API模…

创业一定要要组建团队吗?可以一个人独自创业吗,不能一概而论

创业团队,我们需要了解一个概念,那就是“群体”。 在生活中,我们经常会说这样一句话,人以群分,物以类聚。 每个人都不可能离开他人而独立存在,俗话说,“一个篱笆三个桩,一个好汉三个…

SAP批次分类完整检查的使用 (TCODE : BMCC)<转载>

原文链接:https://mp.weixin.qq.com/s/xzG6UqLmTcoLdEBeOnzfwA 最近批次物料收货遇到报错如下 分类数据中的不一致性>交易中止,消息号12126. 从报错字面意思看应该是批次分类属性出现了问题,具体是哪里不一致呢? 可以通过报…

20230427-tortoisegit报错-unsafe-repository

20230427-tortoisegit报错-unsafe-repository 一、软件环境 windows 11 x64 22H2git 2.35.3tortoisegit 2.14.0.0标签:git tortoisegit分栏:GIT 二、报错现象 右键打开tortoisegit,点击commit报错【fatal: unsafe … is owned by someone…

httphtml(HTML语法)

目录 1.http协议 1.Http简介 2.Http特点 3.Http协议格式 1)客户端请求消息格式 2)服务器响应消息格式: 2.Html简介 3.Html标签 1.标签格式: 2.标签分类: 3. 常用标签: 1)h1-h6标题标…