吴忠躺衫网络科技有限公司

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

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

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

GPIO的推挽輸出和開(kāi)漏輸出以及其優(yōu)缺點(diǎn)分析

MCU開(kāi)發(fā)加油站 ? 2018-01-05 15:31 ? 次閱讀

GPIO的功能,簡(jiǎn)單說(shuō)就是可以根據(jù)自己的需要去配置為輸入或輸出。但是在配置GPIO管腳的時(shí)候,常會(huì)見(jiàn)到兩種模式:開(kāi)漏(open-drain,漏極開(kāi)路)和推挽(push-pull)。

Push-Pull推挽輸出

輸出的器件是指輸出腳內(nèi)部集成有一對(duì)互補(bǔ)的MOSFET,當(dāng)Q1導(dǎo)通、Q2截止時(shí)輸出高電平;而當(dāng)Q1截止導(dǎo)通、Q2導(dǎo)通時(shí)輸出低電平。

Push-pull輸出,實(shí)際上內(nèi)部是用了兩個(gè)晶體管(transistor),此處分別稱為top transistor和bottom transistor。通過(guò)開(kāi)關(guān)對(duì)應(yīng)的晶體管,輸出對(duì)應(yīng)的電平。top transistor打開(kāi)(bottom transistor關(guān)閉),輸出為高電平;bottom transistor打開(kāi)(top transistor關(guān)閉),輸出低電平。Push-pull即能夠漏電流(sink current),又可以集電流(source current)。其也許有,也許沒(méi)有另外一個(gè)狀態(tài):高阻抗(high impedance)狀態(tài)。除非Push-pull需要支持額外的高阻抗?fàn)顟B(tài),否則不需要額外的上拉電阻

Open-Drain開(kāi)漏輸出

開(kāi)漏電路就是指以MOSFET的漏極為輸出的電路。指內(nèi)部輸出和地之間有個(gè)N溝道的MOSFET(Q1),這些器件可以用于電平轉(zhuǎn)換的應(yīng)用。輸出電壓由Vcc'決定。Vcc'可以大于輸入高電平電壓VCC(up-translate)也可以低于輸入高電平電壓VCC(down-translate)。

Open-drain輸出,則是比push-pull少了個(gè)top transistor,只有那個(gè)bottom transistor。(就像push-pull中的那樣)當(dāng)bottom transistor關(guān)閉,則輸出為高電平。此處沒(méi)法輸出高電平,想要輸出高電平,必須外部再接一個(gè)上拉電阻(pull-up resistor)。Open-drain只能夠漏電流(sink current),如果想要集電流(source current),則需要加一個(gè)上拉電阻。

老外的理解

常見(jiàn)的GPIO的模式可以配置為open-drain或push-pull,具體實(shí)現(xiàn)上,常為通過(guò)配置對(duì)應(yīng)的寄存器的某些位來(lái)配置為open-drain或是push-pull。當(dāng)我們通過(guò)CPU去設(shè)置那些GPIO的配置寄存器的某位(bit)的時(shí)候,其GPIO硬件IC內(nèi)部的實(shí)現(xiàn)是,會(huì)去打開(kāi)或關(guān)閉對(duì)應(yīng)的top transistor。相應(yīng)地,如果設(shè)置為了open-d模式的話,是需要上拉電阻才能實(shí)現(xiàn),也能夠輸出高電平的。因此,如果硬件內(nèi)部(internal)本身包含了對(duì)應(yīng)的上拉電阻的話,此時(shí)會(huì)去關(guān)閉或打開(kāi)對(duì)應(yīng)的上拉電阻。如果GPIO硬件IC內(nèi)部沒(méi)有對(duì)應(yīng)的上拉電阻的話,那么你的硬件電路中,必須自己提供對(duì)應(yīng)的外部(external)的上拉電阻。而push-pull輸出的優(yōu)勢(shì)是速度快,因?yàn)榫€路(line)是以兩種方式驅(qū)動(dòng)的。而帶了上拉電阻的線路,即使以最快的速度去提升電壓,最快也要一個(gè)常量的R×C的時(shí)間。其中R是電阻,C是寄生電容(parasitic capacitance),包括了pin腳的電容和板子的電容。但是,push-pull相對(duì)的缺點(diǎn)是往往需要消耗更多的電流,即功耗相對(duì)大。而open-drain所消耗的電流相對(duì)較小,由電阻R所限制,而R不能太小,因?yàn)楫?dāng)輸出為低電平的時(shí)候,需要sink更低的transistor,這意味著更高的功耗。(此段原文:because the lower transistor has to sink that current when the output is low; that means higher power consumption.)而open-drain的好處之一是,允許你cshort(?)多個(gè)open-drain的電路,公用一個(gè)上拉電阻,此種做法稱為wired-OR連接,此時(shí)可以通過(guò)拉低任何一個(gè)IO的pin腳使得輸出為低電平。為了輸出高電平,則所有的都輸出高電平。此種邏輯,就是“線與”的功能,可以不需要額外的門(mén)(gate)電路來(lái)實(shí)現(xiàn)此部分邏輯。

