I2C(Inter-Intergrated Circuit)總線是微電子通信控制領(lǐng)域中常用的一種總線標準,具有接線少,控制方式簡單,通信速率高等優(yōu)點。
I2C總線的內(nèi)部結(jié)構(gòu)圖如圖1所示,I2C器件連接到總線輸出級必須是集電極開路或漏極開路形式才能實現(xiàn)線“與”的邏輯功能。輸出端未接上拉電阻的時候只能輸出低電平,所示保證I2C總線正常工作輸出端必須接上拉電阻。
在I2C電路中常見的上拉電阻是1K,1.5K,2.2K,3.3K,4.7K,5.1K,10K等等,但選哪一個阻值更合適?
圖1 I2C總線內(nèi)部結(jié)構(gòu)
I2C總線上拉電阻阻值如何選?I2C規(guī)范將低于VIL或低于0.3VDD的電壓定義為邏輯低電平,同樣將高于VIH或高于0.7VDD的電壓定義為邏輯高電平,如圖2所示。
圖2 指定為邏輯高電平和邏輯低電平的電壓電平
電源電壓限制了可允許總線拉低的最小上拉電阻值,過強的上拉會阻止器件充分拉低拉線的電平,導致無法確保邏輯低電平能被檢測到。在輸出級V_OLmax=0.4V 時指定I_OL為3mA,允許總線電壓拉低的最小上拉電阻公式:
V_DD與Rp的函數(shù)關(guān)系分別如圖3所示。
圖3 Rp的最小值是電壓的函數(shù)
由于端口的輸出的高電平是通過上拉電阻實現(xiàn),線上的電平從低變到高時,電源通過上拉電阻對線上負載電容CL充電,這需要一定的時間,即上升時間,上拉電阻的最大值由總線容限負載決定,總線負載圖如圖4所示。
圖4 總線負載結(jié)構(gòu)圖
總線電容主要由引腳、連接、PCB走線和導線等因素引起,總線電容與上拉電阻R具有一個RC時間常數(shù),隨著I2C通信速率的增加,該常數(shù)變得越發(fā)重要。通過電阻對電容進行充電的一般公式:
重新排列,
之后我們可計算電壓上升至VIL的時間T1、上升至VHL的時間T2以及精確計算兩個電平之間的時間TR,如圖5所示。由于VIL與VHL都是有V_DD產(chǎn)生,因此該公式與電源電壓無關(guān),V_DD項已抵消。
圖5 總線電平上升時間
求解,
在I2C標準模式下,100Kbps總線的負載最大容限小于等于400pF;快速模式,400Kbps總線的負載最大容限小于等于200pF,快速模式下I2C總線上升時間更快,總線上拉電阻要比標準模式小,設(shè)計時以快速模式50Pf~200pF為參考,由上面(6)式得最大Rp值與總線電容的關(guān)系如圖6所示。
圖6 符合快速模式I2C總線TRmax要求的Rp最大值是總線電容的函數(shù)
由上面的計算可得出上拉電阻RP可以取的范圍是1.53K~7K @VDD = 5V,一般取5.1K ,綜合到3.3V VDD低功耗設(shè)計中,通常選用4.7K犧牲速度換取電池使用時間,此阻值也是常規(guī)阻值。
關(guān)于I2C的上拉電阻,最好的方式是看官方給出的參考設(shè)計,如果走線長了或總線上有多從機,就相應(yīng)把電阻改小一些,如若參考設(shè)計沒有就在計算范圍內(nèi)選用一個常規(guī)阻值。實際的時候我們沒有去測量總線電容的問題,只能在選件、走線的時候給予些許關(guān)注。
原文標題:I2C總線上拉電阻阻值如何選擇?
文章出處:【微信號:murata-eetrend,微信公眾號:murata-eetrend】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
I2C總線上拉電阻阻值如何確定?

I2C總線應(yīng)用中的幾個問題

tpa2051d3在I2C上拉電阻的選擇

I2C總線一定要接上拉電阻?上拉電阻阻值怎么確定?
I2C總線的常見通信方式

在I2C總線上需要接上拉電阻?您對I2C上拉電阻足夠了解嗎
I2C的開漏輸出和上拉電阻

I2C總線為什么要接上拉電阻

評論