大部分MCU供電只有VDD,但是有些MCU除了正常供電的VDD引腳,還有另外一路獨(dú)立的供電引腳VBAT,比如STM32F103 64pin 的Pin1就是VBAT
VBAT中的BAT是 Battery簡(jiǎn)寫,這個(gè)引腳一般接紐扣電池,正常情況下它是不耗電的,只有當(dāng)VDD掉電,它才會(huì)工作。VBAT的主要用途有兩個(gè):
1)給RTC獨(dú)立供電,保障RTC能夠一直計(jì)時(shí)
2)給備份寄存器區(qū)供電,保存敏感數(shù)據(jù)
對(duì)于第一點(diǎn),有些用到RTC功能的產(chǎn)品比如燃?xì)獗?,正常情況下干電池組供電,當(dāng)干電池電量耗盡時(shí),VBAT可以保障RTC持續(xù)走時(shí),并且VBAT工作下的耗電量很低,可以工作很長(zhǎng)時(shí)間,當(dāng)新?lián)Q了電池之后,就不再使用VBAT電池了。此外還有一些用到RTC功能但是供電是220V的產(chǎn)品,比如樓宇中的溫控器,當(dāng)主電斷開時(shí),VBAT可保障RTC繼續(xù)走時(shí)。對(duì)于在正式使用前還沒(méi)有正常供電的設(shè)備,VBAT可以實(shí)現(xiàn)出廠時(shí)就設(shè)置好RTC時(shí)間,在用戶真正使用時(shí)不需要再重新設(shè)定時(shí)間。
說(shuō)到這里,你可能會(huì)有疑問(wèn):是不是只要用到了RTC就需要VBAT功能?并不是這樣,一是因?yàn)橛械漠a(chǎn)品出廠時(shí)就帶著電池并且整個(gè)生命周期內(nèi)一直不掉電,所以就不需要了。還有一些產(chǎn)品即使主電沒(méi)了,RTC時(shí)間沒(méi)了也沒(méi)有關(guān)系,大不了下次上電時(shí)重新配置和同步下時(shí)間(可以通過(guò)聯(lián)網(wǎng)的方式或者手動(dòng)設(shè)置),具體要看使用場(chǎng)景。
你可能還有個(gè)疑問(wèn):如果我就是需要在主電沒(méi)了RTC得繼續(xù)計(jì)時(shí)、但是MCU就是沒(méi)有VBAT引腳該怎么辦?這也是有解決方法的,就是在MCU的外圍搭建一個(gè)電源切換電路實(shí)現(xiàn)VBAT的功能,當(dāng)主電斷開時(shí),切換到備用電池給MCU供電,MCU工作在低功耗狀態(tài)、RTC繼續(xù)工作,不過(guò)這種方法不如用帶自帶VBAT管腳的MCU來(lái)的方便,且相比有VBAT功能MCU會(huì)增加功耗。
對(duì)于第二點(diǎn),有一些敏感數(shù)據(jù),比如產(chǎn)品的重要運(yùn)行參數(shù)或者加密的秘鑰,不希望能夠被輕易的獲取到,通常不存放在MCU的Flash區(qū)域,因?yàn)榉旁贔lash里畢竟不太安全,所以存放在RAM區(qū)域中,而RAM有一個(gè)特征是掉電后數(shù)據(jù)丟失,所以實(shí)際使用的是一塊特殊的RAM區(qū)域即備份寄存器中,系統(tǒng)掉電時(shí)只要VBAT有電,該區(qū)域數(shù)據(jù)就可以保持,且不受系統(tǒng)復(fù)位的影響,只有VBAT也掉電該區(qū)域數(shù)據(jù)才會(huì)丟失。這塊區(qū)域通常還會(huì)有自毀功能,配合Tamper功能可實(shí)現(xiàn)防拆自毀功能,保障該區(qū)域數(shù)據(jù)的安全性。
Tamper功能是指MCU在Tamper管腳檢測(cè)到信號(hào)異常時(shí),會(huì)主動(dòng)清除所有備份寄存器數(shù)據(jù)的功能,這是MCU硬件上實(shí)現(xiàn)的。