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

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

3天内不再提示

I2C为什么要接上拉电阻?上拉电阻阻值怎么确定?

pecron 来源:电路一点通 2023-02-24 09:18 次阅读

为什么是开漏输出?

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

为什么要接上拉电阻?

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

7d8e870a-b37e-11ed-bfe3-dac502259ad0.jpg

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

    文章

    345

    浏览量

    30255
  • 通信
    +关注

    关注

    18

    文章

    5699

    浏览量

    134359
  • 总线
    +关注

    关注

    10

    文章

    2702

    浏览量

    87197
  • 阻值
    +关注

    关注

    2

    文章

    51

    浏览量

    20834
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1346

    浏览量

    120791

原文标题:I2C为什么要接上拉电阻?上拉电阻阻值怎么确定?

文章出处:【微信号:电路一点通,微信公众号:电路一点通】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电阻和下拉电阻的作用

    电阻:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上
    发表于 05-22 08:46

    电阻的计算

    2、OC门电路必须加上电阻,才能使用。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上电阻。4、在COMS芯片
    发表于 05-12 08:24

    电阻

    流,两输入口需200uA200uAx15k=3v即电阻压降为3V,输出口可达到2V,此阻值为最大阻值
    发表于 08-28 09:27

    电阻

    流,两输入口需200uA200uAx15k=3v即电阻压降为3V,输出口可达到2V,此阻值为最大阻值
    发表于 11-16 17:14

    I2C信号一般需要外接上电阻,如果主控内部有电阻,是否可以省略外部

    I2C信号一般需要外接上电阻,如果主控内部有电阻
    发表于 06-07 10:01

    电阻和下拉电阻详解

    要注意电阻阻值太大的时候,容易产生干扰,尤其是线路板的线条很长的时候,这种干扰更严重,这种情况下
    发表于 10-19 16:30

    如何测量电阻的大小?

    漏应用来说,时序常数比较大会对I2C总线产生负面影响,从而使其串行数据线(SDA)和串行时钟线(SCL)达到所需的波特率。从数学上讲以下是计算电阻值的方法:Rp(min)为可接受的最小电阻值,由下面
    发表于 11-30 09:12

    请问stm32f051 i2c需要外接上电阻吗?

    stm32f051的i2c需要外接上电阻吗,直接用内部行不行,还有库中的
    发表于 03-12 07:14

    电阻和下拉电阻问题

    高电平的值。 2、OC门电路必须加上电阻,才能使用。 3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上电阻。 4、在COM
    发表于 06-27 05:55

    电阻作用,电阻应用和选择原则

      一、定义  1、就是将不确定的信号通过一个电阻嵌位在高电平!“电阻同时起限流作用”!下拉同理!  
    发表于 12-14 17:21

    确定电阻值时需要考虑哪些注意事项?

    确定电阻值时需要考虑哪些注意事项?稳定可靠的I2C通信的设计计算公式
    发表于 05-25 06:35

    开发板I2C总线上为什么没有电阻

    开发板I2C连接到RTC(RX8010)芯片,I2C总线上没有接上电阻,LS1012A手册上说它的I2
    发表于 01-05 06:28

    如何去实现一种I2C电阻的设计呢

    I2C电阻 在一些PCB的layout中,大家往往会看到在I2C通信的接口处,往往会接入一个4.7K的
    发表于 01-14 07:22

    I2C总线上电阻设计要点

    上周翻了下AT24CM02芯片的数据手册,里面提到了I2C电阻的设计要点,只有两个公式就简洁地把
    发表于 11-29 08:00

    I2C为什么要接上电阻?上拉电阻阻值怎么确定

    如果上拉阻值过小,VDD灌入端口的电流将较大,功耗会很大,导致端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V)。
    发表于 02-06 10:53 800次阅读