I2C总线上拉电阻的计算选取

I2C总线上拉电阻的选取

 

 

I2C总线为漏极开路,输出“0”时为低电平,输出“1”时为高阻态,在应用的时候需要外接上拉电阻RP。另外,RS是个可选的电阻,加上该电阻可以有效得抑制总线上的高电平毛刺,大大减小过冲。

图1:I2C总线结构

 

针对设计中应用最多的快速模式I2C总线(最大速率400KHz),查阅I2C总线协议,获取如下数据:

表1:快速模式I2C(400KHz)时序参数

由于设计中多数器件为3.3V供电,在这里以电源电压3.3V为例,说明上拉电阻RP和管脚电阻RS的取值方法。

(1)根据“3mA下拉电流时低电平电压(VCC>2V)VOL1<0.4V”,可得下式:

              (式1)

其中,

 

(2)“SDA和SCL信号上升时间tR<300ns”,tR的值与总线负载电容上拉电阻RP有直接的关联。其模型为一阶RC网络,如下图所示:

图2:I2C总线的等效RC网络

该模型的阶跃响应的时域函数为:

,其中            (式2)

在这里为便于设计上的应用,同时考虑到VOL<0.3VCC,VOH>0.7VCC,取为0.2VCC到0.8VCC的上升时间,即:

tR=1.4RPCb<300ns                            (式3)

其中,总线负载电容包括PCB走线寄生电容和器件管脚寄生电容:在线路阻抗为50ohm的以FR4为材质的PCB板上,可取走线电容为3pF/inch;器件管脚电容不大于10pF,具体应用时请参看器件数据手册。

 

(3)管脚电阻RS的取值与RP有关。要求在输出为低电平的时候,满足噪声容限0.1VCC的要求:

                           (式4)

(式4)化简得:

                                 (式5)

 

综合公式(1,3,5),即可得出上拉电阻RP的取值范围和管脚电阻RS的最大值。

举例说明:如图1所示,有3个I2C器件,考虑到多数I2C器件的管脚电容在5pF到8pF之间,这里为计算简便直接取8pF。PCB走线总长4inch(1inch=1000mil=25.4mm)。供电电源VCC=3.3V。

则总线负载电容为

由(式1)得:RP>0.97K

由(式3)得:RP<5.95K

由(式5)得:RS<0.66K

上拉电阻RP的取值与I2C总线中所挂载的器件的个数以及走线的长度有关。为了减小功耗,可在RP的取值范围之内选取阻值相对较大的电阻。管脚电阻RS的取值需要考虑器件输出低电平时的冗余,在满足防过冲的前提下选取阻值小的电阻,一般可取30ohm到200ohm。由于RP >>RS,因此不必考虑RS对上升沿300ns时限的影响。

 

某芯片的I2C接口通过1K电阻上拉导致电平无法拉低的情况,而换其他品牌后却能正常工作。对此,有如下看法。

图3:I2C器件输出阻抗示意图

 

器件都有输出阻抗,尽管其值非常小。当上拉电阻RP过于小,会造成I2C总线输出低电平的时候,流过RP后进入I2C管脚的灌电流过大,轻则抬高了总线的电压,重则I2C器件失效。前面已经求得在3.3V的供电下,I2C的上拉电阻RP不可小于0.97K,而1K电阻上拉时,刚好处于临界值,因此产生了某一品牌的芯片在1K的上拉电阻下无法工作,而换用其他品牌的芯片却能正常工作的情况。

 

另,当总线上的负载电容过大,根据计算得出的上拉电阻可取的最大值已不能满足“3mA下拉电流时低电平电压(VCC>2V)VOL1<0.4V”时,可采用类似MAX3373的器件:当IC检测到某个I/O引脚的电压升高时,将在短时间内打开内部强上拉电路,快速对总线寄生电容充电。经过很短的时间,加速电路关闭,仅由内部上拉电阻保持逻辑高电平。在这里不再详述。

 

 

附:PCB总线寄生电容取值

在PCB走线特性阻抗为50ohm的前提下,单位走线的寄生电容可由下式求的:

1、  FR-4为基板的PCB,传输延迟为140ps/inch到180ps/inch,这里折中取160,即

/inch                               (式6)

2、  PCB走线特性阻抗50ohm,即

其中ZO=走线特性阻抗;,W=走线宽度,oz=电镀铜的厚度。当走线上通过高频信号的时候,wL>>R,可以忽略R的影响,上式化简如下:

                                 (式7)

    联立(式6、7),可得L=8nH/inch,C=3.2pF。


你可能感兴趣的:(I2C总线上拉电阻的计算选取)