这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STM32 I2C上拉电阻的选择问题

共13条 1/2 1 2 跳转至

STM32 I2C上拉电阻的选择问题

高工
2013-08-21 15:14:10     打赏

    从开源的设计中我们可以看到,I2C的上拉电阻可以是1.5K,2.2K,4.7K,然而电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K 或2.2K。

上拉电阻阻值的确定

由于I2C 接口采用Open Drain 机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻RP 将信号线拉至高电平。因此I2C 总线上的上拉电阻是必须的!

RP 不宜过小,一般不低于1KΩ。

    一般IO 端口的驱动能力在2mA~4mA 量级。如果RP 阻值过小,VDD 灌入端口的电流将较大,这导致端口输出的低电平值增大(I2C 协议规定,端口输出低电平的最高允许值为0.4V);如果灌入端口的电流过大,还可能损坏端口。故通常上拉电阻应选取不低于1KΩ的电阻(当VDD=3V 时,灌入电流不超过3mA)。

RP不宜过大,一般不高于10KΩ

    由于端口输出高电平是通过RP 实现的,线上电平从低到高变化时,电源通过RP 对线上负载电容CL 充电,这需要一定的时间,即上升时间。端口信号的上升时间可近似用充电时间常数RPCL 乘积表示。信号线负载电容(对地)由多方面组成,包括器件引脚、PCB 信号线、连接器等。如果信号线上挂有多个器件,负载电容也会增大。比如总线规定,对于的400kbps 速率应用,信号上升时间应小于300ns;假设线上CL 为20PF,可计算出对应的RP 值为15KΩ。如果RC 充电时间常数过大,将使得信号上升沿变化缓慢,达不到数据传输的要求。因此一般应用中选取的都是几KΩ量级的上拉电阻,比如都选取4K7 的电阻。


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 线的高电压毛刺。




关键词: STM32     I2C上拉电阻    

专家
2013-08-21 17:03:53     打赏
2楼

这个学习了。


助工
2013-08-22 13:21:23     打赏
3楼
分析的不错,学习了,谢谢楼主

院士
2013-08-22 13:51:19     打赏
4楼

印象中这个速度在参与设计里面有建议参考值。

 


高工
2013-08-22 14:19:52     打赏
5楼
平时都克隆别人的,哪关注过啊,嘿嘿嘿

高工
2013-08-22 14:23:02     打赏
6楼
多多交流,共同进步啊

高工
2013-08-24 22:07:18     打赏
7楼
一般设计4.7k不会有问题

高工
2013-08-26 10:43:13     打赏
8楼

长见识了,先收藏着,以后出问题了再看看,呵呵


高工
2013-08-26 12:39:23     打赏
9楼

一般应用,4.7K赞同。

特殊情况特殊对待。


高工
2013-08-26 12:59:31     打赏
10楼
因为i2c速度比较低,最高400k?,问题不大,几k一般都可以

共13条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]