0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一顆上拉電阻引發(fā)的思考

硬件筆記本 ? 來源:硬件筆記本 ? 2023-08-10 09:19 ? 次閱讀

前情提要

最近看到一個關(guān)于上下拉電阻的問題,發(fā)現(xiàn)不少人認(rèn)為上下拉電阻能夠增強(qiáng)驅(qū)動能力。隨后跟幾個朋友討論了一下,大家一致認(rèn)為不存在上下拉電阻增強(qiáng)驅(qū)動能力這回事,因?yàn)槌薕C輸出這類特殊結(jié)構(gòu)外,上下拉電阻就是負(fù)載,只會減弱驅(qū)動力。但很多經(jīng)驗(yàn)肯定不是空穴來風(fēng),秉承工程師的鉆研精神,我就試著找找這種說法的來源,問題本身很簡單,思考的過程比較有趣。

二極管邏輯

今天已經(jīng)很難看到二極管邏輯電路了,其實(shí)用性也不算高,不過因?yàn)殡娐泛唵?,非常適合用來理解基本概念。

一個最簡單的二極管與門如下圖。與門實(shí)現(xiàn)邏輯與操作Y=A&B,即A或者B任意為L的時候,輸出Y為L,只有當(dāng)A和B都為H時,Y才為H。

d7612d46-370e-11ee-9e74-dac502259ad0.jpg

基本二極管與門

假設(shè)二極管無導(dǎo)通壓降,在這個電路中,二極管充當(dāng)了單向開關(guān)的角色,當(dāng)A和B等于VDD時,兩根二極管反向截至,Y被電阻上拉到VDD,這是Y就是H;當(dāng)A或者B任意一端為GND時,二極管導(dǎo)通,因?yàn)槎O管導(dǎo)通時電阻很小,遠(yuǎn)小于上拉電阻,所以Y被拉到了GND,即邏輯L。

至于二極管或門,只要把二極管轉(zhuǎn)一下,再把電阻從拉到VDD改成拉到GND就可以了,非常簡單。

d775d7c8-370e-11ee-9e74-dac502259ad0.png

基本二極管或門

基本原理

你看,在這么原始的邏輯電路中就已經(jīng)出現(xiàn)了上下拉電阻,這里面的原理也非常簡單粗暴:利用開關(guān)的閉合(電阻為0)和開啟(電阻無窮大)的特性,配合電阻,就可以輕松實(shí)現(xiàn)兩種電壓的輸出。這種電路還有一個變形,就是用恒流源取代電阻,一方面集成電路工藝,恒流源比電阻更容易獲得,另一方面恒流源的驅(qū)動能力也更好。根據(jù)開關(guān)和電阻(或恒流源)的相對位置,有以下基本電路:即開關(guān)接到GND(L)或開關(guān)接到VDD(H)。

d792dada-370e-11ee-9e74-dac502259ad0.jpg

幾種開關(guān)電路接法

這幾種電路都是由開關(guān)的閉合或開啟決定了VOUT是VDD還是GND。開關(guān)的相對位置不同,還決定了電路在某一狀態(tài)下的驅(qū)動能力:開關(guān)的導(dǎo)通電阻為0,可視為驅(qū)動力無窮大,可是電阻(或恒流源)的驅(qū)動能力呢,只有VDD/R(或者恒流I),這就導(dǎo)致了電路在輸出H或L的時候驅(qū)動能力不對稱(換一個說法,就是電路在輸出H或者L的時候,輸出阻抗不一樣)。

除了驅(qū)動能力的問題,這種單開關(guān)加電阻的模式還會帶來靜態(tài)功耗的問題,因?yàn)橹灰_關(guān)閉合,不管外部有沒有負(fù)載,都會消耗電流。

既然開關(guān)的驅(qū)動力比電阻強(qiáng),那么能不能把電阻也換成開關(guān)?恭喜你,發(fā)現(xiàn)了現(xiàn)代CMOS邏輯電路的基本單元:倆互補(bǔ)的開關(guān)。這樣不管輸出H還是輸出L,驅(qū)動能力都是無窮大!好的,這時候上下拉電阻就不見了。

這樣兩個開關(guān)的電路還多出來了一種狀態(tài):當(dāng)兩個開關(guān)都開啟時,VOUT即不是VDD也不是GND,而是一個懸空的狀態(tài)(即高阻態(tài),Hi-Z),這時候外部給什么信號它就是什么狀態(tài)。這樣又出現(xiàn)了一個新的邏輯門大類:三態(tài)邏輯門。

d7c48a1c-370e-11ee-9e74-dac502259ad0.png

