I2C匯流排上拉電阻的計算選取

2021-08-21 01:22:51 字數 2010 閱讀 2126

i2c匯流排上拉電阻的選取

i2c匯流排為漏極開路,輸出「0」時為低電平,輸出「1」時為高阻態,在應用的時候需要外接上拉電阻rp。另外,rs是個可選的電阻,加上該電阻可以有效得抑制匯流排上的高電平毛刺,大大減小過衝。

圖1:i2c匯流排結構

針對設計中應用最多的快速模式i2c匯流排(最大速率400khz),查閱i2c匯流排協議,獲取如下資料:

表1:快速模式i2c(400khz)時序引數

由於設計中多數器件為3.3v供電,在這裡以電源電壓3.3v為例,說明上拉電阻rp和管腳電阻rs的取值方法。

(1)根據「3ma下拉電流時低電平電壓(vcc>2v)vol1

<0.4v」,可得下式:

(式1)

其中,(2)「sda和scl訊號上公升時間tr

<300ns」,tr的值與匯流排負載電容上拉電阻rp有直接的關聯。其模型為一階rc網路,如下圖所示:

圖2:i2c匯流排的等效rc網路

該模型的階躍響應的時域函式為:

,其中            (式2)

在這裡為便於設計上的應用,同時考慮到vol

<0.3vcc,voh>0.7vcc,取為0.2vcc到0.8vcc的上公升時間,即:

tr=1.4rpcb

<300ns                            (式3)

(3)管腳電阻rs的取值與rp有關。要求在輸出為低電平的時候,滿足雜訊容限0.1vcc的要求:

(式4)

(式4)化簡得:

(式5)

綜合公式(1,3,5),即可得出上拉電阻rp的取值範圍和管腳電阻rs的最大值。

舉例說明:如圖1所示,有3個i2c器件,考慮到多數i2c器件的管腳電容在5pf到8pf之間,這裡為計算簡便直接取8pf。pcb走線總長4inch(1inch=1000mil=25.4mm)。供電電源vcc=3.3v。

則匯流排負載電容為

由(式1)得:rp>0.97k

由(式3)得:rp

<5.95k

由(式5)得:rs

<0.66k

上拉電阻rp的取值與i2c匯流排中所掛載的器件的個數以及走線的長度有關。為了減小功耗,可在rp的取值範圍之內選取阻值相對較大的電阻。管腳電阻rs的取值需要考慮器件輸出低電平時的冗餘,在滿足防過衝的前提下選取阻值小的電阻,一般可取30ohm到200ohm。由於rp >>rs,因此不必考慮rs對上公升沿300ns時限的影響。

某晶元的i2c介面通過1k電阻上拉導致電平無法拉低的情況,而換其他品牌後卻能正常工作。對此,有如下看法。

圖3:i2c器件輸出阻抗示意圖

器件都有輸出阻抗,儘管其值非常小。當上拉電阻rp過於小,會造成i2c匯流排輸出低電平的時候,流過rp後進入i2c管腳的灌電流過大,輕則抬高了匯流排的電壓,重則i2c器件失效。前面已經求得在3.3v的供電下,i2c的上拉電阻rp不可小於0.97k,而1k電阻上拉時,剛好處於臨界值,因此產生了某一品牌的晶元在1k的上拉電阻下無法工作,而換用其他品牌的晶元卻能正常工作的情況。

另,當匯流排上的負載電容過大,根據計算得出的上拉電阻可取的最大值已不能滿足「3ma下拉電流時低電平電壓(vcc>2v)vol1

<0.4v」時,可採用類似max3373的器件:當ic檢測到某個i/o引腳的電壓公升高時,將在短時間內開啟內部強上拉電路,快速對匯流排寄生電容充電。經過很短的時間,加速電路關閉,僅由內部上拉電阻保持邏輯高電平。在這裡不再詳述。

附:pcb匯流排寄生電容取值

在pcb走線特性阻抗為50ohm的前提下,單位走線的寄生電容可由下式求的:

1、  fr-4為基板的pcb,傳輸延遲為140ps/inch到180ps/inch,這裡折中取160,即

/inch                               (式6)

2、  pcb走線特性阻抗50ohm,即

其中zo=走線特性阻抗;,w=走線寬度,oz=電鍍銅的厚度。當走線上通過高頻訊號的時候,wl>>r,可以忽略r的影響,上式化簡如下:

(式7)

聯立(式6、7),可得l=8nh/inch,c=3.2pf。

I2C上拉電阻的取值

對於i2c上拉電阻,在電路圖中經常看到的取值是4.7k 但是一直不知道這個依據,雖然現在依然不是很明白,現在只是先記錄下當前的所知道的。從i2c規範中得知,上拉電阻的取值跟匯流排電容 上公升沿時間是有一定關係的,rp的最小 最大取值的公式都不一樣。並且規範中也只給出了標準 快速 快速 三種模式,高速...

I2C上拉電阻取值問題

如果上拉電阻值過小,vcc灌入埠的電流 ic 將較大,這樣會導致mos管v2 三極體 不完全導通 ib i2c的上拉電阻可以是1.5k,2.2k,4.7k,電阻的大小對時序有一定影響,對訊號的上公升時間和下降時間也有影響,一般接1.5k或2.2k 實驗 接入200k上拉電阻,結果觀察到訊號上公升時間...

i2c匯流排時序

一心想踏入linux device driver的世界,想著i2c匯流排相對於usb等其他匯流排較為簡單,就以i2c作為切入點,希望可以逐步理解ldd的設計思想,並能理解其裝置模型的概念。在此對近期於i2c匯流排及驅動原始碼的理解做備忘,以免徒勞。平台友善之臂s70 tiny6410 cpusams...