打印

I2C 上拉电阻(Rp)及串联电阻(Rs)如何取值?

[复制链接]
14784|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
各位大侠:
I2C上拉电阻,串联电阻取值问题一直困扰着我,还请大侠指点!
(1).I2C规格书是这样描述Rp最小值:电源电压限制了电阻Rp 的最小值,因为输出级在VOLmax=0.4V 时指定的最小下拉电流是3mA。
         --------->如上描述意思就是Rp(min)=(Vdd-0.4V)/3mA,注意3mA为最小下拉电流。
                      若Rp<Rp(min),则下拉电流(Vdd-0.4V)/Rp>3mA(最小下拉电流),此时Rp应该是可以提供最小3mA下拉电流的,此时
                      的Rp比Rp(min)更小,这样岂不是矛盾了?
(2). 低电平要求的0.1VDD 噪声容限限制了Rs的最大值如何理解?RS如何取值最好?
(3). 每个输入输出连接的最大高电平输入电流的规定最大值是10μA ,由于高电平要求0.2VDD 的噪声容
       限这个输入电流限制了Rp 的最大值。
         ----------->如何理解最大高电平输入电流最大值同Rp最大值的关系?

相关帖子

沙发
computer00| | 2009-8-13 22:40 | 只看该作者
1、3mA应该是指驱动器下拉电流的下限值,不能小于这个电流,但是可以大于等于这个电流。如果一个设备的下拉驱动能力达到3mA,那么它也是符合I2C规范的,但是不能小于。所以在计算上拉电阻时,必须以这个最小的电流计算(如果用大于这个值来计算,驱动器可能提供不了)。因此上拉电阻的最小值就是Rp(min)=(Vdd-0.4V)/3mA。

2、Rs是指驱动源的低电平驱动能力吧?当然是越小越好了,大了不是驱动不了?所以可以计算出Rs的最大值,不得超过该值。

3、高电平时要输入10uA,那么最大电阻当然是(0.2*VDD)/10uA了。如果大于该电阻,那么就无法拉高了。其实,这个电阻不仅仅是静态输入电流的问题,还要考虑到上升时间,由于分布电容的原因,所以实际的电阻肯定会比这个小一些。

使用特权

评论回复
板凳
NicholasC|  楼主 | 2009-8-13 23:51 | 只看该作者
首先十分感谢computer00的回复,不过我还是有些不明白:1、3mA应该是指驱动器下拉电流的下限值,不能小于这个电流,但是可以大于等于这个电流。如果一个设备的下拉驱动能力达到3mA,那么它也是符合I2C规范的,但是不能小于。所以在计算上拉电阻时,必须以这个最小的电流计算(如果用大于这个值来计算,驱动器可能提供不了)。因此上拉电阻的最小值就是Rp(min)=(Vdd-0.4V)/3mA。------>若Rp小于Rp(min),则下拉电流(Vdd-0.4V)/Rp应该大于3mA,此时应该满足最小3mA驱动电流,这样的话Rp(min)=(Vdd-0.4V)/3mA岂不是Rp最小值??3、高电平时要输入10uA,那么最大电阻当然是(0.2*VDD)/10uA了。如果大于该电阻,那么就无法拉高了。其实,这个电阻不仅仅是静态输入电流的问题,还要考虑到上升时间,由于分布电容的原因,所以实际的电阻肯定会比这个小一些。--------->[img][img][/img][/img]

使用特权

评论回复
地板
computer00| | 2009-8-14 00:58 | 只看该作者
1、假设一款I2C芯片,它的下拉电流驱动能力为3mA(满足I2C协议的最小值指标),如果你给它输入了大于3mA的电流(例如10A),那这个芯片不是驱动不了?那结果不就是坏了?所以只能以最小的承受电流能力来算。

使用特权

评论回复
5
xwj| | 2009-8-14 01:16 | 只看该作者
3楼可能理解有误,
“最小下拉电流是3mA”是对外面的驱动器的要求(比如MCU控制这个IIC芯片,那MCU就是驱动这个芯片的驱动器),
那好,你要求“最小下拉电流是3mA”,我的MCU的驱动能力只要大于等于3mA就是满足要求的,比如我只能下拉输出3mA时,你也不能说我不行。对吧?

所以,对于你这个IIC芯片来说,你就要认为别人可能最大只会给你3mA的下拉驱动能力,而不能再要求更多
(但可以实际用的少一些),而电阻越小,电流越大(对驱动器来说负载越重),因此上拉电阻的最小值就是你IIC芯片参数总对驱动器的要求“最小下拉电流是3mA”了

使用特权

评论回复
6
xwj| | 2009-8-14 01:18 | 只看该作者
电阻越小,电流越大,对驱动器来说负载越重,
不知道LZ能不能相同呢?

使用特权

