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

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

3天内不再提示

I2C总线为什么要接上拉电阻

fcsde-sh 来源:fcsde-sh 2024-11-20 10:07 次阅读

I2C为什么要接上拉电阻?因为它是开漏输出。

c4f81390-9ff4-11ef-93f3-92fbcf53809c.jpg

为什么是开漏输出?

I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以总线一般会使用开漏输出。

为什么要接上拉电阻?

接上拉电阻是因为I2C通信需要输出高电平的能力。一般开漏输出无法输出高电平,如果在漏极接上拉电阻,则可以进行电平转换。

I2C由两条总线SDA和SCL组成。连接到总线的器件的输出级必须是漏极开路,都通过上拉电阻连接到电源,这样才能够实现“线与”功能。当总线空闲时,这两条线路都是高电平。

上拉电阻阻值怎么确定?

一般IO端口的驱动能力在2mA~4mA量级。

阻值不能过小。

功耗问题。如果上拉阻值过小,VDD灌入端口的电流将较大,功耗会很大,导致端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V)。故通常上拉电阻应选取不低于1K的电阻(当VDD=3V时,灌入电流不超过3mA)。

阻值不能过大。

速度问题。它取决于上拉电阻和线上电容形成的RC延时,RC延时越大,波形越偏离方波趋向于正弦波,数据读写正确的概率就越低,所以上拉电阻不能过大。

I2C总线上的负载电容不能超过400pF。当I2C总线上器件逐渐增多时,总线负载电容也相应增加。当总的负载电容大于400pF时,就不能可靠的工作。这也是I2C的局限性。

建议上拉电阻可选用1.5K,2.2K,4.7K。

I2C总线基本操作

根据I2C总线规范,总线空闲时两根线都必须为高。假设主设备A需要启动I2C,他需要在SCL高电平时,将SDA由高电平转换为低电平作为启动信号

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

因此,模拟I2C一定要将GPIO端口设置为开漏输出并加上拉电阻。

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

    关注

    5

    文章

    359

    浏览量

    30563
  • I2C总线
    +关注

    关注

    8

    文章

    388

    浏览量

    60821

原文标题:I2C总线为什么要接上拉电阻

文章出处:【微信号:fcsde-sh,微信公众号:fcsde-sh】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    I2C为什么接上电阻

    I2C为什么接上电阻?因为它是开漏输出。
    发表于 07-08 16:14 2653次阅读
    <b class='flag-5'>I2C</b>为什么<b class='flag-5'>要</b><b class='flag-5'>接上</b><b class='flag-5'>拉</b><b class='flag-5'>电阻</b>?

    聊聊I2C总线电阻

    I2C总线电阻的选择以及作用,以及计算方法。
    的头像 发表于 07-14 12:49 4059次阅读
    聊聊<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>

    I2C总线应用中的几个问题

    I2C总线应用中的几个问题:i2c电阻阻值的确定,PCB布局布线与抗干扰设计,软件模拟I2C
    发表于 09-13 14:27 51次下载
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>应用中的几个问题

    i2c总线相关知识

    I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上电阻组成。通信原理是通过对SCL和SDA线高低电平时序
    发表于 12-06 10:48 3519次阅读
    <b class='flag-5'>i2c</b><b class='flag-5'>总线</b>相关知识

    I2C总线物理拓扑结构_I2C总线协议解析

    I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上电阻组成。通信原理是通过对SCL和SDA线高低电平时
    的头像 发表于 09-24 14:12 6151次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>物理拓扑结构_<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>协议解析

    I2C总线一定要接上电阻?上电阻阻值怎么确定?

    I2C为什么接上电阻?因为它是开漏输出。 1 为什么是开漏输出? I2C协议支持多个主设备与
    的头像 发表于 06-21 10:30 1.5w次阅读

    I2C为什么接上电阻

    I2C为什么接上电阻?因为它是开漏输出!
    的头像 发表于 06-21 16:34 1.3w次阅读
    <b class='flag-5'>I2C</b>为什么<b class='flag-5'>要</b><b class='flag-5'>接上</b><b class='flag-5'>拉</b><b class='flag-5'>电阻</b>?

    I2C电阻设计

    I2C电阻 在一些PCB的layout中,大家往往会看到在I2C通信的接口处,往往会接入一个4.7K的电阻,有的datasheet上面明
    发表于 01-14 14:10 9次下载
    <b class='flag-5'>I2C</b>上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>设计

    I2C总线的常见通信方式

    SDA和SCL需要外接上电阻,根据总线上的I2C设备数量,系统的通信速度,设计选择不同的上
    发表于 06-29 11:28 6738次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的常见通信方式

    IIC上电阻的选择与计算

    I2C总线为什么接上电阻 1、根据I2C
    的头像 发表于 10-25 20:36 939次阅读

    【干货】IIC上电阻的选择与计算

    I2C总线为什么接上电阻 1、根据I2C
    的头像 发表于 11-09 13:21 2885次阅读

    【干货】IIC上电阻的选择与计算

    I2C总线为什么接上电阻 1、根据I2C
    的头像 发表于 12-13 16:30 2669次阅读

    简述I2C总线协议

    I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上电阻组成。通信原理是通过对SCL和SDA线高低电平时
    的头像 发表于 02-13 10:14 1420次阅读
    简述<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>协议

    电阻I2C电路中的作用 I2C电阻的计算方法

    相信很多人都清楚,在I2C总线上需要接上电阻?但是您针对对I2C
    的头像 发表于 07-25 10:37 2508次阅读
    上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>在<b class='flag-5'>I2C</b>电路中的作用 <b class='flag-5'>I2C</b>上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>的计算方法

    I2C总线电阻计算

    电子发烧友网站提供《I2C总线电阻计算.pdf》资料免费下载
    发表于 10-08 09:54 1次下载
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>计算