電平轉換在電路設計中非常常見,因為做電路設計很多時候就像在搭積木,這個電路子產品,加上那個電路子產品,拼拼湊湊連起來就是一個電子産品了。而各電路子產品間經常會出現電壓域不一緻的情況,是以子產品間的通訊就要使用電平轉換電路了。
上圖是用MOS管實作的I2C總線電平轉換電路,實作3.3V電壓域與5V電壓域間的雙向通訊。挂在總線上的有3.3V的器件,也有5V的器件,通過這個電路,大家就可以愉快地玩耍聊天了。
實物對照圖如下。實物的上拉電阻用了4.7K歐姆,可以提供更大的電流驅動能力。在滿足電路性能的前提下,我喜歡用阻值更大的電阻,因為功耗更低更省電。
原理分析
簡化來看,留下I2C的一根線來分析就可以了,如下圖:
分四種情況:
1、當SDA1輸出高電平時:MOS管Q1的Vgs = 0,MOS管關閉,SDA2被電阻R3上拉到5V。
2、當SDA1輸出低電平時:MOS管Q1的Vgs = 3.3V,大于導通電壓,MOS管導通,SDA2通過MOS管被拉到低電平。
3、當SDA2輸出高電平時:MOS管Q1的Vgs不變,MOS維持關閉狀态,SDA1被電阻R2上拉到3.3V。
4、當SDA2輸出低電平時:MOS管不導通,但是它有體二極管!MOS管裡的體二極管把SDA1拉低到低電平,此時Vgs約等于3.3V,MOS管導通,進一步拉低了SDA1的電壓。
注:
低電平指等于或接近0V。
高電平指等于或接近電源電壓。是以3.3V電壓域的器件,其高電平為等于或接近3.3V;5V電壓域的器件,其高電平為等于或接近5V。
具體要求看晶片的資料手冊是怎麼說明這個限定範圍的,常見的比如說0.3倍的“晶片供電電壓”以下為低電平,0.7倍的“晶片供電電壓”以上為高電平。也就是說“晶片供電電壓”為5V的時候,5 x 0.3 = 1.5V 以下為低電平,5 x 0.7 = 3.5V 以上為高電平。
注意事項
以上是3.3V與5V之間的情況,如果換用其他電壓域之間的轉換,如3.3V、2.5V、1.8V等電壓值的兩兩之間,需要注意MOS管的Vgs開啟導通電壓。
給MOS管過高的Vgs會導緻MOS管燒壞!給過低的Vgs會導緻MOS管打不開!不同型号的MOS管這個參數值還不一樣!!!
舉例:其中一個廠家生産的2N7002的資料手冊,Vgs不能超過正負20V
再來看一下,設計電路時Vgs可能設計過小的情況,下圖是2N7002的資料手冊:
舉例:其中一個廠家生産的2N7002的資料手冊,Vgs的開啟電壓為1V
實際使用時為保證完全開啟、完全導通,設計上要多預留餘量,比如實際電路中Vgs起碼給到1.8V。因為1.8V的設計參數接近資料手冊标注的1V臨界值,尤其注意用實驗驗證,確定萬無一失。