互補(bǔ)開關(guān)電路

上下拉電阻增強(qiáng)驅(qū)動能力?

很多經(jīng)驗(yàn)不是空穴來風(fēng),只是在流傳的過程中丟失了重要的前提條件。上一節(jié)也看到了有一些邏輯器件,他們輸出高和輸出低時的驅(qū)動能力差別很大。

TTL(70xx、74Fxx、74Sxx、74LSxx等)家族的器件就屬于這種類型,如下圖是7404(TTL反相器)的原理圖,由于非對稱的輸出級設(shè)計(jì),輸出為高時驅(qū)動能力只有0.4mA,而輸出低時居然能輸出16mA的電流(手冊中的輸出電流不是晶體管或者電路本身的極限,而是超過這個電流以后,輸出的電壓可能無法滿足邏輯族的要求)。

d7e2a84e-370e-11ee-9e74-dac502259ad0.png

7404的簡化電路

這個時候在輸出端口外加一個上拉電阻,就可等效以增強(qiáng)端口在輸出H時的驅(qū)動能力,但代價是端口輸出L時,驅(qū)動能力相應(yīng)地減弱,不過這時候芯片輸出能力足夠強(qiáng),用這點(diǎn)代價來換取另一個狀態(tài)下驅(qū)動能力的增強(qiáng),還是劃算。

d810e614-370e-11ee-9e74-dac502259ad0.png

帶上拉電阻的7404

下表是仿真有無上拉電阻時,負(fù)載電流與輸出電壓的關(guān)系,可以看到上拉電阻確實(shí)增強(qiáng)了在一定負(fù)載下的輸出電壓,不過當(dāng)負(fù)載電流較大時效果并不明顯,而且邊際效應(yīng)也很顯著,當(dāng)上拉電阻減小到一定程度以后,增強(qiáng)效果也不太顯著,而且會大大增加靜態(tài)功耗。

d8332a3a-370e-11ee-9e74-dac502259ad0.png

帶不同上拉電阻的7404輸出電壓與負(fù)載電流的關(guān)系

既然非對稱的輸出級有這樣的問題,那為啥不能把這個驅(qū)動器設(shè)計(jì)成上下對稱的呢?

一方面,如果要設(shè)計(jì)成上下對稱的結(jié)構(gòu),上管需要用P管,而當(dāng)時的工藝限制,P管各方面性能都不如N管,速度、功耗和成本都不是很劃算,所以能看到很多上年代的芯片,內(nèi)部幾乎沒有P管(包括MOS工藝的器件也是)。

另一方面,TTL輸入結(jié)構(gòu)的特點(diǎn),輸入為H時所需電流很小,而輸入為L所需的輸入電流很大,這樣對輸出L時的驅(qū)動能力要求就很高,反而對輸出H時沒有驅(qū)動能力要求(TTL輸入懸空時等效為H)。

但TTL的這種特點(diǎn),又會帶來一個比較麻煩的問題:下拉電阻值需要很大才能滿足要求,而下拉電阻太大則會導(dǎo)致輸出高時負(fù)載太重以至于無法達(dá)到規(guī)定電壓,所以TTL要盡量避免使用下拉。

下圖是仿真結(jié)果,因?yàn)檫@是一個反相器,所以下拉時輸出高是所期望的,而下拉電阻超過1.8kΩ時已經(jīng)無法滿足TTL定義的最低高電平標(biāo)準(zhǔn)了;而上拉時,就算上拉電阻達(dá)到20kΩ,也絲毫不影響輸出。

d8674fa4-370e-11ee-9e74-dac502259ad0.png

TTL上下拉電阻取值與輸出電壓的關(guān)系

CMOS電路

相信現(xiàn)在已經(jīng)沒多少人會在設(shè)計(jì)時選用TTL家族的器件了,可能多數(shù)人都沒接觸過這類器件,最常用的還是CMOS家族(HC、HCT、LVC、CD4000等)。

CMOS家族的東西就比較簡單粗暴,上下對稱的結(jié)構(gòu),上下管驅(qū)動能力也基本一致,這個時候輸出的上下拉電阻對增強(qiáng)驅(qū)動能力幾乎沒有幫助不說,還加重了負(fù)載,屬于得不償失(其實(shí)多數(shù)情況下是無關(guān)痛癢)。

下圖是基本的CMOS反相器,只需要一對互補(bǔ)的MOS管即可實(shí)現(xiàn)(現(xiàn)實(shí)中的CMOS反相器一般是三對這種管子級聯(lián)出來的,為了提高開環(huán)增益)。

