深談GPIO及上下拉電阻
發布時間:2018-09-21 責任編輯:wenwei
【導讀】很多人一看到這個標題,相信都會嘴角一揚,鄙視地笑了:GPIO和(he)上(shang)下(xia)拉(la)電(dian)阻(zu)有(you)什(shen)麼(me)好(hao)談(tan)的(de),不(bu)就(jiu)是(shi)一(yi)個(ge)電(dian)阻(zu)接(jie)地(di)或(huo)者(zhe)接(jie)電(dian)源(yuan)嗎(ma)?學(xue)電(dian)子(zi)的(de)第(di)一(yi)堂(tang)課(ke)就(jiu)學(xue)了(le)。實(shi)際(ji)上(shang),上(shang)下(xia)拉(la)電(dian)阻(zu)這(zhe)裏(li)的(de)學(xue)問(wen)深(shen)著(zhe)呢(ne),各(ge)位(wei)要(yao)是(shi)不(bu)信(xin),先(xian)用(yong)下(xia)麵(mian)幾(ji)個(ge)實(shi)例(li)自(zi)測(ce)一(yi)下(xia),再(zai)決(jue)定(ding)要(yao)不(bu)要(yao)學(xue)一(yi)下(xia)。
入門題:
1)什麼是開漏輸出,什麼是推挽輸出?
2)芯片空餘的引腳如何處理,接地?接電源?懸空?
進階題:
下圖1是PLC的輸入端口原理圖,S1是模擬開關信號輸入。軟件工程師說按鍵按下,CPU一直檢測不到低電平,一直都是高電平,一口咬定是硬件問題,實測CPU的引腳確實也是3V左右的高電平。請問是軟件問題還是硬件問題,原因是什麼?(下圖R3和C1參數不能改,用於設置輸入濾波參數,限製頻率高於10HZ的抖動輸入。)

PLC產品的輸入端口原理圖
高級題:
下圖2是控製機櫃風扇控製電路,控製器輸出0~10V電壓,控製風扇的轉速。目前該控製器存在這個問題:控製一上電,端口處就會輸出400mS/5V左右的脈衝,導致上電瞬間風扇突然轉動,客戶不可接受,需整改。怎麼解決?

圖2 :風扇轉速控製原理圖

圖3 :風扇控製上電瞬間400mS左右的高電平輸出
骨灰題:
下圖4是一款智能電表的方案示意圖,項目組一共開發了2款電表,高端版和低端版,主板是完全一樣的,區別在於高端版帶顯示器,低端版不帶顯示器。兩款設備在做EMC的ESD測試中,低端版設備做完實驗後無法啟動,高端版則正常,請問可能的原因在哪裏?

圖4 :帶顯示功能的智能電表
一、GPIO的基礎知識
GPIO(General Purpose I/O Ports)意思為通用輸入/輸出端口,通俗地說,就是一些引腳,可以通過它們輸出高低電平或者通過它們讀入引腳的狀態-是高電平或是低電平。GPIO口一是個比較重要的概念,用戶可以通過GPIO口和硬件進行數據交互(如UART),控製硬件工作(如LED、蜂鳴器等),讀取硬件的工作狀態信號(如中斷信號)等。幾乎所有的CPU、MCU都會具GPIO功能,以下是作者統計的GPIO的種類,幾乎囊括了所有的MCU的GPIO類型。
1) 輸入浮空:即輸入端口既不上拉也不下拉,電平由外部輸入決定;這種模式較少,一般模擬量輸入、按鍵掃描輸入使用該模式。
2) 輸入上拉:即輸入端口配置一個電阻到電源端,該電阻可以使芯片內置,也可以是外部電阻。
3) 輸入下拉:即輸入端口配置一個電阻到地,該電阻可以使芯片內置,也可以是外部電阻。
4) 模擬輸入:模擬量信號輸入,需要芯片內部支持AD轉換功能才可以。
5) 開漏輸出: 漏極開路輸出(OD) 和集電極開路輸出(OC)十分相似,都是無法輸出高電平,隻能輸出低電平,需要高電平時需要外接上拉電阻。
6) 推挽式輸出:推挽輸出既可以輸出高電平也可以輸出低電平,無需外配置電阻。
7) 推挽式複用功能:即推挽式輸出和輸入功能,使用時需要配置具體使用哪一種。
8) 開漏複用功能:即開漏輸出和輸入功能,使用時需要配置具體使用哪一種。
很多人看到上麵一堆IO引腳的功能種類,肯定都是雲裏霧裏的。先不急,看完下麵這張“葵花寶典”,可以肯定市麵上99%的CPU的GPIO功能都囊括了,拿著這張表,硬件工程師可以說服驅動工程師,驅動工程師可以忽悠軟件工程師,就可以責任清晰,和平共處了。

