|
本帖最后由 超級狗 于 2013-2-28 00:12 编辑
. b& _" L _8 x0 q( n7 M2 d) P( W2 ~4 Y/ D2 g
I2C 的雙向架構是由兩個部份所構成,送的部份是一個 Open Collector 或 Open Drain 線路;收的部份則是一個 CMOS Input線路和前述的 Open Collector 或 Open Drain 線路並接在一起。# ^- H9 Q) z8 u. `" Z% @- x
* e1 v: m$ w$ L當你不給電時,Open Collector 或 Open Drain 的電晶體(Transistor)Gate 沒有電壓,電晶體有可能處於半開或全開的狀態。$ |5 N/ J$ ~5 H. x5 S% G- o
% `9 l {7 f2 \/ P另一方面 CMOS 線路沒電時,電晶體(Transistor)Gate 沒有電壓,電晶體也是可能處於半開或全開的狀態。
3 u& p5 Q& @+ o, ^; q/ @7 p/ g' a" y9 q) {5 ~
如果你的問題是其它 2 個 I2C Device 給電就不會發生,那就應該是漏電把電位(Voltage Level)拉低的。- }: u. o; i8 |2 ^' m
5 `. N3 U4 t4 S, F" T) V Y任何 IC 如果沒特別說明不給電時 I/O 腳位是高阻抗(Hi-Z 或 High Impedance)狀態,都有可能會透過 I/O 接腳造成漏電。' g, j8 H9 a5 P3 F% F9 a
; K' `# i% Q9 Q& G5 c( ~
如果你的設計為了省電,會有部份系統斷電(Partial System Power Off)的需求,一般我們的解法是去找一顆有電源隔離(Power Isolation)Buffer 或 Level Translator 把 Bus 兩端的 Device 隔開。
6 w- Z5 E- B9 X8 p- y
: w; I* T; a: @) h所謂有電源隔離(Power Isolation)的 IC,是這種 IC 會個別吃兩端系統的電源,當任一邊的電源消失時,IC 所有的I/O 接腳都會變成高阻抗(Hi-Z 或 High Impedance)狀態,這樣就可以防止漏電的情況發生。
0 d/ {. S( L; m7 ^' g
2 t" t9 \9 J7 ]" {詳細您可參照TI I2C Level Translator TXS0102 的 Datasheet!4 ^7 y3 b: f) V1 T1 L4 z
) }& v9 @. a6 o6 n$ ~
http://www.ti.com/lit/ds/symlink/txs0102.pdf( B' h* \4 j0 r. Z0 [' C+ D7 z9 `
3 d+ a# t8 ^1 j3 m6 m b R4 b
{:soso_e176:} ; C1 u9 m5 ^1 ]- |( E
, [6 {" m1 b0 j; J5 N1 v# r/ O5 q
|
|