手機原理設計中,上拉電阻常用在中斷,gpio控制,i2c等訊號上,本文希望能通過例項分析加深對上拉電阻的理解。如果有錯誤,請大神們提出來。
中斷,gpio,i2c等一般都是oc或者od門,晶元內部無上拉電阻時,則外部必須加上拉電阻才能輸出高電平。一般i/o端的驅動能力在2~4ma量級,oc或者od門的導通電壓為0.4v左右,手機中加在上拉電阻上的電壓一般都是2.8v,上拉電阻的最小值不能低於800r(2.8-0.4v/3ma=0.8k),5v電壓時,則不能低於1.5k(5-0.4v/3ma=1.5k)。中斷和gpio訊號本身,只需要產生乙個高電平即可,不需要驅動裝置,上拉電阻可以取大點,減小功耗,但須注意上拉電阻不能太大,否則會和pcb走線,器件等負載電容影響訊號上公升時間。經驗值一般在4.7~100k之間。
i2c上拉電阻阻值計算:
i2c的介面一般都是od機制,同樣需要加上拉電阻才能輸出高電平。上拉電阻的最小值須符合上文。下面計算下上拉電阻的最大值。
i2c匯流排圖
i2c匯流排的傳輸速率分為標準模式(100kbit/s)和快速模式(400kbit/s),負載的最大容限分別是400pf和200pf,根據i2c匯流排協議,上拉電阻的最大值被匯流排電容所限制。
下面兩個圖可以看出上拉電阻的取值(rs是i2c裝置串聯在i2c匯流排上的電阻,可以防止sda和scl的高電壓毛刺波,例如電視的映象管擊穿產生的高壓毛刺)
由上圖可以看出,上拉電阻的最小值由上拉電源決定,最大值由匯流排電容決定。
最大值網上有個計算公式,rmax=t/0.874*c,c=200pf時,t=1us;c=400pf時,t=0.3us。但是根據這個公式計算出來的值都不怎麼對,另外常數0.874怎麼來的?請懂得人指教下。手機等低功耗裝置一般選擇4.7k
(1)匯流排電容cb是一條匯流排線路連線和管腳的總,單位是pf。由於規定了上公升時間,這個電容限制了上拉電阻rp 的最大值,而電源電壓限制了上拉電阻rp 的最小值,輸出級在volmax=0.4v 時指定的最小下拉電流是3ma。
如果匯流排線路的電容負載公升高,位速率將逐漸下降,匯流排的電容負載是400pf 時的,允許最大位速率是1.7mbit/s 。匯流排電容負載在100pf~400pf 時時序引數必須呈線性增加。
(2)在我們的實際設計中,需要清楚i2c的匯流排的兩個特徵:
1、序列資料sda和序列時鐘scl線都是雙向線路,通過乙個電流源或上拉電阻rp連線到正的電源電壓+vdd,當匯流排空閒時這兩條線路都是高電平。連線到匯流排的器件輸出級必須是漏極開路或集電極開路才能執行線與的功能。i2c 匯流排上資料的傳輸位速率,在標準模式下可達100kbit/s,快速模式(f/s)下可達400kbit/s,高速模式(hs)下可達3.4mbit/s。
2、連線到相同匯流排的ic數量只受到匯流排的最大電容400pf限制。如果匯流排線路的負載電容公升高,位速率將逐漸下降。
匯流排規定使用非標準電源電壓,不遵從i2c 匯流排系統電平規定的器件,必須將輸入電平連線到有上拉電阻rp 的vdd電壓。
1,匯流排輸入電平的定義:低電平雜訊容限是0.1vdd,高電平雜訊容限是0.2vdd。vol定義為在漏極開路或集電極開路時,有3ma下拉電流時的低電平輸出電壓,最大值取volmax=0.4v,這個3ma是指定的最小下拉電流。在一定範圍內,下拉電流越大,驅動能力越強。rpmin是電源電壓的函式,即電源電壓越高,rpmin值越高。rpmax是負載電容的函式,匯流排電容越大,即負載越大,rpmax越低。
2,匯流排電容是線路連線和管腳的總電容,規定匯流排輸入電流的最大值是10ua,同時規定了上公升時間tr的最大值,由於高電平要求0.2vdd的雜訊容限,這個輸入電流限制了rp 的最大值。總的高電平輸入電流是rpmax的函式。在電源電壓一定時,總的高電平輸入電流越大,rpmax越小。匯流排的負載電容和上拉電阻的值決定了訊號的上公升時間tr,規定
trmax=300ns。creasy講得對:時間常數等於源端阻抗和匯流排電容的乘積,上拉電阻太大會造成時間常數過大,從而使上公升沿的斜率變小,增大了匯流排上公升時間。
小結:上拉電阻rp的值由三個引數決定:電源電壓、匯流排電容和連線器件的數量(輸入電流+漏電流)。
I2C的匯流排電容
1 匯流排電容cb是一條匯流排線路連線和管腳的總,單位是pf。由於規定了上公升時間,這個電容限制了上拉電阻rp 的最大值,而電源電壓限制了上拉電阻rp 的最小值,輸出級在volmax 0.4v 時指定的最小下拉電流是3ma。如果匯流排線路的電容負載公升高,位速率將逐漸下降,匯流排的電容負載是400p...
i2c匯流排時序
一心想踏入linux device driver的世界,想著i2c匯流排相對於usb等其他匯流排較為簡單,就以i2c作為切入點,希望可以逐步理解ldd的設計思想,並能理解其裝置模型的概念。在此對近期於i2c匯流排及驅動原始碼的理解做備忘,以免徒勞。平台友善之臂s70 tiny6410 cpusams...
I2C匯流排死鎖
原文 現象 最近發現訪問i2c裝置時,主裝置復位可能會引起i2c死鎖,表現為scl為高,sda一直為低,後發現是從裝置拉死i2c匯流排,從裝置斷電之後,sda變高,上電後通訊正常。後來通過拉低scl訊號線,sda就會自動變成高電平,i2c匯流排恢復。原因 在正常情況下,i2c匯流排協議能夠保證匯流排...