I2C电平转换电路调试测试记录
tziang@hotmail.com
2010-9-21
摘要:硬件电路的设计中,经常会碰到CPU接口电平和外围器件接口电平不匹配的情况,此时就需要用到电平转换电路,本次测试记录为I2C电平转换电路
电路参考来自于飞利浦的一篇设计指导文档,关键图片如下
本次调试测试的硬件系统信息如下:
CPU部分I2C接口1.8V,地磁传感器I2C接口为2.9V
电路中的MOS管使用
ONSEMI的双N-MOS管NTJD4401NT1G和
ROHM 的双N-MOS管UM6K1NTN
同一块电路板测试波形见下图
使用ONSEMI的NTJD4401NT1G,SDA信号波形(地磁侧和CPU侧)
SCK信号(CPU侧和地磁侧)
使用ROHM 的UM6K1NTN,SDA信号(地磁侧和CPU侧)
使用ROHM 的UM6K1NTN,SCK信号(地磁侧和CPU侧)
分析:
两个不同的管子,读器件ID都正常,说明I2C通信已经没有什么问题,但是SDA波形差异较大,ROHM的已经严重变形,存在不确定性,实际测试中也有发现地磁有时工作不正常。
分析第3张波形图,地磁传感器侧的SDA是有接近0V输出的,
根据I2C协议,正常工作的话,SDA的最后一位,也就是第9位的应答信号是有slave设备响应的,就是说slave侧可以把SDA拉低,只是CPU那侧不能将SDA拉低。猜测可能是CPU部分的I2C_SDA脚驱动电流限制,导致CPU侧的电平拉不下来,更改slave侧SDA的上拉电阻,从2.2K改成10k,波形正常(图片省略);查看CPU规格书,默认I2C驱动能力1mA,至于SCK正常,确认是软件在其它部分有所设置;
而ONSEMI管子正常,应该是Rds(on)比ROHM的小很多导致,这可以从它们的规格书中查到
更改措施:
1. 软件修改CPU I2C驱动电流,从1mA改为4mA;
2. 修改slave侧的上拉电阻,改动比较有限,因为上拉电阻可能会影响正常通信;
采取方案一进行试验
2010-9-25
采取上面提到的方案一,跟踪软件修改驱动电流进行试验
使用默认的1mA,ROHM 的UM6K1NTN,SDA波形如下:
修改驱动电流为4mA后,SDA波形:
到此,可以看出I2C调试时,关于驱动电流,软硬件上面都要仔细确认。
END
用户1575434 2014-6-16 12:58
用户377235 2012-5-21 22:36
感觉不是导通电阻的问题,应该是结电容在作怪不过同样需要增大IO的驱动能力
用户377235 2012-3-19 21:06
详细
用户403664 2012-3-14 16:25
xfce_696769577 2012-3-14 11:19
用户403664 2012-3-12 14:10