I2C接口上拉电阻的选择
-
I2C接口上拉电阻的选择
1、I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉。
2、上拉电阻的范围很宽,但也需要跟据功耗、信号上升时间等具体确定。
和速度应该没关系。主要是I2C是oc,所以需要。和驱动的从机个数(虽然从机个数不是由电阻决定的)有一定关系
不能说和速度没关系, 从机数量多的话, 由于经常在CMOS 集成电路里面源和基底是相连的, 而漏和基底存在寄生电容, 所以源和漏之间是有寄生电容的, 过大的上拉电阻会引起延时,导致边缘的上升下降速度变慢
上拉电阻的取值何I2C总线的频率有关,工作在standard -mode时,其典型值为10K
在FAST mode时,为减少时钟上升时间,满足上升时间的要求,一般为1K
philips的IIC协议中pullup-res的典型值是5.1K@ VIO=5V(其实用5K一样,5.1K比较好买便宜),但手机系统一般VIO=2.8V,所以在参考设计中,通常此阻值用4.7K,虽然于驱动力上比协 议标准不如,但考虑到leakage current,用3.3K的漏电流比较大,综合考虑用4.7K,况且此阻值也是常规值
I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K
总之,不同平台的官方试验和我的取值相似,倾向与用4。7K @
2.8V VIO
Rp最大值由总线最大容限(Cbmax)决定,Rp最小值由Vio与上拉驱动电流(最大取3mA)决定;
于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)
Rpmax的取值:参考周公的I2C总线规范中文版P33图39与P35图44
标准模式,100Kbps总线的负载最大容限<=400pF;快速模式,400Kbps总线的负载最大容限<=200pF,根据具体使用情 况、目前的器件制造工艺、PCB的走线距离等因素以及标准的向下兼容性,设计中以快速模式为基础,即总线负载电容<200pF,也就是传输速度可以
上到400Kbps是不成问题的。于是Rpmax可以取的范围是1.8K~7K @ Vio=5V对应50pF~200pF
根据Rpmin与Rpmax的限制范围,一般取5.1K @ Vio=5V , 负载容限的环境要求也容易达到。在2.8V系统中,console设计选3.3K,portable/handset等低供耗的设计选4.7K牺牲速度换 取电池使用时间。有些IDH竟然用到10K或以上,将大大影响其抗噪性能,对于PCB的制造以及板层堆叠的结构的干扰将加大数据的误判
I2C上拉电阻确定有一个计算公式:
Rmin={Vdd(min)-o.4V}/3mA
Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz
C是Bus capacitance
关于I2c的上拉电阻,个人最好的方式就是看参考设计,如果走线长了或好总线上有好几个芯片,就把电阻改小一些。如果参考设计没有就在1.5K~5k左右里面选一个就是了。但实际的时候我们没有去测量总线的电容问题,只能在选件/走线时候给与些许的关注。