圖5:8種GPIO輸入輸出功能類型內部原理框圖
二、上下拉電阻作用
1) 上拉就是將不確定的信號通過一個電阻嵌位在高電平!電阻同時起限流作用!下拉同理,下拉就是將不確定的信號通過一個電阻嵌位在低電平!電阻同時起限流作用!
2) 上拉是對器件注入電流,下拉是輸出電流。
3) 弱強隻是上拉電阻的阻值不同,沒有什麼嚴格區分。
4) 對於非集電極(或漏極)開路輸出型電路(如普通門電路)提升電流和電壓的能力是有限的,上拉電阻的功能主要是為集電極開路輸出型電路輸出電流通道。
5) 一般作單鍵觸發使用時,如果IC本身沒有內接電阻,為了使單鍵維持在不被觸發的狀態或是觸發後回到原狀態,必須在IC外部另接一電阻。
6) 數字電路有三種狀態:高電平、低電平、和高阻狀態,有些應用場合不希望出現高阻狀態,可以通過上拉電阻或下拉電阻的方式使處於穩定狀態,具體視設計要求而定!
7) 一般說的是I/O端口,有的可以設置,有的不可以設置,有的是內置,有的是需要外接。
8) shangladianzushiyonglaijiejuezongxianqudongnenglibuzushitigongdianliude。yibanshuofashiladianliu,xialadianzushiyonglaixishoudianliude,yejiushiwomentongchangsuoshuodeguandianliu。
9) 在I/O引腳懸空時,接電阻就是為了防止輸入端懸空,從而提高係統的抗幹擾能力。減弱外部電流對芯片產生的幹擾。
10) 通過上拉或下拉來增加或減小驅動電流。
11) 上下拉電阻改變電平的電位,常用在TTL-CMOS匹配。
12) 上拉電阻可以為OC門或者OD門提供電流。
三、上拉電阻的應用場景
1) 當TTL電路驅動COMS電路時,若TTL電路輸出的高電平低於COMS電路的最低高電平(一般為3.5V),這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平值。注:此時上拉電阻連接的電壓值應不低於CMOS電路的最低高電壓,同時又要考慮TTL電路方電流(如某端口最大輸入或輸出電流)的影響。
2) OC門或者OD門電路必須加上拉電阻,才能使用。
3) 為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。
4) 在COMS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻,降低輸入阻抗,提供泄荷通路。
5) 芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號的噪聲容限增強抗幹擾能力。
6) 長線傳輸中電阻不匹配容易引起反射波幹擾,加上下拉電阻是電阻匹配,有效的抑製反射波幹擾。
7) 在數字電路中不用的輸入腳都要接固定電平,通過1k電阻接高電平或接地。
四、上拉電阻阻值選擇原則
1) 從節約功耗及芯片的灌電流能力考慮應當足夠大;電阻大,電流小。
2) 從確保足夠的驅動電流考慮應當足夠小;電阻小,電流大。
3) 對於高速電路,過大的上拉電阻可能邊沿變平緩。綜合考慮以上三點,通常在1k到10k之間選取。對下拉電阻也有類似道理。
4) 對上拉電阻和下拉電阻的選擇應結合開關管特性和下級電路的輸入特性進行設定,主要需要考慮以下幾個因素:
a) 驅動能力與功耗的平衡。以上拉電阻為例,一般地說,上拉電阻越小,驅動能力越強,但功耗越大,設計是應注意兩者之間的均衡。
b) 下級電路的驅動需求。同樣以上拉電阻為例,當輸出高電平時,開關管斷開,上拉電阻應適當選擇以能夠向下級電路提供足夠的電流。
c) gaodidianpingdesheding。butongdianludegaodidianpingdemenkandianpinghuiyoubutong,dianzuyingshidangshedingyiquebaonengshuchuzhengquededianping。yishangladianzuweili,dangshuchudidianpingshi,kaiguanguandaotong,shangladianzuhekaiguanguandaotongdianzufenyazhiyingquebaozailingdianpingmenkanzhixia。
d) 頻率特性。以上拉電阻為例,上拉電阻和開關管漏源級之間的電容和下級電路之間的輸入電容會形成RC延遲,電阻越大,延遲越大。上拉電阻的設定應考慮電路在這方麵的需求。
5) guanyudianzudecanshubunengyigaierding,yaokandianluqitacanshuerding,birutongchangyongzaishurujiaoshangdeshangladianzuruguoshiweiletaigaofengfengzhi,jiuyaocankaogaiyinjiaodeneizulaidingdianzuzhide!
6) 一般LED的電流有幾個mA就夠了,最大不超過20mA,根據這個你就應該可以算出上拉電阻值來了。
7) 對於驅動晶體管,又分為PNP和NPN管兩種情況:
a) 對於NPN:毫無疑問NPN管是高電平有效的,因此上拉電阻的阻值用2K~20K之間的。具體的大小還要看晶體管的集電極接的是什麼負載,對於LED類負載,由於發管電流很小,因此上拉電阻的阻值可以用20k的,但是對於管子的集電極為繼電器負載時,由於集電極電流大,因此上拉電阻的阻值最好不要大於4.7K,有時候甚至用2K的。
b) 對於PNP管:毫無疑問PNP管是低電平有效的,因此上拉電阻的阻值用100K以上的就行了,且管子的基極必須串接一個1~10K的電阻,阻值的大小要看管子集電極的負載是什麼,對於LED類負載,由於發光電流很小,因此基極串接的電阻的阻值可以用20k的,但是對於管子的集電極為繼電器負載時,由於集電極電流大,因此基極電阻的阻值最好不要大於4.7K。
8) 對於驅動TTL集成電路,上拉電阻的阻值要用1~10K之間的,有時候電阻太大的話是拉不起來的,因此用的阻值較小。但是對於CMOS集成電路,上拉電阻的阻值就可以用的很大,一般不小於20K,通常用100K的。
9) 關於I2C的上拉電阻:因為I2C接口的輸出端是漏極開路或集電極開路,所以必須在接口外接上拉。上拉電阻的取值和I2C總線的頻率有關,工作在standard mode時,其典型值為10K。在FAST mode時,為減少時鍾上升時間,滿足上升時間的要求,一般為1K。電阻的大小對時序有一定影響,對信號的上升時間和下降時間也有影響。總之一般情況下電壓在5V時選4.7K左右,3.3V在3.3K左右.這樣可加大驅動能力和加速邊沿的翻轉
五、GPIO及上下拉電阻實戰
1、進階題:無法輸入低電平問題
我們仍然以文首的問題為例,入門題不舉,上述已經有答案。看進階題。驅動工程師將GPIO的輸入配置成上拉模式(其實是出廠默認模式,驅動工程師不知道要修改。),U1關閉時,A電電平為高,U1導通時,A點電壓VA=5*R3/(R3+R5)=3V,依然是高電平,所以該配置無法輸入低電平。

