電平轉換在電路設計中非常常見,因為做電路設計很多時候就像在搭積木,這個電路模塊,加上那個電路模塊,拼拼湊湊連起來就是一個電子產品了。
而各電路模塊間經常會出現電壓域不一致的情況,所以模塊間的通訊就要使用電平轉換電路了。
上圖是用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的時候,5x0.3=1.5V以下為低電平,5x0.7=3.5V以上為高電平。
▲某一個芯片數據手冊里關于高低電平的閾值范圍說明
以上是3.3V與5V之間的情況,如果換用其他電壓域之間的轉換,如3.3V、2.5V、1.8V等電壓值的兩兩之間,需要注意MOS管的Vgs開啟導通電壓。
給MOS管過高的Vgs會導致MOS管燒壞!給過低的Vgs會導致MOS管打不開!不同型號的MOS管這個參數值還不一樣?。。?/p>
▲舉例:其中一個廠家生產的2N7002的數據手冊,Vgs不能超過正負20V
再來看一下,設計電路時Vgs可能設計過小的情況,下圖是2N7002的數據手冊。
▲舉例:其中一個廠家生產的2N7002的數據手冊,Vgs的開啟電壓為1V
實際使用時為保證完全開啟、完全導通,設計上要多預留余量,比如實際電路中Vgs起碼給到1.8V。因為1.8V的設計參數接近數據手冊標注的1V臨界值,尤其注意用實驗驗證,確保萬無一失。
3.3V跟5V互轉的電路已經是一個經典電路,實在是硬件設計師居家旅行、護院看家,必備良藥!
MOS管型號就記住用2N7002,這個型號便宜,性能久經考驗,不像有些MOS管外型看起來跟2N7002一樣,但實際是大功率的,有部分性能規格浪費了,有部分性能規格又不一定能滿足需要,主要是還賊貴,具體其他MOS是怎樣的這里就不細究啦。
最后,關于電路的學習,希望大家,enjoy!