2015年12月7日 星期一

GPIO Open Drain?



GPIO 表示此pin可設定為 output 或 input。

GPIO 設為output mode


若設為output 表示此pin有 source或sink 電流的能力 。表示若pin設成High,可以成為電流輸出的來源端(Source); 若pin設成Low,可以成為電流流入的汲端(sink)。

GPIO的邏輯方塊圖



若手冊上說明此為pin 為open drain, 表示此pin僅能作為電流流入的sink (如下圖, 將Port Latch Data 設定為low狀態)。同樣的, 如下圖, 將Port Latch Data 設定為high狀態,因為drain端為open, 沒有連接電源,故無法作電流的輸出來源端, 。因此,若drain端為open, 欲輸出為high 的狀態, 則要加上提升電阻(pull up resister) 接到電源才行 (這才有具備電流輸出能力)。

那為什麼要設計open drain呢? 因為連接到電源端,可以你自己決定要接到多大的電源, 以決定電流的大小。因為可能你要控制的設備,其驅動電流要比較大。



 pin 為Open-Drain Output (Drain 為open)

GPIO 設為input mode

 若設定為input 則pin為 floating 狀態, pin反應外部high/low的狀態。一般IC 內部設計pin為Hi-Z(High Impedance)高阻抗的狀態。也就是輸入pin的內阻很大。

V_pin = V_signal x Z_pin / (Z_source + Z_pin) 

V_signal為外部訊號, 若V_pin要完美得到V_signal, 則Z_pin須遠大於Z_source。

另外,因為內阻很大, 也使得流入電流極小(I_input=0)。







沒有留言 :

張貼留言