圖6 :PLC開關量輸入上拉配置時等效電路圖
將GPIO的輸入模式配置成下拉時,U1關閉時,A點的電壓VA=5*R5/(R3+R4+R5)=電電平為高,U1導通時,A點電壓VA=5*R3/(R3+R5)=2.8V,雖然是屬於高電平的,但是屬於危險區域。如果將GPIO配置成懸空模式時,U1關閉時,A點電壓VA=5V,U1導通時,A點電壓VA≈0.6V,為低電平,功能正確。

圖7:PLC開關量輸入下拉配置時實際等效電路圖
2、高級題:上電瞬間輸出脈衝問題
經過與驅動工程師溝通,他沒有在驅動層配置該引腳為模擬量輸出,該引腳默認為輸入,且是內置上拉,待cpu跑起來以後,才由應用程序配置該引腳為模擬量輸出引腳。導致上電瞬間,程序沒有跑起來,由於內置的上拉電阻原因,輸出一個400ms左右的脈衝。後來在驅動層將該引腳配置為模擬量輸出,並且禁用上拉功能,問題解決。
3、骨灰題的原因級解決辦法
其實這個EMC的問題和上下拉電阻又扯上關係了,如下圖8所示,MSP430內部可以配置上拉或者下拉(通過熔絲的方法),阻值也可以配置,但是我們不要忽略一件事情:changjiatigongdezhexieshangxialadianzu,zhinengbaozhenggongnengxing,qishangxialadianzudefengzhuangshixiangdangxiaode,gonglvshixiangdangxiaode,genbenwufatigongdanengliangdeshifangtongdao,buranchangjiayebuhuijianyi,weilefangzhiESD和EMI的破壞,增加外部的較小的下拉電阻。下圖8中,高端版智能電表因為外接了顯示屏,顯示屏可以提供大部分的ESD泄放通道,所以沒有損壞到MCU的端口。低端版因為沒有顯示器,所有的ESD衝擊都需要通過內部電路泄放,內部最脆弱的部分就首先被破壞。低端版解決的辦法就如圖9所示,增加外部的低阻抗的電阻到地,絕大部分的能量都通過下拉電阻泄放的地平麵上,從而保護MCU的內部電路。

圖8:帶顯示的智能電表等效原理圖

圖9:低阻抗電阻提供一個幹擾信號的釋放通道
六、後記
GPIO引腳以及上下拉電阻,看似簡單,實際上幾乎所有的電子行業從業人員都吃過這個虧,包括硬件、驅動、軟件工程師,如果你了解內部的原理,犯錯的幾率就會大大降低。希望本文對你有用。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻



