1. 程式人生 > 其它 >IO輸出,上拉下拉電阻,圖騰柱,線與

IO輸出,上拉下拉電阻,圖騰柱,線與

在講上拉下拉之前先,先講講什麼是強1強0,高阻態,弱1弱0;

   圖一

如圖可見:所謂強1,就是output直接接到vcc上,這樣可以保證output後的器件的高電平識別門限,輸出電平邏輯可以保證為1;同理,強0,就是直接接地,這樣可以保證輸出電平邏輯可以保證為0;高阻態即處於斷開狀態;(如果兩個開關同時閉合,output到底是1還是0?理想的vcc接哪哪裡就是vcc,理想的vss接哪哪裡就是0v,vss也是電源,vcc是相對於vss而言的,沒有vss就沒有vcc,所以同時閉合兩個開關的結果就是看vcc先壞掉,還是vss先壞掉)

 圖二 

 圖三   

圖二(a)即為弱0輸出,即vcc和output之間有個電阻,為什麼說是弱0呢,因為當出現圖二(3)的情況時,output的值很可能會大於緩衝器的識別門限的上限,從而造成邏輯電平錯誤,當然,vcc和output之間的電阻值越小,出錯的可能就越小,但這是以犧牲功耗為代價的;弱1輸出同理;

微控制器的IO輸出分為三種:圖騰柱,上拉電阻輸出,下拉電阻輸出

1、圖騰柱,又叫推輓、推拉、push and pull ,totem pole。

就是圖一所示,它的輸出都是強1強0;圖騰柱的配置如下:

  圖四 

兩個IO口相連線,輸入暫存器PmDIR.1設為輸出方向,PmDIR.2設為輸入方向(高阻態),因為輸出方向只有兩個值0或1,所以圖騰柱要麼接vcc,要麼接vss,如果都設 為輸出方向,如果輸出有翻轉,勢必會出現(b)的情況,燒壞裝置。

2、下拉電阻:就是圖二所示情況,屬於強1弱0輸出,在vcc等電位情況下,兩IO相連線永遠不會出現短路;

3、上拉電阻:就是圖三所示情況,屬於弱1強0輸出,在vcc等電位情況下,兩IO相連線永遠不會出現短路;

上拉電阻的應用:

a、兩種供電電壓器件之間的匹配;

b、實現線與;

如果器件1的輸出接到器件2的輸入,但是vcc1不等於vcc2,此時器件1高電平一般是不能直接送給器件2的(vss可以,因為都是0v),按圖方式連線,等價於圖三(c),相當於器件2自己使用自己的兩個IO口進行資料傳輸,這種方式也稱為集電極開路輸出(oc輸出)或者漏極開路輸出(OD輸出),區別在於使用的是三極體還是場效電晶體;

所謂線與,就是用線實現與的功能。如圖所示連線,任一器件接地,公共匯流排端都為0,只有所有器件都不接地時,公共匯流排端才為1,這不就是實現了 

公共匯流排 = 器件1&&器件2&&器件3 麼?

線與邏輯可以檢視是否有其他器件在與本器件爭奪匯流排資源,廣泛應用於多機匯流排通訊。

最後來看msp430g2553的IO輸出方式;

msp430g2553的IO輸出方式為:圖騰柱型;

但它是可以設定上拉下拉電阻的,如下圖:

請注意,如圖上下拉電阻是並聯在圖騰柱上的,所以它的輸出只有強1強0。請不要覺得上下拉電阻並沒有什麼卵用?

PXREN是上下拉電阻使能暫存器,PXREN.m=1時,上圖開關閉合,PXOUT.m=1,連線到vcc,即設為上拉電阻。PXOUT.m=0,連線到vss,即設為下拉電阻;

好,我們來看看,上下拉電阻有什麼卵用——消除電平浮動。

如圖即為不設定下拉和設定下拉電阻的情況;不設定下拉電阻,在開關不閉合時,電平是浮動的;設定下拉後,即使開關不閉合,輸入端依舊可以獲得穩定的低電平;