痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 52900|回復: 10

I2C雙向信號Level shift 5V 3V3轉換電路

[複製鏈接]
發表於 2011-9-21 22:05:21 | 顯示全部樓層 |閱讀模式
本帖最後由 SIMON1016 於 2011-9-21 09:08 PM 編輯

I2C雙向信號Level shift 轉換電路
I2C   5V    3.3V   雙向信號Level 轉換電路
=================================  
玩I2C bus 的朋友  也許會遇上 各晶片使用不同 Vcc ( 5v 和 3.3v)
為使信號Level 得以適當轉換  有幾種方法
    有Master 5V bus輸出 串電阻加二極體clamp箝位到3.3vcc
         再接入3.3vcc slave I2C bus
    不惜以dc 緩衝作信號Level 轉換 可惜不能雙向
         在單向控制時 ( master 只管丟  對slave不聞不問)
            例如 audio 前級音質音量控制
             http://www.princeton.com.tw/down ... nload=PT2313E_s.pdf

   可是怕什麼來什麼   應用中有時要類似讀取 slave 狀態值 偏偏Vcc又不同體係
   為此可愛的philips NXP 提供一較為小巧電路實現雙向信號Level 轉換

本文在此解說市面上應用最多的基本型電路
原文件中有基於此原型發展更多電路
philips NXP 的原廠連結:
舊版 講的囉嗦一些
http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf

新版 直接精簡剩基本型
http://www.nxp.com/documents/application_note/AN10441.pdf


==================================================

基本型 :

5V_3V3 Level Shift

5V_3V3 Level Shift


T1 和 T2  為SOT-23小型封裝 N-ch   MOSFET
   市面上2N7002  SN7002N 應該不缺貨

2N7002/NDS7002A    http://www.fairchildsemi.com/ds/2N/2N7000.pdf
SN7002N
http://www.infineon.com/dgdl/SN7 ... 7950112b42f56824b3b

替換條件
   小型MOS 應該都能有Low Vgs 導通DS 的能力  
   高速開關 (為適應I2C BUS 速度)
   DS有二極體 ( 沒有就 自己外接1N4148 囉)
   耐壓/電流?? 不拘吧!小數位信號傳輸而已
=================================
MOS如架橋連結 3.3V 與 5V 兩個區塊

3.3 V 體係 device 使用 SAD1 / SCL1
5   V 體係 device 使用 SAD2 / SCL2

T1和 T2 工作原理相同 以下就T1 作分析
MOS_G 接 VDD1=3.3V
MOS_S 接 SDA1  並且用電阻 Pull high 3.3 V
MOS_D 接 SDA2  並且用電阻 Pull high 5  V
==================================  
I2C BUS 三種狀態工作原理
(A) bus 信號level 為high level
(B) 3.3V device 發送信號 low
(C) 5  V device 發送信號 low

(A)
I2C bus 在空閒無資料傳輸時 規定各device的 bus 信號level 為high level
或是各device的 bus 信號level 為high level 時

因此SDA1 (MOS_S)  接有 Pull high 3.3 V
   所以 MOS_G 到 MOS_S  電壓差為0V  MOS DS 為 OFF
因此 MOS_D (5V ) 與 MOS_S (3.3V) 互不影響
   MOS_D SDA2 也是high 5  V

(B) 3.3V Device 發送信號 low
Device SDA1 發送信號 low  MOS_S 被拉下為low
    所以 MOS_G 到 MOS_S  電壓差為3.3 V  MOS DS 導通
因此 [ MOS_D  Pull high 5 V ]   經過   [ MOS_S ]  被   [Device SDA1] 拉下為low
    SDA2被拉下為low
   得到 SDA1 主動low時  可以把   SDA2拉下為low

(C) 5 V Device 發送信號 low
Device SDA2 發送信號 low  MOS二極體導通  使 SDA1 被拉下為low

    **********************
        low信號發送端時  必須承受 2 組 PULL HIGH 的電流
        前面提到的 1N4148 不妨先預留位置  將來零件代用時  置啄空間較大

評分

6

查看全部評分

發表於 2011-9-22 20:51:06 | 顯示全部樓層
學習了,很詳細的解說,謝謝分享!
發表於 2011-9-22 22:05:45 | 顯示全部樓層
這個連結文章也可參考看看:Two transistor circuit replaces IC,我曾稍做修改只取單方向用在 +5V to +12V 之間的傳輸。:)
 樓主| 發表於 2011-9-23 01:01:34 | 顯示全部樓層
本帖最後由 SIMON1016 於 2011-9-23 12:40 AM 編輯
skyboat0520 發表於 2011-9-22 09:05 PM static/image/common/back.gif
這個連結文章也可參考看看:Two transistor circuit replaces IC,我曾稍做修改只取單方向用在 +5V to +12V ...


用電晶體~不錯優!!  零件更好找!!
原電路也是使用在  3.3V <==> 5V
TR_Level_Shift.jpg

