漏極開(kāi)路上拉電阻取值為何不能很大或很小?
如果上拉電阻值過(guò)小,Vcc灌入端口的電流(Ic)將較大,這樣會(huì )導致MOS管V2(三極管)不完全導通(Ib*β<Ic),有飽和狀態(tài)變成放大狀態(tài),這樣端口輸出的低電平值增大(I2C協(xié)議規定,端口輸出低電平的最高允許值為0.4V)
如果上拉電阻過(guò)大,加上線(xiàn)上的總線(xiàn)電容,由于RC影響,會(huì )帶來(lái)上升時(shí)間的增大(下降延是芯片內的晶體管,是有源驅動(dòng),速度較快;上升延是無(wú)源的外接電阻,速度慢),而且上拉電阻過(guò)大,即引起輸出阻抗的增大,當輸出阻抗和負載的阻抗可以比擬的時(shí),則輸出的高電平會(huì )分壓而減少。
I2C的上拉電阻可以是1.5K,2.2K,4.7K, 電阻的大小對時(shí)序有一定影響,對信號的上升時(shí)間和下降時(shí)間也有影響,一般接1.5K或2.2K
(實(shí)驗:接入200K上拉電阻,結果觀(guān)察到信號上升時(shí)間增大,方波變成三角波)
I2C上拉電阻確定有一個(gè)計算公式:
Rmin={Vdd(min)-o.4V}/3mA
Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz
C是Bus capacitance
Rp最大值由總線(xiàn)最大容限(Cbmax)決定,Rp最小值由Vio與上拉驅動(dòng)電流(最大取3mA)決定;
于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)
Rpmax的取值:參考周公的I2C總線(xiàn)規范中文版P33圖39與P35圖44
標準模式,100Kbps總線(xiàn)的負載最大容限<=400pF;快速模式,400Kbps總線(xiàn)的負載最大容限<=200pF,根據具體使用情況、目前的器件制造工藝、PCB的走線(xiàn)距離等因素以及標準的向下兼容性,設計中以快速模式為基礎,即總線(xiàn)負載電容<200pF,也就是傳輸速度可以上到400Kbps是不成問(wèn)題的。于是Rpmax可以取的范圍是1.8K~7K @ Vio=5V對應50pF~200pF
根據Rpmin與Rpmax的限制范圍,一般取5.1K @ Vio=5V , 負載容限的環(huán)境要求也容易達到。在2.8V系統中,console設計選3.3K,portable/handset等低供耗的設計選4.7K犧牲速度換取電池使用時(shí)間
總的來(lái)說(shuō):電源電壓限制了上拉電阻的最小值 ; 負載電容(總線(xiàn)電容)限制了上拉電阻的最大值
補充:在I2c總線(xiàn)可以串連300歐姆電阻RS可以用于防止SDA和SCL線(xiàn)的高電壓毛刺
: I2c從設備的數量受總線(xiàn)電容,<=400pF的限制
上拉電阻阻值的確定
由于I2C接口采用Open Drain機制,器件本身只能輸出低電平,無(wú)法主動(dòng)輸出高電平,只能通過(guò)外部上拉電阻RP將信號線(xiàn)拉至高電平。因此I2C總線(xiàn)上的上拉電阻是必須的!
RP不宜過(guò)小,一般不低于1KΩ
一般IO 端口的驅動(dòng)能力在2mA~4mA量級。如果RP阻值過(guò)小,VDD灌入端口的電流將較大,這樣會(huì )導致MOS管不完全導通,有飽和狀態(tài)變成放大狀態(tài),這樣端口輸出的低電平值增大(I2C協(xié)議規定,端口輸出低電平的最高允許值為0.4V);如果灌入端口的電流過(guò)大,還可能損壞端口。故通常上拉電阻應選取不低于1KΩ的電阻(當VDD=3V時(shí),灌入電流不超過(guò)3mA)。
RP不宜過(guò)大,一般不高于10KΩ
由于端口輸出高電平是通過(guò)RP實(shí)現的,線(xiàn)上電平從低到高變化時(shí),電源通過(guò)RP對線(xiàn)上負載電容CL充電,這需要一定的時(shí)間,即上升時(shí)間。端口信號的上升時(shí)間可近似用充電時(shí)間常數RPCL乘積表示。
信號線(xiàn)負載電容(對地)由多方面組成,包括器件引腳、PCB信號線(xiàn)、連接器等。如果信號線(xiàn)上掛有多個(gè)器件,負載電容也會(huì )增大。比如總線(xiàn)規定,對于的400kbps速率應用,信號上升時(shí)間應小于300ns;假設線(xiàn)上CL為20PF,可計算出對應的RP值為15KΩ。
如果RC充電時(shí)間常數過(guò)大,將使得信號上升沿變化緩慢,達不到數據傳輸的要求。
因此一般應用中選取的都是幾KΩ量級的上拉電阻,比如都選取4K7的電阻。
小阻值的RP電阻增大了端口Sink電流,故在可能的情況下,RP取值應稍大一點(diǎn),以減少耗電。另外,通產(chǎn)情況下,SDA,SCL兩條線(xiàn)上的上拉電阻取值是一致的,并上拉到同一電源上。
PCB布局布線(xiàn)與抗干擾設計
I2C信號線(xiàn)屬于低速控制線(xiàn),在手機PCB設計時(shí),按通常的控制IO對待即可,無(wú)需做特別的保護設計,一般不用擔心受到噪聲源干擾。
但在一些特定的情況下,比如折疊、滑蓋機型中,I2C的兩根信號線(xiàn)需要通過(guò)轉軸或滑軌處的FPC,此時(shí)由于信號路徑比較長(cháng),距離天線(xiàn)比較近,而且Open drain的輸出級對地阻抗大,對干擾比較敏感,因此比較容易受到RF信號源的干擾。在這種情況下,就應適當注意對I2C信號線(xiàn)的保護。比如I2C兩條信號線(xiàn)(SDA,SCL)等長(cháng)度地平行走線(xiàn),兩邊加地線(xiàn)進(jìn)行保護,避免臨近層出現高速信號線(xiàn)等。
上拉電阻應安置在OD輸出端附近。當I2C總線(xiàn)上主從器件(Master & Slave)兩端均為OD輸出時(shí),電阻放置在信號路徑的中間位置。當主設備端是軟件模擬時(shí)序,而從設備是OD輸出時(shí),應將電阻安置在靠近從設備的位置。
I2C協(xié)議還定義了串聯(lián)在SDA、SCL線(xiàn)上電阻Rs。該電阻的作用是,有效抑制總線(xiàn)上的干擾脈沖進(jìn)入從設備,提高可靠性。這個(gè)電阻的選擇一般在100~200ohm左右。當然,這個(gè)電阻并不是必須的,在惡劣噪聲環(huán)境中,可以選用。
比如常用的FM 接收模塊或者Capsense觸摸感應功能塊,都是通過(guò)I2C接口控制的。I2C接口信號從處理器出發(fā),經(jīng)過(guò)PCB上的信號路徑,進(jìn)入上述電路單元。I2C信號線(xiàn)上載有一定干擾,這種干擾雖然幅度并不很大,但還是會(huì )影響敏感的FM接收模塊或Capsense觸摸感應功能塊。此時(shí),可以通過(guò)在靠近FM模塊或觸摸感應模塊的I2C信號線(xiàn)上串接Rs電阻,即可有效降低干擾的影響。此外,上拉電阻端的電源也要進(jìn)行退耦處理。
軟件模擬I2C時(shí)序
由于一般的I2C應用速率并不高(400kbps),使用處理器的IO口模擬I2C波形,完全可以勝任(處理器一般擔任Master,占有I2C通信的控制權,無(wú)需擔心隨機的I2C通信服務(wù)中斷其他任務(wù)的執行)。
處理器分配給I2C任務(wù)的IO口,要求可以輸出高低電平,還能配置為輸入端口。處理器根據總線(xiàn)規范以及從設備的時(shí)序要求,利用2條IO信號線(xiàn),模擬I2C接口時(shí)序波形,進(jìn)行I2C通信。
處理器發(fā)送數據時(shí),通過(guò)IO口輸出高電平,上升時(shí)間基本與外部上來(lái)電阻阻值無(wú)關(guān),且比用外部上拉電阻上拉到高電平快很多。處理器在接受數據時(shí),即便上拉電阻阻值選的大一些,從設備輸出數據的波形上升沿緩慢,但由于處理器使用軟件采樣的而非硬件采樣,因此,對數據傳輸的結果并不影響。也就是說(shuō),使用IO口模擬I2C時(shí)序時(shí),上拉電阻阻值可以適當選的大一些。
需要指出的是,使用軟件模擬最多只能完成單Master的應用,對于多Master應用,由于需要進(jìn)行總線(xiàn)控制權的仲裁管理,使用軟件模擬的方法很難完成。
I2C總線(xiàn)空閑的時(shí)候,兩條信號線(xiàn)應該維持高電平。否則,上拉電阻上會(huì )有耗電。特別是在上電過(guò)程中,IO線(xiàn)上電平也應保持在高電平狀態(tài)。也就是說(shuō):當Master的I2C使用的是IO軟件模擬時(shí),一定要保證該兩個(gè)IO上電默認均為輸入(或高阻)或者輸出高電平,切不可默認為輸出低電平。IO默認為輸入時(shí),可以通過(guò)外部上拉電阻將I2C信號線(xiàn)拉至高電平。
I2C應用中上拉電阻電源問(wèn)題
在部中分應用中,還存在主從設備以及上拉電阻電源不一致的情況,比如Camera模組。在很多設計方案中,Camera模組不工作時(shí),并不是進(jìn)入Power Down模式,而是直接關(guān)閉模組供電VDDS。此時(shí),處理器與模組相互連接的所有信號線(xiàn)都應該進(jìn)入高阻態(tài),否則就會(huì )有電流漏入模組;而對于此時(shí)的I2C控制信號線(xiàn)來(lái)說(shuō),由于上拉電阻的存在,必須關(guān)斷上拉電阻電源VDDP。如果上拉電阻使用的是系統電源VDDM(VDDP=VDDM),無(wú)法關(guān)閉,就會(huì )有漏電流進(jìn)入模組;因此這種情況下,應該使用VDDS作為上拉電阻電源(VDDP=VDDS),這樣上拉電阻電源與Slave電源即可同時(shí)關(guān)閉,切斷了漏電路徑。
另外需要注意的是,在上述應用實(shí)例中選擇的IO,應該選取上電默認為輸入(或高阻)才行。

|