I2C電平轉(zhuǎn)換電路調(diào)試測試記錄
分析:
兩個不同的管子,讀器件ID都正常,說明I2C通信已經(jīng)沒有什么問題,但是SDA波形差異較大,ROHM的已經(jīng)嚴重變形,存在不確定性,實際測試中也有發(fā)現(xiàn)地磁有時工作不正常。
分析第3張波形圖,地磁傳感器側(cè)的SDA是有接近0V輸出的,
根據(jù)I2C協(xié)議,正常工作的話,SDA的最后一位,也就是第9位的應答信號是有slave設備響應的,就是說slave側(cè)可以把SDA拉低,只是CPU那側(cè)不能將SDA拉低。猜測可能是CPU部分的I2C_SDA腳驅(qū)動電流限制,導致CPU側(cè)的電平拉不下來,更改slave側(cè)SDA的上拉電阻,從2.2K改成10k,波形正常(圖片省略);查看CPU規(guī)格書,默認I2C驅(qū)動能力1mA,至于SCK正常,確認是軟件在其它部分有所設置;
而ONSEMI管子正常,應該是Rds(on)比ROHM的小很多導致,這可以從它們的規(guī)格書中查到
更改措施:
1.軟件修改CPUI2C驅(qū)動電流,從1mA改為4mA;
2.修改slave側(cè)的上拉電阻,改動比較有限,因為上拉電阻可能會影響正常通信;
采取方案一進行試驗
2010-9-25
采取上面提到的方案一,跟蹤軟件修改驅(qū)動電流進行試驗
使用默認的1mA,ROHM的UM6K1NTN,SDA波形如下:
修改驅(qū)動電流為4mA后,SDA波形:
到此,可以看出I2C調(diào)試時,關于驅(qū)動電流,軟硬件上面都要仔細確認。
END
評論