----------------------------------------------
[純技術交流...無冒犯之意]
但是用到 +5 V(原3.3) <==> +12V (原5V)
要小心 小信號電晶體的 VEBO  都很低地 ~~ 5~6V 吧
圖上  下方電晶體
若是 E射極 於 12V 端  
        B極 為使上方電晶體低壓端能ON-OFF  於是串電阻接5V端
那麼 VEBO  就要超過嘞

我猜你說[只取單方向用 ] 因該是只取上方電晶體 下方電晶體捨棄不用  
我是覺得下方電晶體改成1N4148就可以
當然!要先看12V DEVICE LOW的LEVEL +二極體電壓 決定夠不夠


2SC945  VEBO  5V  (手邊資料是NEC的)
常用高速 有2N2222/2N3904   VEBO  6V
2N3904.jpg


+5 V <==> +12V 使用MOS 時 就不會有這種問題
2N7002  VGS   +- 20V
2N7002.jpg






發表於 2011-9-23 09:28:29 | 顯示全部樓層
本帖最後由 skyboat0520 於 2011-9-23 09:29 AM 編輯

感謝指教!所以才須 "稍做修改",剛才回頭去找那電路,是 +5V to +15V,也只需要單向傳輸,貼上來參考看看:

http://i175.photobucket.com/albums/w144/skyboat_TW/SWBOX_CTRL_INPUT.png
發表於 2011-9-23 11:55:13 | 顯示全部樓層
看起來很專業,感謝分享,努力學習中
發表於 2011-10-26 23:57:37 | 顯示全部樓層
"low信號發送端時  必須承受 2 組 PULL HIGH 的電流"

那請問,如果在3.3v端的low level 有1v的電壓時,是否就代表3.3v與5v兩端的 PULL HIGH電流太強,而解決方式是否就加大pull high電阻?謝謝。
 樓主| 發表於 2011-10-27 01:54:40 | 顯示全部樓層
本帖最後由 SIMON1016 於 2011-10-27 01:36 AM 編輯
gamepower68 發表於 2011-10-26 10:57 PM static/image/common/back.gif
"low信號發送端時  必須承受 2 組 PULL HIGH 的電流"

那請問,如果在3.3v端的low level 有1v的電壓時,是 ...



是的!! 解決方式是加大pull high電阻(減少電流)

================我是分格線=================

DDC-3V3.jpg
上圖截自  論壇顯卡版區內一份顯卡電路圖Page17/21   
ATI RV350 Radeon 9600 維修電路圖
http://bbs.pigoo.com/thread-32551-1-1.html

5V 和3.3V  的2 組 PULL HIGH 的電阻  就先參考看看

原圖 顯示用來 讀取  顯示DVI的EDID 資料(又稱 DDC DATA )  
在顯示器DVI的EDID IC 是使用3.3V  


3.3V 端的low level 有1v的電壓時
要從兩個地方 考慮  
1) 承受PULL HIGH 的電阻電流   此點看3.3V 這顆IC 該端腳電氣規格的 Low level 的電流
  用MicroChip  24LC16B    http://ww1.microchip.com/downloads/en/devicedoc/21703d.pdf
24LC16B.jpg
I OL   3mA @ 2.5V   ( 2.5V ?  其他未明  因此 就自己捉些餘裕)

2) 3.3V 這類IC多數是CMOS IC  , Low level  低於 0.3 (Vcc) 就算OK  ,    除非另有說明

  不過有遇過高速資料讀取寫入時
  小筆資料OK  
    大筆資料不定時出問題 寫入時更糟
    2-1)  此時除了Vcc電容做改IC電源改善 之外
    2-2)  要做取捨  LOW LEVEL & 昇降波形陡峭 到 讀取寫入時間  
    2-3)  不同製造商效能不同  有時更換代用時  讀取寫入極限速度是一定要測試  然後回來降低速度保留設計餘裕

** 因此IIC 400KHz 在這種應用是不大可能 光MicroChip  24AA16/24LC16B    就自己舉手
(見DATA-SHEET PAGE-1) 24LC16B-2.jpg
發表於 2011-10-27 22:52:18 | 顯示全部樓層
嗯嗯,又多了了一些資料,感受大大指教,謝謝。
發表於 2011-10-27 23:08:55 | 顯示全部樓層
gamepower68 發表於 2011-10-27 10:52 PM static/image/common/back.gif
嗯嗯,又多了了一些資料,感受大大指教,謝謝。

咦!你這個頭像很眼熟,我到底在那裡看過這個漂亮咩咩?難不成她就是傳說中的烏骨雞學姐?
發表於 2011-10-29 00:12:14 | 顯示全部樓層
呵,其實這個頭像是AV女優:星野美優的圖像啦,後來好像被很多網站拿來當交友妹的頭像!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-5-3 03:10 AM , Processed in 0.071278 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.