I2C 上拉电阻问题
2010-07-28 13:48:35|分类: 工作资料 |标签: |字号大中小订阅
I2C 的上拉电阻可以是 1.5K,2.2K,4.7K, 电阻的大小对时序有一定
影响,对信号的上升时间和下降时间也有影响,一般接 1.5K 或 2.2K
I2C 上拉电阻确定有一个计算公式:
Rmin={Vdd(min)-o.4V}/3mA
Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz
C 是 Bus capacitance
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 牺牲速度换取电池使用时间
总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值
补充:在 I2c 总线可以串连 300 欧姆电阻 RS 可以用于防止 SDA 和 SCL 线的高电压毛刺
: I2c 从设备的数量受总线电容,<=400pF 的限制
上拉电阻阻值的确定
由于 I2C 接口采用 Open Drain 机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻 RP 将信号线拉至高电平。
因此 I2C 总线上的上拉电阻是必须的!