vesperW · 7月31日

MCU的VBAT管脚有什么用?

大部分MCU供电只有VDD,但是有些MCU除了正常供电的VDD引脚,还有另外一路独立的供电引脚VBAT,比如STM32F103 64pin 的Pin1就是VBAT

image.png

再比如NXP的K21芯片也有VBAT引脚

image.png

VBAT中的BAT是 Battery简写,这个引脚一般接纽扣电池,正常情况下它是不耗电的,只有当VDD掉电,它才会工作。VBAT的主要用途有两个:

1)给RTC独立供电,保障RTC能够一直计时

2)给备份寄存器区供电,保存敏感数据

对于第一点,有些用到RTC功能的产品比如燃气表,正常情况下干电池组供电,当干电池电量耗尽时,VBAT可以保障RTC持续走时,并且VBAT工作下的耗电量很低,可以工作很长时间,当新换了电池之后,就不再使用VBAT电池了。此外还有一些用到RTC功能但是供电是220V的产品,比如楼宇中的温控器,当主电断开时,VBAT可保障RTC继续走时。对于在正式使用前还没有正常供电的设备,VBAT可以实现出厂时就设置好RTC时间,在用户真正使用时不需要再重新设定时间。

image.png

说到这里,你可能会有疑问:是不是只要用到了RTC就需要VBAT功能?并不是这样,一是因为有的产品出厂时就带着电池并且整个生命周期内一直不掉电,所以就不需要了。还有一些产品即使主电没了,RTC时间没了也没有关系,大不了下次上电时重新配置和同步下时间(可以通过联网的方式或者手动设置),具体要看使用场景。

你可能还有个疑问:如果我就是需要在主电没了RTC得继续计时、但是MCU就是没有VBAT引脚该怎么办?这也是有解决方法的,就是在MCU的外围搭建一个电源切换电路实现VBAT的功能,当主电断开时,切换到备用电池给MCU供电,MCU工作在低功耗状态、RTC继续工作,不过这种方法不如用带自带VBAT管脚的MCU来的方便,且相比有VBAT功能MCU会增加功耗。

对于第二点,有一些敏感数据,比如产品的重要运行参数或者加密的秘钥,不希望能够被轻易的获取到,通常不存放在MCU的Flash区域,因为放在Flash里毕竟不太安全,所以存放在RAM区域中,而RAM有一个特征是掉电后数据丢失,所以实际使用的是一块特殊的RAM区域即备份寄存器中,系统掉电时只要VBAT有电,该区域数据就可以保持,且不受系统复位的影响,只有VBAT也掉电该区域数据才会丢失。这块区域通常还会有自毁功能,配合Tamper功能可实现防拆自毁功能,保障该区域数据的安全性。

image.png

Tamper功能是指MCU在Tamper管脚检测到信号异常时,会主动清除所有备份寄存器数据的功能,这是MCU硬件上实现的。

image.png

作者:TopSemic
来源:TopSemic嵌入式

推荐阅读

欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
2891
内容数
284
分享一些在嵌入式应用开发方面的浅见,广交朋友
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息