圖表 4 open-drain“線與”功能

優(yōu)點(diǎn)

Push-Pull推挽輸出

(1)可以吸電流,也可以貫電流;

(2)和開(kāi)漏輸出相比,push-pull的高低電平由IC的電源低定,不能簡(jiǎn)單的做邏輯操作等。

Open-Drain開(kāi)漏輸出

(1)對(duì)于各種電壓節(jié)點(diǎn)間的電平轉(zhuǎn)換非常有用,可以用于各種電壓節(jié)點(diǎn)的Up-translate和down-translate轉(zhuǎn)換

(2)可以將多個(gè)開(kāi)漏輸出的Pin腳,連接到一條線上,形成“與邏輯”關(guān)系,即“線與”功能,任意一個(gè)變低后,開(kāi)漏線上的邏輯就為0了。這也是I2C,SMBus等總線判斷總線占用狀態(tài)的原理。

(3)利用 外部電路的驅(qū)動(dòng)能力,減少I(mǎi)C內(nèi)部的驅(qū)動(dòng)。當(dāng)IC內(nèi)部MOSFET導(dǎo)通時(shí),驅(qū)動(dòng)電流是從外部的VCC流經(jīng)R pull-up ,MOSFET到GND。IC內(nèi)部?jī)H需很下的柵極驅(qū)動(dòng)電流。

(4)可以利用改變上拉電源的電壓,改變傳輸電平:圖表 5 open-drain輸出電平的原理,IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了。

缺點(diǎn)

Push-Pull推挽輸出

一條總線上只能有一個(gè)push-pull輸出的器件;

在CMOS電路里面應(yīng)該叫CMOS輸出更合適,因?yàn)樵贑MOS里面的push-pull輸出能力不可能做得雙極那么大。輸出能力看IC內(nèi)部輸出極N管P管的面積。push-pull是現(xiàn)在CMOS電路里面用得最多的輸出級(jí)設(shè)計(jì)方式

Open-Drain開(kāi)漏輸出

開(kāi)漏Pin不連接外部的上拉電阻,則只能輸出低電平。當(dāng)輸出電平為低時(shí),N溝道三極管是導(dǎo)通的,這樣在Vcc'和GND之間有一個(gè)持續(xù)的電流流過(guò)上拉電阻R和三極管Q1。這會(huì)影響整個(gè)系統(tǒng)的功耗。采用較大值的上拉電阻可以減小電流。但是,但是大的阻值會(huì)使輸出信號(hào)的上升時(shí)間變慢。即上拉電阻R pull-up的阻值 決定了邏輯電平轉(zhuǎn)換的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

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

    關(guān)注

    16

    文章

    1216

    瀏覽量

    52377
  • 開(kāi)漏輸出
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    7353
  • 推挽輸出
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    6533

