兩個單片機(jī)由于電平不同,串口通信可能會失敗,這時(shí)候需要通過電平轉(zhuǎn)換電路來解決,本文給出了兩種方法,一種是通過三極管搭建,另一種是 MOS 管搭建,在硬件工程師的筆試中也經(jīng)常會出現(xiàn)這樣的題目。
3.3V 單片機(jī)和 5V 單片機(jī)通信的思路
MOS 管轉(zhuǎn)換電路
工作原理:
1、當(dāng) 3V3 單片機(jī)發(fā)送邏輯 1,即 3V3_TX=3.3V,Ugs=0V,MOS 管截止,5V_RX 通過 R2 上拉到+5V,5V_RX=5V;
2、當(dāng) 3V3 單片機(jī)發(fā)送邏輯 0,即 3V3_TX=0V,Ugs=3V,MOS 管導(dǎo)通,5V_RX 會被拉低,5V_RX=0V;
3V3_TX 發(fā)送給 5V_RX
那有人說了,5V 的數(shù)據(jù)怎么發(fā)送給 3V3 單片機(jī)呢?是不是將信號方向及電源更換即可,我們來看一下。
工作原理:
1、當(dāng) 5V 單片機(jī)發(fā)送邏輯 1,即 5V_TX=5V,Ugs=0V,MOS 管截止,3V3_RX 通過 R1 上拉到 3V3,3V3_RX=3.3V;
2、當(dāng) 5V 單片機(jī)發(fā)送邏輯 0,即 5V_TX=0V,Ugs=5V,MOS 管導(dǎo)通,3V3_RX 被拉低,所以 3V3_RX=0;
以上分析似乎合情合理,其實(shí)如下電路不可用,上面的第 2 點(diǎn)其實(shí)是沒有問題的,主要是第 1 點(diǎn),當(dāng) MOS 管截止時(shí),5V_TX 的 5V 電壓會經(jīng)過 MOS 管的體二極管到達(dá) 3V3_RX,使 3V3_RX 的電壓高于 3.3V(4V 多,取決于體二極管的導(dǎo)通壓降)。這樣的話,一方面 4V 多的電壓與 3.3V 有壓差,經(jīng)過 R1 電阻會有耗電;另一方面,4V 多的電壓也可能損壞 3.3V 單片機(jī)的 RX 管腳。
此電路不可用
利用仿真軟件仿真,可以看到 MOS 管截止時(shí),輸出是 4.44V,明顯高于 3.3V,驗(yàn)證了上述的觀點(diǎn)。
?
仿真上述不可用電路
那如何設(shè)計(jì) 5V 發(fā)送到 3.3V 單片機(jī)呢?其實(shí)也簡單,兩個器件搞定,如下是電路圖。
1、5V_TX=5V 時(shí),二極管 D1 截止,3V3_RX=3.3V;
2、5V_TX=0V 時(shí),二極管 D1 導(dǎo)通,3V3_RX≈0.6V;實(shí)際 3V3_RX 是多少,取決于 D1 的正向?qū)▔航?,因?yàn)橐玫礁偷碾妷海话?D1 選擇肖特基二極管,肖特基優(yōu)點(diǎn)就是導(dǎo)通壓降小。
5V_TX 發(fā)送給 3V3_RX
三極管轉(zhuǎn)換電路
工作原理:
1、當(dāng) 3V3 單片機(jī)發(fā)送邏輯 1,即 3V3_TX=3.3V,NPN 三極管截止,5V_RX 通過 R2 上拉到+5V,5V_RX=5V;
2、當(dāng) 3V3 單片機(jī)發(fā)送邏輯 0,即 3V3_TX=0V,NPN 三極管導(dǎo)通,5V_RX 會被拉低,所以 5V_RX=0V;
3V3_TX 發(fā)送給 5V_RX
利用三極管,5V 單片機(jī)發(fā)送給 3.3V 單片機(jī),是不是電源和信號互換就可以,和 MOS 管電路一樣,如下電路同樣不能用。
原因是當(dāng) 5V_TX 為 5V 時(shí),發(fā)射極反偏,但是 5V 通過電阻 R1 由三極管的基極到達(dá)三極管的集電極,造成集電極正偏,和 MOS 管電路一樣,使 3V3_RX 電壓高于 3.3V(4V 多),大家可以仿真一下,這里我就不仿真了。
此電路不可用
如下,給出了 5V 單片機(jī)向 3.3V 單片機(jī)發(fā)送的電路圖,用兩個 NPN 三極管搭建。
工作原理:
1、當(dāng) 5V 單片機(jī)發(fā)送邏輯 1,即 5V_TX=5V,Q1 導(dǎo)通,Q2 的基極被拉低,Q2 截止,所以 3V3_RX=3.3V;
2、當(dāng) 5V 單片機(jī)發(fā)送邏輯 0,即 5V_TX=0V,Q1 截止,Q2 導(dǎo)通,所以 3V3_RX=0V;
5V_TX 發(fā)送給 3V3_RX
可以看到,我并沒有畫兩個 NMOS 管搭建 5V 單片機(jī)向 3.3V 單片機(jī)發(fā)送的電路,其實(shí)將上圖中的三極管換成 NMOS 管,就能實(shí)現(xiàn),在實(shí)際的電路設(shè)計(jì)中,為減少成本,應(yīng)盡量考慮用較少的器件搭電路,所以一般就用二極管方案。