麦歌恩代理

当前位置: 首页 - 服务 - 技术支持 - I2C信号为什么要加上拉电阻
联系我们 / Contact
深圳市威立胜电子有限公司
咨询热线:13510581182

地址:深圳市罗湖区文锦广场文盛中心1401
邮箱:wawa209@126.com

I2C信号为什么要加上拉电阻 数据手册

I2C是一个两线串行通信总线,包含一个SCL信号和SDA信号,SCL是时钟信号,从主设备发出,SDA是数据信号,是一个双向的,设备发送数据和接收数据都是通过SDA信号。

在设计I2C信号电路的时候我们会在SCL和SDA上加一个上拉电阻

今天就来分享下,为什么要在I2C信号线上加上拉电阻。


主要原因就是I2C芯片的SDA和SCL的引脚是开漏输出,就是只有一个NMOS管,不像推挽输出有两个MOS管。

当芯片SDA和SCL的引脚输出MOS管导通,I2C信号线电平为低电平

当芯片SDA和SCL的引脚输出MOS管关闭,如果没有上拉电阻,I2C信号线是处于一个高阻状态,电平是未知的,开漏输出是没有高电平的输出能力的。

所以加上上拉电阻后,当芯片SDA和SCL的引脚输出MOS管关闭,I2C信号线上的电平就是一个确切的高电平。

当多个I2C设备通过I2C总线接在一起,这就要求I2C设备间可以实现线与,而芯片的I2C引脚是开漏输出的话就能很好的实现这个线与。只要有一个I2C设备的引脚电平是低电平,那么相应的SCL或SDA总线也会成为一个低电平。 如果I2C设备引脚为推挽输出,多个I2C设备接在一条总线上很容易烧坏芯片。

I2C上拉电阻的取值


I2C信号的上拉电阻阻值不能太大,因为IIC芯片SCL和SDA引脚都存在寄生电容,同时SDA和SCL信号的走线也会有寄生电容,整个IIC总线上相当于接了一个负载电容Cl

上拉电阻过大,I2C总线高电平的驱动能力差,总线电平从0到1变化时,等效为这个RC的充电电路,上拉电阻越大,波形上升沿会变缓,一定程度会影响I2C的时序,可能会出现误码。所以这个上拉电阻不能太大。

I2C SDA和SCL信号的上升时间和总线电容在不同的模式下有不同的要求,大家可以看下这个表

I2C总线信号上升时间可以根据公式Tr=0.8473*R*Cl   Cl就是I2C总线的等效负载电容


I2C信号上拉电阻也不能太小,如果太小了,当I2C引脚输出低电平时,灌进芯片I2C引脚的电流会变大,可能会使I2C信号线的低电平变大,同时IO口电流过大还可能烧坏芯片。

我们一般要求,I2C引脚低电平时,流过芯片I2C引脚的电流小于3mA,所以如果是3.3V上拉的话,这个电阻就要R>(3.3-VoL)l3KΩ=0.96KΩ ,其中VoL是I2C引脚为低电平时的最大电压,一般是0.4V。再加上前面的这个公式我们就可以确定这个上拉电阻的取值范围

电源电压决定上拉电阻的最小值,总线负载电容决定上拉电阻的最大值。


I2C信号上拉电阻取值常用的值就是4.7K,一般小于10K,大于1K,如果I2C总线比较长,从设备比较多,可以适当降低电阻。


如果I2C总线接了很多I2C设备,是不是每个I2C设备都要加上拉电阻?

答案是否定的,我们只要在SDA和SCL总线上合适的位置各加一个上拉电阻即可,如果每个设备都加上拉,相当于这些电阻是并联在一起了,减小了电阻值。至于上拉电阻的位置一般没有特别的要求。一般加在I2C的末端。


附注:

以上所有文字及图片均来源于网络,如有侵权,请联系删除

相关文章
客户服务中心
0755-83986875
地址:深圳市罗湖区文锦广场文盛中心1401
邮箱:wawa209@126.com
联系电话:13510581182(周经理)
                 0755-83986875(总机)
二维码
友情链接: MagnTek麦歌恩 电子产品世界 电子发烧友 极客网 电子应用设计 屹晶微电子 电子工程网
Copyright 2022 深圳市威立胜电子有限公司    备案号:粤ICP备2022137744号-1