2015年8月6日 星期四

用 MOFFET 2N7000 做 5V 與 3.3V 位準轉換

做完 DHT11 的基本測試後, 下一步便是如何將溫濕度資料放到物聯網伺服器 Thingspeak 上, 參考 :

初遇 IoT ( Internet of Thing, 物聯網 ) - 使用 Arduino 控制 ESP8266 無線模組

但是在連上 WiFi 之前還有一個工作要完成 : 5V-3.3V 位準轉換.  Arduino 一般工作在 5V, 它的 TX/RX 接腳不能直接與 ESP8266 的 TX/RX 相連, 否則可能會使 ESP8266 燒毀. 雖然我的 Arduino Pro Mini 可以在 3.3V 工作, 但考量 DHT11 或 PIR 感測器都是 5V 運作的, 所以還是做個 5V-3.3V 位準轉換器來介接好了.

露天有現成的位準轉換板, 價格為 $72, 參考 :

# 四通道雙向邏輯電壓準位(適用1.8V,2.8V,3.3V,5.0V )轉換模組(支援 I2C, SPI, 一般邏輯準位) $72

此板使用 N 通道 MOSFET (金氧半場效應電晶體) BSS138 作為開關, 我是用昨天向 ic_shopping 買的 2N7000 來做, 參考 :

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

icshopping 5 顆賣 11 元, 平均一顆不到 3 元, 還蠻便宜的 :

# 2N7000 (TO-92) N通道 60V 400mA 1.2Ω MOSFET場效管(現貨) $3
# 2N7000 TO-92 N-Channel $8
# 《icshopping_com》2N7000TA TO-92 (5pcs) $11

2N7000  接腳如下圖, 從正面 (平面) 看, 最左邊是源極 (Source), 中間是閘極 (Gate), 最右邊是汲極 (Drain) :


位準轉換器的電路圖如下, 為了麵包板佈線方便, 我把電源方向調換了, 但 2N7000 是雙向開關, 所以功能不變. 右邊是單一通道的電路圖 (我是用 SchemeIt 畫的), 左邊是使用兩個 2N7000 與四個 4.7K 上拉電阻依右側線路圖連接而成的兩通道的位準轉換器, 上方是 5V 電源, 下方是 3.3V 電源, 2N7000 左右兩個接腳就是信號輸出入端 (VL 為 3.3V 低壓端, VH 為 5V 高壓端) :


學校電子學教過 MOSFET 的原理, 但印象已不深. 搜尋了網路資料溫習一下, 其實此電路原理很簡單. 當 VL=3.3V 時, FET 的 G 與 S 極都是 3.3V, 所以不會感應出 N 通道, 亦即電晶體不導通, VH 輸出 5V; 當 VL=0V 時, FET 的 S 極接地, 而 G 極為 3.3V, 會感應出 N 通道, FET 導通, 所以 D 極相當於與 S 極接在一起, 變成 0V, 反之若將 VH 當輸入, 當 VH=5V 時, D 極為 5V, G 極為 3.3V, 逆電壓造成 N 通道無法建立, FET 不導通, 所以 VL 會輸出 3.3V; 當 VH=0V 時, G 與 D 極之間為 3.3V 正壓差, 會感應出 N 通道使 S-D 導通, VL 輸出 0V.


分別將 VL 與 VH 當輸入, 接 0/3.3V 或 0/5V, 測量結果與理論相符, 證實此乃雙向的 I2C 電壓位準轉換器. 注意喔, 2N7000 的源極 S 要接低壓 3.3V 側, 而汲極 D 應接高壓 5V 側, 參考 :

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

其實 5V-3.3V 位準轉換器也可以使用 74LVC245 晶片 (8 通道), 不過單價較高, 例如 Proteus 的賣場一顆是 52 元 :

74LVC245 - 八通道邏輯 ( 3V3, 5V ) 電壓準位轉換晶片 $52

此晶片提供 8 通道位準轉換, 而 Arduino 與 ESP8266 連接時只需要將 RX, TX 兩條線轉成 3.3V 準位而已, 所以使用一顆 74LVC245 似乎有點浪費. 還有一顆 74HC4050D 可代替 74LVC245, 比較便宜 NT$13, 但只有 SMD 封裝 (參考) :

# 《icshopping_com》74HC4050D $13

以上都是雙向電平轉換, 如果只是單向, 也可以用光耦合來做, 參考 :

# Simplest uni-directional level shifter (3.3V -> 5V)

可以使用 PC817/EL817/FL817 IC :

# PC817 DIP4 光耦合電晶體 光耦合IC 隔離控制 EL817 FL817 $2

20151003 補充 :

參考 :

2 cent TTL Level Shifter - connect a 3.3V Pi to 5V TTL serial device or Arduino and more...

20160815 補充 :

今天在 Youtube 看到有人用 TI 的 CD5060 這顆緩衝器 IC 來做 5/3.3 位準轉換 :

https://www.youtube.com/watch?v=qU76yWHeQuw


# **東順網路** TEXAS IC CD4050BE $10

2017-04-27 補充 :

也有貼片式的 2N7002, 參考 :

# 2N7002 VISHAY SOT-23(10個)【3680105001354】電晶體.MOSFET $11


2020-06-13 補充:

感謝匿名網友留言, 關於 VH=0 時 MOS 導通是因為 BODY DIODE 的關係, 參考 :

http://140.120.11.1/semicond/handout/chap4.pdf


3 則留言 :

Hughes 提到...

電路運作部分講解的非常詳細!感謝分享:D

匿名 提到...

VH=0, 靠的是body diode 導通,沒有Vgd這東東

小狐狸事務所 提到...

感謝您, 我再行修正.