|
本帖最后由 超級狗 于 2013-2-28 00:12 编辑
) `/ h" R7 u* `; l! U* u: z+ o* X" _# n8 W9 l& f: m! z
I2C 的雙向架構是由兩個部份所構成,送的部份是一個 Open Collector 或 Open Drain 線路;收的部份則是一個 CMOS Input線路和前述的 Open Collector 或 Open Drain 線路並接在一起。
) o6 \( |% u ~& A# _* L" T
) ], i. {5 w: [' y$ T+ R; J, q6 P當你不給電時,Open Collector 或 Open Drain 的電晶體(Transistor)Gate 沒有電壓,電晶體有可能處於半開或全開的狀態。
4 O" o; J; D5 z) o4 V& G* B; x9 S* O. l2 C3 |
另一方面 CMOS 線路沒電時,電晶體(Transistor)Gate 沒有電壓,電晶體也是可能處於半開或全開的狀態。
. @5 a" R) [. S+ T5 _ s1 \7 Z
) T8 v# B, \6 T. M如果你的問題是其它 2 個 I2C Device 給電就不會發生,那就應該是漏電把電位(Voltage Level)拉低的。
. R6 O8 _) R' W. j9 {6 f3 E) P3 K9 U# u/ ]1 @0 @6 W
任何 IC 如果沒特別說明不給電時 I/O 腳位是高阻抗(Hi-Z 或 High Impedance)狀態,都有可能會透過 I/O 接腳造成漏電。
. E: A( m( ?9 i( w/ W9 E3 ^/ F+ h4 Z+ @) x/ A: Y+ h; \
如果你的設計為了省電,會有部份系統斷電(Partial System Power Off)的需求,一般我們的解法是去找一顆有電源隔離(Power Isolation)Buffer 或 Level Translator 把 Bus 兩端的 Device 隔開。
$ |3 p. {+ l. L5 R; ~, j; F I4 F! ~7 e
所謂有電源隔離(Power Isolation)的 IC,是這種 IC 會個別吃兩端系統的電源,當任一邊的電源消失時,IC 所有的I/O 接腳都會變成高阻抗(Hi-Z 或 High Impedance)狀態,這樣就可以防止漏電的情況發生。6 E0 |; ^- q* I0 x8 H i# f9 ?
# N/ r' ~/ v6 i. [& H詳細您可參照TI I2C Level Translator TXS0102 的 Datasheet!2 _$ k. \/ o+ h& b2 t K0 E
7 _7 y& C& J* Z. N( v( n) o
http://www.ti.com/lit/ds/symlink/txs0102.pdf; L2 h' w% C& j; \
5 [1 {0 r" G( m$ k{:soso_e176:} $ N2 y( w$ t1 S( j, ~" F
3 {% [( b' E6 ] ~" K) W% Y
|
|