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

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

3天内不再提示

I2C总线上拉电阻阻值如何确定?

ZLG致远电子 2024-12-27 11:34 次阅读

导读

I2C总线在产品设计中被广泛应用,尽管其结构简单,但经常发生上拉电阻设计不合理的问题。本文将对I2C上拉电阻的选择进行简要分析。

一根信号线上,通过电阻连接一个固定的高电平VCC,信号线初始、空闲时一直保持高电平状态,称为上拉电阻。

总线的上拉电阻各有不同作用,如I2C的上拉电阻是由I2C端口内部结构决定的,而RS485CAN总线的上拉电阻是为了做终端匹配。那这不同总线的上拉电阻,是否接上拉,阻值的选择有何讲究吗?

是的,这些电阻阻值的选择都是有理论依据的,如果阻值选择不正确,会引起一些异常,例如曾经有一个案例,I2C上拉电阻阻值为10K,而应用却要求I2C跑400KHz的高速率,显然这样的上拉电阻不能满足400kHz的高速率要求,出现通信错误也是不可避免的了。

对于RS485和CAN总线而言,则需要根据现场情况进行灵活使用,就算节点数相同的两个应用,由于布线和所接设备的差异,需要的匹配电阻也是不同的。理论计算值可做为重要的参考依据。

6d7f57a8-c403-11ef-9434-92fbcf53809c.jpg  I2C上拉电阻有什么作用、阻值如何确定?

目的:保证通讯正常。

常说I2C需要加上拉电阻,却不知道为什么需要加上拉电阻?

第一是I2C本身的协议决定,空闲时两线均保持高电平状态,能够实现线“与”功能。

第二是器件内部结构,如图1所示,SCL和SDA引脚内部结构,内部无法提供高电平,只能依靠外部高电平。目前部分器件支持上拉功能的复用功能开漏模式,芯片内部可配置为上拉模式(建议使用外部上拉电阻)。

6d966ef2-c403-11ef-9434-92fbcf53809c.png

图1 I2C端口内部结构等效电路

I2C上拉电阻的取值大小怎么确定?

考虑IO灌电流,阻值不能过小。通常在标准模式100Khz,灌电流不超过3mA,

VOL不超过0.4V,若上拉电阻至3.3V,上拉电阻阻值约大于1k。

6db84c2a-c403-11ef-9434-92fbcf53809c.png

代入Vdd = 3.3,Vol(max)=0.4,Iol(max)= 3,得到Rmin = 966Ω

考虑上升时间,阻值不能过大。高电平是靠外部上拉电阻提供,电阻和总线电容组成RC网络,电阻过大充电时间过长,造成信号上升缓慢,未在规定时间内到达高电平,导致数据错误。针对I2C系统,在上拉电压的30%至70%时来测量上升时间和下降时间,总线电容100pF,总线最大上升时间300ns。

6dc54f74-c403-11ef-9434-92fbcf53809c.png

代入Tr=300,Cb=100,计算得到Rmax=3.54kΩ。

根据以上计算,上拉电阻的取值在966~3.54k之间。工程实际设计中,并不是完全按照这个值来设计,通常可选取2.2k,3k,4.7k。

解决I2C通信问题,建议抓取I2C波形,观察总线上升/下降时间,并分析总线电容和上拉电阻等因素,并结合驱动代码全面分析。

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

    关注

    5

    文章

    360

    浏览量

    30621
  • CAN总线
    +关注

    关注

    145

    文章

    1951

    浏览量

    130754
  • I2C总线
    +关注

    关注

    8

    文章

    391

    浏览量

    60936
收藏 人收藏

    评论

    相关推荐

    I2C总线上电阻设计要点

      上周翻了下AT24CM02芯片的数据手册,里面提到了I2C电阻的设计要点,只有两个公式就简洁地把上电阻
    发表于 11-28 17:12 3106次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线上</b><b class='flag-5'>拉</b><b class='flag-5'>电阻</b>设计要点

    I2C总线上电阻的计算实例

      引言:I2C通信标准是当今电子系统中最广泛使用的芯片间通信标准。这是一种开放漏极/开放集电极通信标准,意味着可以连接具有不同电压供电轨的集成电路进行通信。需要将上电阻器从I2C线
    发表于 06-02 10:17 1553次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线上</b><b class='flag-5'>拉</b><b class='flag-5'>电阻</b>的计算实例

    聊聊I2C总线上电阻

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

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

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

    I2C总线上电阻设计要点

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

    I2C总线应用中的几个问题

    I2C总线应用中的几个问题:i2c电阻阻值确定
    发表于 09-13 14:27 51次下载
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>应用中的几个问题

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

    I2C为什么要接上电阻?因为它是开漏输出。 1 为什么是开漏输出? I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而
    的头像 发表于 06-21 10:30 1.5w次阅读

    I2C电阻设计

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

    I2C总线的常见通信方式

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

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

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

    I2C电阻如何选择合适的阻值

    I2C总线是微电子通信控制领域中常用的一种总线标准,具备接线少,控制简单,速率高等优点。在I2C电路中常见的上
    的头像 发表于 05-10 16:17 7028次阅读
    <b class='flag-5'>I2C</b>上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>如何选择合适的<b class='flag-5'>阻值</b>?

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

    相信很多人都清楚,在I2C总线上需要接上电阻?但是您针对对I2C
    的头像 发表于 07-25 10:37 2719次阅读
    上<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总线上加上
    的头像 发表于 09-09 17:16 1037次阅读

    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>计算

    I2C总线为什么要接上电阻

    I2C为什么要接上电阻?因为它是开漏输出。 为什么是开漏输出? I2C协议支持多个主设备与多个从设备在一条总线上,如果不用开漏输出,而用推
    的头像 发表于 11-20 10:07 471次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>为什么要接上<b class='flag-5'>拉</b><b class='flag-5'>电阻</b>