第一范文网 - 专业文章范例文档资料分享平台

IIC为什么需要用开漏输出和上拉电阻

来源:用户分享 时间:2025/8/24 4:04:38 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

IIC为什么需要用开漏输出和上拉电阻

IIC通信协议

IIC协议正确,?但是一直读取失败

推挽输出和开漏输出推挽输出:?

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

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

也就是说开漏输出如果不接上拉电阻,?没有输出高电平的能力。

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

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

开漏输出的作用

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

线与:?开漏输出还能实现?线与?(自行百度),?减少一个与门,?简化电路.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会自动配置为开漏输出)。

搜索更多关于: IIC为什么需要用开漏输出和上拉电阻 的文档
IIC为什么需要用开漏输出和上拉电阻.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c21m6h8h9775136q5t3t485bn78arf200ckf_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top