d89d357e-370e-11ee-9e74-dac502259ad0.png

但是CMOS器件的輸入懸空時,不會被拉向任何一個方向,處于一種浮空的狀態(tài),這樣會造成輸出紊亂,不是我們所希望的結(jié)果,這種情況下需要在輸入端接入上拉或者下拉電阻給電路提供一個確定的狀態(tài)。一般可拔插的對外接口(如JTAG)需要在I/O上加上上下拉電阻,有三態(tài)的總線視工作情況也可能需要上下拉,不過大多數(shù)的CMOS電路不需要額外的上下拉電阻。

d8bca47c-370e-11ee-9e74-dac502259ad0.png

CMOS器件在使用一般要加上下來避免輸入懸空

因?yàn)镃MOS輸入是電壓控制型,輸入阻抗很高,所以上下拉電阻的值可以很大,理論上用MΩ級別的電阻都沒問題。

不過理論歸理論,工程師得認(rèn)清現(xiàn)實(shí)?,F(xiàn)實(shí)的CMOS輸入結(jié)構(gòu),為了保護(hù)MOS管的柵極,會在柵極上加入ESD二極管,二極管反向偏置的時候是有漏電流的,還會隨溫度的升高還會指數(shù)增長!所以CMOS電路的上下拉電阻一般在100kΩ以下,一些制程比較先進(jìn)的CPU,I/O口的漏電流或者上下拉電流較大,上下拉電阻一般取在幾kΩ級別。所以設(shè)計(jì)上下拉電阻前一定要仔細(xì)閱讀芯片手冊,查查I/O的輸入電流,看看取什么樣的電阻值才合理。

d8e755c8-370e-11ee-9e74-dac502259ad0.png

CMOS輸入有ESD二極管

其他需要上下拉的情況

開集(Open-Collector)和開漏(Open-Drain)的輸出結(jié)構(gòu)往往也需要加上拉電阻。OC和OD輸出結(jié)構(gòu)只有下管,所以只能輸出L和高阻(Hi-Z)兩種狀態(tài),而高阻態(tài)是難以被電路識別的,所以需要合適的上拉電阻把高阻態(tài)轉(zhuǎn)變?yōu)楦邞B(tài)。

d91467de-370e-11ee-9e74-dac502259ad0.jpg

OC(左)和OD(右)輸出結(jié)構(gòu)

雖然OC和OD輸出結(jié)構(gòu)看起來很復(fù)古,使用時也需要外接電阻有點(diǎn)麻煩,但這種結(jié)構(gòu)最大的好處就是可以做線與,也就是多個OC或者OD可以接到一起,只要其中一個輸出L,總線就是L,這在多外設(shè)中斷和電源時序控制方面很常用。

d9294cf8-370e-11ee-9e74-dac502259ad0.jpg

OC/OD的線與接法

I2C也是OC/OD結(jié)構(gòu),這樣很輕松就能在一條數(shù)據(jù)線上雙向傳輸數(shù)據(jù)而不需要額外的方向控制信號,而CAN總線則巧妙地利用線與特性來實(shí)現(xiàn)總線仲裁。

在處理OC或者OD電路的時候,一定要注意評估總線負(fù)載電容、上拉電阻與所需速度的關(guān)系,負(fù)載電容越大,速度越快,所需的上拉電阻要越小。比如I2C總線,如果只掛載了一片從設(shè)備,使用4.75kΩ的上拉電阻可能就滿足400kHz的總線要求了,但如果掛了10片從設(shè)備呢,1kΩ的上拉電阻也不一定能搞定100kHz的總線速度,這種時候可能得考慮總線負(fù)載隔離或者降低總線速度了。

下圖是在200pF負(fù)載電容情況下,上拉電阻為500Ω、1kΩ、2kΩ、4.75kΩ和10kΩ下的波形,可以看到上拉電阻越大,對電容充電速度越慢,所以上升沿也越慢,當(dāng)上拉電阻不合適時上升沿已經(jīng)嚴(yán)重變形,無法保證正常工作。

d93d8042-370e-11ee-9e74-dac502259ad0.png

OC電路不同上拉電阻對波形的影響

冷知識

邏輯反相器可以當(dāng)成放大器來用!不是開玩笑,我還真見過產(chǎn)品上用這種騷操作的,只需要把反相器接成反向放大器就可以了,不過邏輯器件當(dāng)線性器件用,性能嘛...

d96de782-370e-11ee-9e74-dac502259ad0.png

