便攜式電子設備一般帶有鋰電池,其電量的計算,最廉價的方案是通過偵測電池的電壓來實現。
比如曾經做過的一個電紙書閱讀器的項目,也就是Kindle這類產品:
其電池電壓偵測電路非常簡單:
兩個電阻對電池的電壓進行分壓,經過電容濾波后送給MCU的ADC管腳進行電壓測量。
這個電路在系統關機后還會一直消耗電池的電量。以鋰電池電壓為4.2V為例,浪費的電流為9.3uA:
9.3uA看似不大,在有些要求極致低功耗的應用場景,也是不能接受的。
如果MCU的ADC輸入阻抗較小,那么兩個分壓電阻的取值要更小一些,比如30Kohm和15Kohm,浪費的電流就更大了,會達到93uA。
如何解決這個問題,實現關機功耗為0呢?
一、第1個推薦電路
在不進行電壓測量時,把兩個分壓電阻的放電回路斷開。加入一個NMOS管即可:
單片機的GPIO,即MCU_Control控制MOS管Q1的柵極:
1、需要測量電池電壓時輸出高電平,將MOS管Q1打開。
2、不需要測量電池電壓時輸出低電平,將MOS管Q1關閉。
這個電路需要注意,在MOS管Q1關閉時,電阻R2沒有參與分壓,MCU的ADC引腳通過電阻R1直接連接到電池,需要注意ADC引腳是否能夠承受鋰電池4.2V的電壓值。
二、第2個推薦電路
如果不能承受,那么把電路改動一下,將MOS管上移到兩個電阻之間:
假設MCU的GPIO輸出的高電平為3.3V,即MCU_Control輸出3.3V,那么在MOS管打開時各點電壓如下:
所以MOS管的Vgs = 3.3V - 1.4V = 1.9V。
查看MOS管AO3400的數據手冊,其Vgs的范圍是0.65V-1.45V:
MOS管導通要求的Vgs最大值為1.45V,小于上述電路的1.9V,所以上述電路可以使用。
提醒大家在選型MOS管的型號時,務必注意Vgs這個參數。
如果MCU的GPIO是1.8V的,那必然不能把上述電路的MOS管打開。
三、第3個推薦電路
如果不能滿足MOS管對Vgs最小值的要求,繼續改進一下。
改進需要付出代價,下面不再使用NMOS,改為使用PMOS(同等參數情況下PMOS更貴),并加入更多的元器件。
將MOS管繼續上移:
1、當MCU_Control輸出高電平時,三極管Q2打開,MOS管Q1打開,電阻R1、R2與電池Vbat連接形成放電回路,MCU_ADC可以進行電池電壓偵測。
2、當MCU_Control輸出低電平,或者MCU完全斷電時,R6將三極管Q2的基極拉到地,三極管Q2關閉,MOS管Q1關閉,電阻R1、R2與電池Vbat斷開。
具體原理見文章《帶軟開啟功能的MOS管電源開關電路》(點擊閱讀),對PMOS管電源開關電路做了非常詳細的介紹。
另外需要注意MOS管對Vgs最大值的要求,不能超過最大值,否則MOS管會損壞。
假設電池電壓Vbat為12V,在三極管Q2打開時,MOS管Q1的Vgs = -12V:
而這顆MOS管AO3401A的Vgs的極限最大值正是±12V:
已達到參數上限。
這種情況可以加入一個電阻進行分壓:
四、總結
本文從只有兩個電阻進行分壓的電路開始,為實現關機功耗為0,對電路進行擴展,并針對存在的問題逐步改進。
3種電路都有其適用范圍,大家可以根據自己的產品功能特點進行選用。
五、擴展閱讀