由I2C SCL Tf 下降太快,再思考RC充放电电路

        背景:早期开发的一款产品,在做单元测试时出现了I2C Tf下降太快的问题,该问题查看了协议在400KHz时才有要求,但大部分Senor SPEC对应的I2C部分并没有标注tf的Min值,因此直接过去了,但这款Senor和协议要求完全一致,有Min值要求。

上拉2.2K测试的Tf是4.5nS,协议需求20+0.1Cb>20nS.

        如下协议要求

 针对以上问题,构建内部RC通路进行粗略的分析。

分析如下:

I2C上升时间完全是RC电路充电,对应MOS开关关闭

因此充电时间为一阶RC充电时间,

 

 大概思路如下:之前的草稿

以10%-90%计算上升时间,约为2RC

1.通过上升时间RC 计算出电容,

2.通过低电平时电压计算出MOS的导通阻抗,可通过改变电流能力修改

通过计算的R和C验证下降时间

3.通过已知RC,和需要的下降时间计算增加的电容

验证上升时间,上升FAIL,以上升计算C,即 C=min(tr,tf求的的电容)

实际测试验证

单个I2C时取20pF计算,2.2K上拉时的上升时间为(mathcad计算)

88nS,实际测试值为160ns,即实际的电容只有40pF左右,RC估算时为80pF.

实际测试如下:

tR.SCL(MIN,MAX): SCL上升时间的最小最大值,最小值

 

下降沿时间为MOS导通时间+电容的放电时间,因MOS在IC内部,无法修改时间相关的参数,只能修改电容,

1.MOS导通时间

米勒效应

2.电容的放电时间,

以上拉2.2K时低电平的电压值估算MOS导通时的阻抗

VIL.SCL, VIH.SCL: SCL输入电压,通道1

VIL.SDA, VIH.SDA: SDA输入电压,通道3

因SCL完全由主机发起,从上可知低电平为40mV,通过分压可知导通内阻约为

 

约为50ohm,

反过来计算放电时间2rc

 4nS,实际的下降时间为4.5nS

tF.SCL(MIN,MAX): SCL下降时间的最小最大值,最小值

 

 

因此mos打开的时间大概为0.5nS

如想修改下降时间为20nS,则需增加

C=

 

=0.2nF=200pF

按理论实际应为20.5nS

此时的上升时间约为

=880nS

协议规定最大tr=300nS,因此只能使用上升时间计算最大电容为

=68pF

完整计算过程如下:

 

使用82pf电容验证

SCL tR 444.3-486ns fail

SCL tF 8-9ns fail

SDA tr 404.8-421nS fail

tf 4-11ns fai

从上可以看出增加82pF电容后,Tr fail了,但Tf还是太快,没有满足>20nS的要求,因此增加电容的方案无法满足要求。好在Tf太快并不影响I2C正常通信功能,从通信的角度硬件希望Tf和Tr就是越快越好。

EMC 希望Tr Tf越长越好,因此此要求可能是考虑EMC的需求,整机EMC测试也无相关问题,产品并不受影响,从如上一个小问题,再次复习了下RC电路。

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你好!当I2C的时钟线(SCL)被拉低时,可能会有几个可能的原因。以下是一些常见的情况和解决方法: 1. 设备故障:首先,请确保连接到I2C总线的所有设备都正常工作。检查设备的电源供应和连接是否正确。如果一个设备故障,它可能会导致SCL线被拉低。尝试分别断开每个设备,以确定哪个设备可能导致问题,并进行修复或更换。 2. 错误的电平转换:如果使用了电平转换器来连接不同电平的设备,请确保转换器工作正常并正确连接。如果电平转换器配置不正确,可能会导致SCL线被拉低。 3. 电缆或连接问题:检查I2C线路的电缆和连接是否正常。松动的连接、损坏的电缆或接触不良都可能导致SCL线被拉低。尝试重新插拔连接并检查电缆是否完好。 4. 冲突或干扰:如果在同一总线上存在多个I2C设备,并且其中一个设备在发送数据时引起冲突或干扰,可能会导致SCL线被拉低。确保每个设备的I2C地址唯一,并检查是否有任何干扰源。 5. 软件问题:检查I2C主机控制器的软件代码是否正确配置和操作。确保正确设置I2C时钟速率和其他相关参数。如果软件存在错误或不正确配置,可能会导致SCL线被拉低。 这些是一些常见的原因和解决方法,希望对你有所帮助。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值