|
本帖最后由 超級狗 于 2013-2-28 00:12 编辑
* G" I$ ]9 O- q9 Z# \/ K$ [0 @! Z, n1 `
I2C 的雙向架構是由兩個部份所構成,送的部份是一個 Open Collector 或 Open Drain 線路;收的部份則是一個 CMOS Input線路和前述的 Open Collector 或 Open Drain 線路並接在一起。
! v8 {3 [( p5 k% J0 X" [
* X0 ~/ n" o2 F9 Z( U3 \# g當你不給電時,Open Collector 或 Open Drain 的電晶體(Transistor)Gate 沒有電壓,電晶體有可能處於半開或全開的狀態。# J: Q1 [4 Q% j5 d
5 o( S2 f: r- K" A x
另一方面 CMOS 線路沒電時,電晶體(Transistor)Gate 沒有電壓,電晶體也是可能處於半開或全開的狀態。* P. T" K G# m$ s$ Y% f* Y
. {, d6 h8 ?8 m0 c# b; [, b* k, F如果你的問題是其它 2 個 I2C Device 給電就不會發生,那就應該是漏電把電位(Voltage Level)拉低的。
& M2 R) y; D# v1 [" _1 O# x$ u! {& }3 V6 W% V
任何 IC 如果沒特別說明不給電時 I/O 腳位是高阻抗(Hi-Z 或 High Impedance)狀態,都有可能會透過 I/O 接腳造成漏電。
; _0 T: n0 s/ x$ n' M
3 Z& Y( x- u$ j& E8 g- r( M如果你的設計為了省電,會有部份系統斷電(Partial System Power Off)的需求,一般我們的解法是去找一顆有電源隔離(Power Isolation)Buffer 或 Level Translator 把 Bus 兩端的 Device 隔開。% o0 ^) L, b. e+ l2 y# Y
* N. E. u9 X) c% I5 o0 e0 w* W l- n) [9 m( ~所謂有電源隔離(Power Isolation)的 IC,是這種 IC 會個別吃兩端系統的電源,當任一邊的電源消失時,IC 所有的I/O 接腳都會變成高阻抗(Hi-Z 或 High Impedance)狀態,這樣就可以防止漏電的情況發生。
" t& `/ @1 O2 y( \4 W! g/ ^* e
/ |0 h3 g% h. b6 u7 i詳細您可參照TI I2C Level Translator TXS0102 的 Datasheet!
, u0 b" Q- H; D2 Y4 a
% K5 I, M/ z; `( _6 uhttp://www.ti.com/lit/ds/symlink/txs0102.pdf! F" ^; Y8 b( n2 W: f. S _, _2 V
5 {1 ?9 Y. o! T! d. R. @
{:soso_e176:}
' T* R9 A6 e' T# M. J0 k% Y, x# y8 p( ^& K
|
|