2015年6月29日 星期一

使用 N-Channel MOSFET 做 I2C 電壓準位轉換電路

網頁最後修改時間:2016/08/03 更新
I2C 電壓準位轉換電路圖 (V0.2)
感謝網友 
Tad Chu 的提醒,修正 Q1 和 Q2 的接腳錯位問題

寫這網頁的主要目的:轉換兩個不同電壓之間通訊的準位,且是可雙向溝通的。

在 proteus 的 賣場 裡,販售的大多是 3V3 或是 5V 控制的電子零件,有時候因為控制訊號與微處理器之間電壓準位的關係,必須在兩者之間再加入準位轉換的模組才能正常通訊,但這大多用在單向通訊或是控制比較多。所以若是出現需要在同一支接腳實現收、或發的動作,例如 I2C 的 SDA 接腳,若不是需要很多支情形之下,上面的電壓準位轉換電路就是一個很好的選擇  !

所需的主要材料為:

  • 2  pcs  *  [ 2N7000, N-Channel MOSFET ], ( PDF, 英文 )
  • 4  pcs  *  [ 4K7, 1/4 W, 5% ]
  • 麵包板 ( 有就好,不一定要跟網頁中使用的一樣 )
  • 單芯線少許 ( 差不多 20 ... 30 公分就夠了 )
  • 雙頭單排排針與杜邦線 ( 視所接的東西準備就可以了 )

電路圖上的符號跟 2N7000 不太相同,別介意,意思到了就好 !

N-Channel MOSFET 不一定要使用 2N7000,拿手邊或是買的到的就可以了,除非使用的裝置數量多再考慮其他高規格的。

而電阻用 4K7 是因為 BMP180 資料手冊上的建議。因為是將此電路作為 I2C 來用,故每一個電壓準位端是兩兩成對,若需要做更換就一次換兩個,而數值可以參考裝置的資料手冊上的建議值或是 I2C 規範上的建議;只要通訊穩定的話,就可以不用去管它!

實際線路接法:

為了讓接線看起來清楚,麵包板上的接線顏色各代表:

  • 紅色:+5V
  • 綠色:GND
  • 黃色:+3V3
  • 黑色:SDA
  • 藍色:SCL

為了讓接線能夠切合實際的需要,我們使用 BMP180 作為目標裝置,轉換由 5V 微處理器或系統的 I2C 訊號為 3V3 電壓準位。當然!也可以使用其他需要轉換的裝置來做,我們只是需要知到要接到哪裡去而已。

2N 7000 TO-92 接腳的定義如下圖所示,

將 BMP180 與兩顆 2N7000 N-Channel MOSFET先插置到麵包板適當的位置

下圖,使用四根不一樣的線標示不同的插點功能,在麵包板的右上方是 +5V 電壓端,由左至右為:SDA、SCL、GND 與 +5V。

接上兩支 4K7 提升電阻到 +5V 輸入端


接上兩支 4K7 提升電阻到 +3V3 輸入端


連接 +5V 電壓端的 GND 線到 BMP180 的 GND

連接 BMP180 的 SDA 至左側 MOSFET 的 S 接腳

連接 +5V 電壓端的 SDA 至右側 MOSFET 的 D 接腳

連接 +5V 電源至 BMP180 的 VCC 接腳,不但可提供 BMP180 電源,經內部 LDO 降壓晶片,其最左邊 3V3 接腳可輸出 +3V3 的電源給 MOSFET 用

連接 BMP180 的 SCL 至左側 MOSFET 的 S 接腳

連接 +5V 電壓端的 SCL 至右側 MOSFET 的 D 接腳

MOSFET 需要 +3V3 的電源,連接左、右側 MOSFET 中間的 G 接腳至 BMP180 的 3.3 接腳


最後就完成了  I2C Level Shifter (  I2C 電壓準位轉換 ) 電路,左有兩側各代表 +3V3 電壓端與 +5V 電壓端

將 +5V、GND、SDA 與 SCL 接上右側的 +5V 輸入端,就可以開始與裝置通訊。如下圖為使用 BMP180 完成的  I2C 電壓準位轉換電路

使用這個電路在需要做單向或是雙向通訊電壓準位轉換上。而上面接用 BMP180 所完成的線路,可作為後續 BMP180 與 5V 微處理器系統的程式測試上。


若不想自己佈線的話,可以考慮到露天賣場購買!

看更多關於電壓準位轉換的模組

  • 四通道電壓準位轉換模組

  • LSF0204 四通道雙向多電壓準位轉換模組


.

2 則留言:

  1. 你好:

    反映個問題關於I2C 電壓準位轉換電路圖

    照理說3.3v那端要接SOURCE端 5v接DRAIN.

    您再看一下!
    打擾了!

    回覆刪除
    回覆
    1. 實際接線的部分是正確的,電路圖部分已經全部更正,真是謝謝你的提醒!

      刪除

留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !