畫了個Sheild板子掛滿了各種IIC Sensor器件和傳感器模組,結果發現調起來並不容易。。。
上拉恢復波形不好,其實跟上拉電阻關係不大,
下面這個波形,我即使把上拉電阻改小到1k到330R都很難糾正好,最後發現原因是總線上有其他IIC器件的Vcc供電沒有給上。導致CLK DAT引腳的上拉充電恢復電流,被器件體內的保護二極管泄放到了他們各自Vcc上,相當於各自變相通過IIC兩個總線給自己bootstrap供電了。所以導致總線波形上升恢復斜率不足,難看。容易導致通信失敗。
把總線所有器件的Vcc都供上,就不存在這個問題了。
所以說,正常情況下的IIC總線,總的等效上拉電阻只需要1k 到 10k 就可以了,CLK越高速,就用越小的電阻。具體以波形爲準。
另外,上拉電阻過小,過於強上拉,也會導致下拉電壓低電平不能到達底部0.2v,比如某些CMOS輸出的MCU就拉不好,只能下拉到個半截,波形也很難看。所以這個“拉底電平”跟“上升斜率坡”是一對矛盾關係 ,需要去平衡微調。