|
本帖最后由 超級狗 于 2013-2-28 00:12 编辑
( ^3 x& `# z& p& [" w0 o, \8 `/ L$ w& ~! [% N) i
I2C 的雙向架構是由兩個部份所構成,送的部份是一個 Open Collector 或 Open Drain 線路;收的部份則是一個 CMOS Input線路和前述的 Open Collector 或 Open Drain 線路並接在一起。/ p8 f9 [. w, b5 c
+ S& \" h! V4 v4 E2 R
當你不給電時,Open Collector 或 Open Drain 的電晶體(Transistor)Gate 沒有電壓,電晶體有可能處於半開或全開的狀態。
! I9 v! P7 L! j. B2 T, ^" M
* }1 c# _; R2 E2 y另一方面 CMOS 線路沒電時,電晶體(Transistor)Gate 沒有電壓,電晶體也是可能處於半開或全開的狀態。( ~4 [& S8 v b7 A/ F
$ i6 s' ?" A8 z: I, Z' a
如果你的問題是其它 2 個 I2C Device 給電就不會發生,那就應該是漏電把電位(Voltage Level)拉低的。' b5 @$ q: I+ s7 b& p7 p
2 ~1 x& e8 z. r- H2 W) }: ^1 ?3 {. q$ l任何 IC 如果沒特別說明不給電時 I/O 腳位是高阻抗(Hi-Z 或 High Impedance)狀態,都有可能會透過 I/O 接腳造成漏電。
- E# j P$ ~( T i: H0 P3 U4 m( o0 ^0 m" t: ? g. {
如果你的設計為了省電,會有部份系統斷電(Partial System Power Off)的需求,一般我們的解法是去找一顆有電源隔離(Power Isolation)Buffer 或 Level Translator 把 Bus 兩端的 Device 隔開。* {$ {9 Z4 ~( `$ K1 \- ?
) E- ~# I5 ]5 d$ r* u8 C1 h所謂有電源隔離(Power Isolation)的 IC,是這種 IC 會個別吃兩端系統的電源,當任一邊的電源消失時,IC 所有的I/O 接腳都會變成高阻抗(Hi-Z 或 High Impedance)狀態,這樣就可以防止漏電的情況發生。6 _1 O: H# w+ V3 S; P) l" U
& A, k, j+ p% P詳細您可參照TI I2C Level Translator TXS0102 的 Datasheet!
" W* D. X" \2 q4 N
: d0 h( j' _0 c/ Khttp://www.ti.com/lit/ds/symlink/txs0102.pdf
! K4 `! }& g. @5 U
( Y5 V5 L e* h' w2 p{:soso_e176:}
q; u" b( F4 F' a& `. R
+ ?: @$ [: g7 } |
|