评论回复
7
computer00| | 2009-8-14 09:14 | 只看该作者
最小3mA是能力,而不是要求,也就是说,驱动能力必须要大于等于3mA,而不是实际工作要求必须大于3mA……不知道这样说楼主明白没...

使用特权

评论回复
8
thanksgiving| | 2009-8-14 09:26 | 只看该作者
让LZ绕晕了,看不懂。
电阻电流成反比啊,最小电流应该对应是的最大电阻吧,怎么会是最小电阻呢?

使用特权

评论回复
9
McuPlayer| | 2009-8-14 09:34 | 只看该作者
举个例子,自己结合xwj和00的解释去理解下:
I2C用10K的上拉电阻,5V的电源,电流也不过只有0.5mA,I2C可以正常工作。

使用特权

评论回复
10
NicholasC|  楼主 | 2009-8-14 20:01 | 只看该作者
谢谢大家的回复!
1. To computer00:您的意思是I2C芯片工作时候下拉电流可以小于3mA,但是不能大于3mA吗?

                         若是实际工作时下拉电流小于或等于3mA则,Rp(min)就可以解释了。。。。

2. To xwj:您说的也很有道理,电阻越小,功耗越大,您的解释是否也证明了实际工作时
            下拉电流小于或等于3mA?

使用特权

评论回复
11
vwwj| | 2009-8-14 20:23 | 只看该作者
如图所示,3.3V上拉要大于1K,5V上拉大于2K,

IIC.PNG (94.42 KB )

IIC.PNG

使用特权

评论回复
12
vwwj| | 2009-8-14 20:43 | 只看该作者
本帖最后由 vwwj 于 2009-8-14 21:04 编辑

如图所示,举例来说,一个24CXX系列EEPROM电容是8P左右
如果IIC总线仅连接一个3.3VEEPROM器件
则上拉电阻在1K到20K范围内,
如果取10K上拉,则串联电阻小于1000欧

IIC电阻.PNG (101.7 KB )

IIC电阻.PNG

使用特权

评论回复
13
vwwj| | 2009-8-14 20:51 | 只看该作者
另外友情附赠IIC总线EEPROM,例如24CXX系列的正确复位方法

IIC复位.PNG (60.26 KB )

IIC复位.PNG

使用特权

评论回复
14
computer00| | 2009-8-15 01:34 | 只看该作者
这么说吧,只要是符合I2C规范的芯片,只要你的上拉电阻大到一定程度,让下拉电流小于3mA,那么一定是可以正常输出低电平的,因为规范规定了下拉电流的最小驱动能力为3mA,小于此值,是肯定可以驱动的。那么如果大于3mA,是不是就一定不能工作了呢?不一定,因为规范规定的最小驱动电流要达到3mA,那么有些驱动器可能会提供超过3mA的驱动电流,这样的话,下拉电流大于3mA也是可以正常工作的,只要不超过芯片的低电平驱动电流即可。

为什么它要叫最小值?因为驱动能力不得低于此值,因此叫最小值。注意是驱动能力,是一种能力,这种能力要不小于该值,而不是说实际电流不能小于该值。就好比招聘,最低学位(相当于最小电流)要求是本科,但是并不意味着让他干低于本科文凭的事就不行,因此实际情况是可以低于要求(相当于实际工作电流小于驱动电流)的。相反,我们不能指望本科文凭以上的人都去干博士的事,这是不安全的,当然也许有少部分人干得了(相当于上拉电阻不能太小,太小的话,大于最小值,有些芯片就驱动不了了)。

使用特权

评论回复
15
xwj| | 2009-8-15 01:44 | 只看该作者
呵呵,LZ是自己把自己绕晕了
其实很简单,分清楚能力、要求是对谁而言的就行了

这让俺又想起来那个二年级的数学题:

    一天有个年轻人来到王老板的店里买了一件礼物 这件礼物成本是18元,标价是21元。 结果是这个年轻人掏出100元要买这件礼物。
       王老板当时没有零钱,用那100元向街坊换了100元的零钱,找给年轻人79元。 但是街坊後来发现那100元是**,王老板无奈还了街坊100元。
    现在问题是:王老板在这次交易中到底损失了多少钱 ?

使用特权

评论回复
16
pk.kong| | 2009-8-15 09:51 | 只看该作者
圈圈的基础很扎实啊。

顺便提提,iic如果驱动的距离比较远,器件比较多,所用的上拉要适当减少以提高驱动能力。当然这样也增加功耗了。

使用特权

评论回复
17
coeus| | 2010-7-23 09:25 | 只看该作者
对的,iic如果驱动的距离比较远,器件比较多,所用的上拉要适当减少以提高驱动能力。当然这样也增加功耗了。

使用特权

评论回复
18
jianxiawz| | 2012-3-29 20:23 | 只看该作者
各位好:
    我用单片机的I2C接口直接与一款高压芯片进行通信。其中I2C上串接33欧电阻。但是出现部分33欧电阻烧坏。这是什么原因?谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

22

帖子

0

粉丝