|
本帖最后由 超級狗 于 2013-2-28 00:12 编辑
! ?3 x c) V7 R4 L! }1 e9 s7 I4 S* h0 u1 o$ ]- e
I2C 的雙向架構是由兩個部份所構成,送的部份是一個 Open Collector 或 Open Drain 線路;收的部份則是一個 CMOS Input線路和前述的 Open Collector 或 Open Drain 線路並接在一起。
: n" ]" f% M9 T! J& Z9 l! A; B( R* X* Y
當你不給電時,Open Collector 或 Open Drain 的電晶體(Transistor)Gate 沒有電壓,電晶體有可能處於半開或全開的狀態。
0 p; S" Q4 d1 a1 y3 C' z6 C, Y
另一方面 CMOS 線路沒電時,電晶體(Transistor)Gate 沒有電壓,電晶體也是可能處於半開或全開的狀態。' m7 q, O& @+ Z) @ ?- p
2 ^* `: i! m5 u4 P, \% I$ b
如果你的問題是其它 2 個 I2C Device 給電就不會發生,那就應該是漏電把電位(Voltage Level)拉低的。
7 U1 B7 t" E1 A# S8 t2 L* c8 p9 U: ]2 S
任何 IC 如果沒特別說明不給電時 I/O 腳位是高阻抗(Hi-Z 或 High Impedance)狀態,都有可能會透過 I/O 接腳造成漏電。+ n7 R1 U7 P) s* b8 R
' ?0 v4 C# i4 q6 P' S- x0 `" n如果你的設計為了省電,會有部份系統斷電(Partial System Power Off)的需求,一般我們的解法是去找一顆有電源隔離(Power Isolation)Buffer 或 Level Translator 把 Bus 兩端的 Device 隔開。4 m5 U6 @! X2 ^
! E: [9 A( C; u+ A" ^+ X4 [
所謂有電源隔離(Power Isolation)的 IC,是這種 IC 會個別吃兩端系統的電源,當任一邊的電源消失時,IC 所有的I/O 接腳都會變成高阻抗(Hi-Z 或 High Impedance)狀態,這樣就可以防止漏電的情況發生。/ e7 v. u( m( w4 Z' V4 [* e
0 o; V+ ]% D" Q! A, b) }, e: X6 z% ?
詳細您可參照TI I2C Level Translator TXS0102 的 Datasheet!6 n4 V$ D$ z) O% x7 D. B" c1 y
" n+ Q- w. h0 p* Q+ G Ohttp://www.ti.com/lit/ds/symlink/txs0102.pdf
# z" {- v' i6 q& l) B9 f( h O8 g# c) t
{:soso_e176:}
/ O9 e/ B y, v5 H' Y% S7 j
2 f+ g1 O+ [9 N% N, E9 i) {5 q |
|