在I2C、SPI等總線的設(shè)計中,由于平臺SOC總線接口數(shù)量的限制,一組總線接口通常會連接多個外設(shè)器件。
但有些時候,由于某些場景下,總線上掛載的器件會處于不同的狀態(tài),此時可能會因?yàn)槟承┢骷?nèi)部架構(gòu)問題,導(dǎo)致總線異常。
以之前碰到的一個問題為例,同一組I2C總線接口上掛載SmartPA、背光IC、顯示驅(qū)動IC三顆器件。
由于早期BSP bringup的時候,分開對音頻和顯示模塊進(jìn)行調(diào)試,此時兩個模塊均能正常打通,功能正常。
但是硬件整合模塊測試的時候發(fā)現(xiàn),系統(tǒng)無法正常開機(jī),log上報一直卡在Audio初始化。只要拔掉顯示屏,Audio就能初始化成功,系統(tǒng)就能正常跑下去。
通過測量I2C信號波形發(fā)現(xiàn),此時總線被一直被拉低到0.3V。因?yàn)锳udio的初始化是在顯示屏之前的,且顯示屏的VDDIO電源是獨(dú)立的,因此猜測是顯示屏內(nèi)部與上拉電阻一起產(chǎn)生了回路,導(dǎo)致總線被拉死。
最終和供應(yīng)商確認(rèn)到,顯示驅(qū)動IC的所有IO接口都留有單向TVS管,如下圖所示。
當(dāng)VDDIO還未上電時,紅色箭頭的回路得以產(chǎn)生,最終總線被TVS的正向?qū)妷核Q位。
初步解決對策,就是先對顯示模塊做初始化,即讓VDDIO先上電,此時總線恢復(fù)正常。但由于存在滅屏播放音樂的場景,所以Audio和顯示模塊的I2C必須加以隔離。
隔離的方案一種是選擇集成的level-shift,這種方案設(shè)計簡單、布局面積小,只需要注意VCCA和VCCB的電壓關(guān)系就行。(截圖未展示上拉電阻)
如果成本是關(guān)鍵,布局面積樂觀的話,可以采用分立器件去搭建,具體分析步驟這里不再贅述,需要注意的點(diǎn)是肖特基二極管的選擇。由于MOS管內(nèi)部的體二極管正向?qū)▔航低ǔ]^大,因此需要外部并聯(lián)一顆導(dǎo)通壓降更低的二極管,保證I2C總線上的低電平盡可能逼近0V。
以上是對于總線并聯(lián)設(shè)計過程中碰到的一點(diǎn)小問題,希望對大家后續(xù)的設(shè)計和調(diào)試起到一點(diǎn)幫助。
以上就是本期分享的所有內(nèi)容啦,歡迎大家持續(xù)關(guān)注,更多干貨正在快馬加鞭地趕來。