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...