邏輯反相器(非門)當(dāng)成線性放大器用

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 二極管
    +關(guān)注

    關(guān)注

    147

    文章

    9486

    瀏覽量

    165238
  • 開關(guān)電路
    +關(guān)注

    關(guān)注

    58

    文章

    551

    瀏覽量

    66289
  • 上拉電阻
    +關(guān)注

    關(guān)注

    5

    文章

    356

    瀏覽量

    30517
  • 恒流源
    +關(guān)注

    關(guān)注

    16

    文章

    333

    瀏覽量

    56116
  • GND
    GND
    +關(guān)注

    關(guān)注

    2

    文章

    527

    瀏覽量

    38603

原文標(biāo)題:一顆上拉電阻引發(fā)的思考

文章出處:【微信號:gh_a6560e9c41d7,微信公眾號:硬件筆記本】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電阻和下拉電阻作用、區(qū)別和應(yīng)用

    、上下拉電阻介紹 ??電阻:將個不確定的信號,通過
    的頭像 發(fā)表于 04-21 09:49 ?1.4w次閱讀

    電阻和下拉電阻的作用是什么?

    什么是電阻電阻和下拉電阻都是
    發(fā)表于 05-26 10:16 ?2755次閱讀
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>和下拉<b class='flag-5'>電阻</b>的作用是什么?

    電阻的作用

    電阻的作用
    發(fā)表于 03-04 17:53 ?9次下載

    電阻作用及原理

    電阻很大,提供的驅(qū)動電流很小,叫弱;反之叫強(qiáng)
    發(fā)表于 10-25 11:17 ?4.8w次閱讀
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>作用及原理

    電阻的作用原理

    本文首先介紹了電阻的作用,其次介紹了電阻的原理,最后分享了
    的頭像 發(fā)表于 08-30 18:33 ?12.9w次閱讀

    電阻的阻值選擇

    本文首先介紹了電阻阻值的選擇原則,其次介紹了電阻阻值計(jì)算原則。
    的頭像 發(fā)表于 08-30 18:37 ?2w次閱讀

    電阻起到什么作用_電阻如何取值

    所謂電阻,就是將單片機(jī)的GPIO口通過電阻接至電源,在初始情況下給該GPIO引腳個確定
    的頭像 發(fā)表于 10-11 15:32 ?4.8w次閱讀
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>起到什么作用_<b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>如何取值

    電阻的作用

    1、介紹使用微控制器(MCUs) 或任何數(shù)字邏輯設(shè)備時,電阻器非常常見。本教程將解釋何時何地使用上電阻器,然后我們將做
    發(fā)表于 12-05 18:36 ?17次下載
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>的作用

    電阻與下拉電阻

    前言:在張?jiān)韴D中無論時還是下拉都是非常普遍的,轉(zhuǎn)載此文章,可以很快的理解電阻與下拉
    發(fā)表于 01-14 14:07 ?22次下載
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>與下拉<b class='flag-5'>電阻</b>

    電阻與下拉電阻

    下拉就是接地,就相當(dāng)于升壓,提高驅(qū)動能力或者穩(wěn)定性。 電阻是用來解決總線驅(qū)動能力不足時提供電流的問題的。
    的頭像 發(fā)表于 02-23 16:20 ?1966次閱讀

    電阻為什么要下---和下拉的作用?

    什么是電阻電阻和下拉電阻都是
    的頭像 發(fā)表于 05-31 13:57 ?2424次閱讀
    <b class='flag-5'>電阻</b>為什么要<b class='flag-5'>拉</b><b class='flag-5'>一</b>下---<b class='flag-5'>上</b><b class='flag-5'>拉</b>和下拉的作用?

    電阻和下拉電阻的用處和區(qū)別

    什么是電阻電阻和下拉電阻都是
    的頭像 發(fā)表于 06-29 17:04 ?1.1w次閱讀
    <b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>和下拉<b class='flag-5'>電阻</b>的用處和區(qū)別

    什么是電阻

    電阻電阻,它通常被連接到電路中的高電平值,以提供
    的頭像 發(fā)表于 09-06 09:16 ?2006次閱讀
    什么是<b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>

    什么是電阻?P0口電阻有什么用?

    這次簡單說說上電阻,那問題來了,什么是電阻
    的頭像 發(fā)表于 11-13 15:33 ?2593次閱讀
    什么是<b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>?P0口<b class='flag-5'>上</b>的<b class='flag-5'>上</b><b class='flag-5'>拉</b><b class='flag-5'>電阻</b>有什么用?

    電阻和下拉電阻的用處

    電阻和下拉電阻的用處和區(qū)別? 電阻和下拉
    的頭像 發(fā)表于 11-22 18:26 ?1627次閱讀