原文標(biāo)題:GPIO的推挽輸出和開(kāi)漏輸出

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開(kāi)發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開(kāi)集、開(kāi)推挽輸出原理詳解

    為了讓同學(xué)們更加清楚的了解開(kāi)集、開(kāi)推挽輸出,今天我們就詳解這兩者之間的區(qū)別與應(yīng)用場(chǎng)景。
    發(fā)表于 06-21 13:53 ?9074次閱讀
    <b class='flag-5'>開(kāi)</b>集、<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b>與<b class='flag-5'>推挽</b><b class='flag-5'>輸出</b>原理詳解

    MCU引腳輸出模式中推挽輸出開(kāi)輸出電路原理區(qū)別

    MCU引腳輸出模式中推挽輸出開(kāi)輸出電路原理區(qū)別
    的頭像 發(fā)表于 10-31 16:48 ?1808次閱讀
    MCU引腳<b class='flag-5'>輸出</b>模式中<b class='flag-5'>推挽</b><b class='flag-5'>輸出</b>與<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>電路原理區(qū)別

    推挽輸出開(kāi)輸出

    推挽輸出開(kāi)輸出的區(qū)別 推挽輸出:可以
    發(fā)表于 11-18 22:05

    推挽輸出開(kāi)輸出有何差異

    1.推挽輸出使GPIO輸出高電平或者低電平主要寄存器為端口配置地寄存器和端口配置高寄存器,每四個(gè)位控制一個(gè)GPIO.2
    發(fā)表于 02-24 07:20

    GPIO實(shí)現(xiàn)推挽輸出開(kāi)輸出的關(guān)鍵是什么

    以STM32參考手冊(cè)中的GPIO輸出配置圖為例:看到輸出驅(qū)動(dòng)器虛線框中的內(nèi)容,輸出驅(qū)動(dòng)器中的P-MOS和N-MOS兩個(gè)MOS管就是實(shí)現(xiàn)推挽
    發(fā)表于 02-28 06:48

    STM32的GPIO知識(shí)點(diǎn):開(kāi)輸出推挽輸出

    推挽輸出”和“開(kāi)輸出”的模式。這里的電路會(huì)在下面很詳細(xì)地分析到。 TTL肖特基觸發(fā)器:信號(hào)經(jīng)
    發(fā)表于 12-22 18:10

    開(kāi)輸出_什么是開(kāi)輸出

    什么是開(kāi)輸出,開(kāi)輸出:OC門(mén)的輸出就是
    發(fā)表于 03-31 15:31 ?7412次閱讀

    開(kāi)輸出推挽輸出比較

    stm32 gpio 開(kāi)輸出推挽輸出的區(qū)別。
    發(fā)表于 05-19 15:32 ?16次下載

    STM32-GPIO端口模式配置--推挽開(kāi)

    上拉輸入、下拉輸入、浮空輸入、模擬輸入、推挽輸出開(kāi)輸出分析
    發(fā)表于 11-30 21:06 ?8次下載
    STM32-<b class='flag-5'>GPIO</b>端口模式配置--<b class='flag-5'>推挽</b>、<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b>等

    從硬件方面理解GPIO開(kāi)輸出推挽輸出

    最近在學(xué)STM32,看正點(diǎn)原子視頻中對(duì)開(kāi)輸出推挽輸出的講解視頻時(shí),發(fā)現(xiàn)原子哥對(duì)電路的講解有一些錯(cuò)誤,主要說(shuō)關(guān)于MOS管的開(kāi)關(guān)問(wèn)題,查了一晚上資料,終于想明白了,特意發(fā)個(gè)文章分享一下
    發(fā)表于 12-22 19:04 ?10次下載
    從硬件方面理解<b class='flag-5'>GPIO</b>的<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>和<b class='flag-5'>推挽</b><b class='flag-5'>輸出</b>

    GPIO推挽輸出開(kāi)輸出模式區(qū)別詳解

    以STM32參考手冊(cè)中的GPIO輸出配置圖為例:看到輸出驅(qū)動(dòng)器虛線框中的內(nèi)容,輸出驅(qū)動(dòng)器中的P-MOS和N-MOS兩個(gè)MOS管就是實(shí)現(xiàn)推挽
    發(fā)表于 01-13 16:24 ?19次下載
    <b class='flag-5'>GPIO</b><b class='flag-5'>推挽</b><b class='flag-5'>輸出</b>和<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>模式區(qū)別詳解

    STM32的GPIO的輸入,輸出開(kāi)推挽,上拉,下拉的關(guān)系

    STM32的GPIO的輸入,輸出開(kāi)推挽,上拉,下拉的關(guān)系
    發(fā)表于 01-14 14:45 ?25次下載
    STM32的<b class='flag-5'>GPIO</b>的輸入,<b class='flag-5'>輸出</b>與<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b>,<b class='flag-5'>推挽</b>,上拉,下拉的關(guān)系

    開(kāi)輸出推挽輸出

    在STM32或者GD32中,普通的輸出GPIO輸出方式主要是開(kāi)輸出
    的頭像 發(fā)表于 11-24 10:23 ?1.4w次閱讀
    <b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>和<b class='flag-5'>推挽</b><b class='flag-5'>輸出</b>

    推挽輸出開(kāi)輸出講解

    推挽輸出開(kāi)輸出講解
    的頭像 發(fā)表于 07-28 14:01 ?2146次閱讀
    <b class='flag-5'>推挽</b><b class='flag-5'>輸出</b>與<b class='flag-5'>開(kāi)</b><b class='flag-5'>漏</b><b class='flag-5'>輸出</b>講解

    什么是推挽輸出 開(kāi)輸出推挽輸出的區(qū)別

    什么是推挽輸出 開(kāi)輸出推挽輸出的區(qū)別?
    的頭像 發(fā)表于 08-31 10:21 ?2.4w次閱讀
    线上娱乐网站| 注册百家乐送彩金| 菲彩国际| 网上百家乐内幕| 百家乐官网是否有规律| 真人百家乐视频| 百家乐官网送錢平臺| 大发888出纳柜| 风水24山头| 网上百家乐官网投注法| 威尼斯人娱乐城首选大丰收| 百家乐平台凯发| 百家乐官网庄闲庄庄闲| 盈乐博娱乐城| 百家乐最新破| 梦幻城百家乐官网的玩法技巧和规则| 萍乡市| 鑫鼎百家乐的玩法技巧和规则| 真人百家乐官网做假| 金冠娱乐城最新网址| 百家乐赌场赌场平台| 网上的百家乐官网是真是假| 伟易博| 百家乐全部规则| 百家乐正网开户| 百家乐官网的桌布| 六合彩彩图| 钱隆百家乐大师| 巴厘岛百家乐官网的玩法技巧和规则 | 百家乐官网15人桌| 百家乐官网怎么开户| 大发888娱乐场 34| 百家乐的桌布| 最新百家乐官网的玩法技巧和规则 | 大发888备用地址| 赌场百家乐攻略| 百家乐官网台布哪里有卖| 乌鲁木齐县| 大发888移动版| 百家乐娱乐官网| 浩博百家乐娱乐城|