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