許多人在開始學習實用的動手電子產品時學到的第一課就是需要上拉電阻。是防止微控制器上的浮動 I/O 引腳還是通過漏極開路設計連接兩個電路;上拉電阻器是一個經常需要但很少被重視的組件。那么為什么我們要使用上拉電阻,我們不能只將一根電線連接到我們設備的 V cc電源嗎?您應該使用多大尺寸的電阻器?
那么,為什么我們一開始還需要麻煩上拉電阻呢?假設我們有一個瞬時常開按鈕,我們不希望 I/O 引腳懸空。為什么不直接將電線連接到I/O 引腳和按鈕引線之間的 V cc ?這將有助于防止微控制器的 I/O 引腳在未按下按鈕時浮動——它需要一個 V cc或一個穩定的高電平。然而,一旦按下按鈕,V cc和地之間就會發生短路(圖 1). 這會產生大量熱量,如果設備是電池供電的,它會很快耗盡電池電量。除了阻礙與浮動微控制器 I/O 引腳相關的問題外,在使用漏極開路拓撲時,上拉電阻器也是必不可少的。我們在此Bench Talk 帖子中詳細討論了開放式排水管。
圖 1:僅連接一根電線會導致短路(左)。上拉電阻器可防止浮動輸入,同時防止不必要的短路(右)。(來源:作者)
那么我們如何選擇合適尺寸的電阻器呢?與大多數好的工程問題一樣,答案取決于您的應用。讓我們從考慮極端選項 0Ω 開始,比如說 1mΩ。我們已經討論過 0Ω 選項(小值電阻器被稱為強上拉,因為它們允許大量電流流動)。電阻值太小,我們會得到太多的電流,這可能不安全,或者至少是能源效率低下。如果我們使用一個巨大的 1mΩ 電阻器會怎樣?那不安全嗎?大電阻值被稱為弱上拉,因為它們可以防止過多的電流流動。答案是肯定的,但這是有代價的。在這種情況下,這是速度和功率之間的權衡。
將微控制器的 I/O 引腳想象成一個電容器。回想一下,電容器兩端的電壓不能瞬間改變。相反,它根據所謂的時間常數 (T) 充電,數學上表示為 T=RC,其中 R 是電阻器的值,??C 是電容器的值。當我們添加一個非常大的電阻器時,我們會通過限制電流來增加電容器充電所需的時間。實際上,這意味著微控制器不會立即檢測到按下的按鈕,因為微控制器需要一些時間才能看到電壓從它認為的 LOW/OFF 狀態變為 HIGH/ON 狀態。從用戶的角度來看,這可能會導致不可接受的電路性能。該系統似乎沒有及時響應。2 C 串行通信協議,大的定時常數會對 I 2 C 總線在其串行數據線 (SDA) 和串行時鐘線 (SCL) 線上實現所需的波特率產生負面影響。
從數學上講,這就是計算電阻值的方式:
R p(min)是可接受的最小電阻值,由下式給出:
R p(min) = (V cc - V OL(max) ) / I OL 由此:
V cc是電源電壓。
V OL(max)是被微控制器的 I 2 C 引腳記錄為低電平的最大電壓。
I OL是 V OL的電流消耗
的
R p(max)是可接受的最大電阻值,由下式給出:
R p(max) = t r / (0.8473 x C b ) 其中:
t r 是 SDA 和 SCL 線路對于所需波特率可接受的上升時間。檢查設計中使用的設備的數據表。
C b 是將被驅動的預期容性負載。附帶說明一下,可以共享 I 2 C 總線的設備數量受印刷電路板 (PCB) 和設備輸入電容之和的限制。根據標準和快速工作模式的 I 2 C 規范,此限制為 400pF。之后需要一個I 2 C緩沖芯片。這通常發生在 7 位可尋址 I 2 C 實現的 112 個設備的理論尋址限制之前。
現在根據實際經驗,以下是您應該考慮在電路中測試的電阻值,以查看是否獲得所需的性能:
一般用途為 1kΩ 至 10kΩ。
10kΩ 至 100kΩ,如果您有低功耗用例,例如電池供電的設備。
最后要考慮的是,許多微控制器都有可以通過代碼打開的內部上拉電阻。請務必查看數據表,了解內部電阻值的大小是否適合您的應用。如果沒有,您將不得不使用外部上拉電阻。
審核編輯:湯梓紅
-
微控制器
+關注
關注
48文章
7649瀏覽量
152097 -
上拉電阻
+關注
關注
5文章
363瀏覽量
30731 -
引腳
+關注
關注
16文章
1220瀏覽量
50896
發布評論請先 登錄
相關推薦
評論