打印
[产品应用]

【应用笔记】使用 CW32 实现电池备份(VBAT)功能

[复制链接]
6873|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
芯源新闻官|  楼主 | 2023-8-15 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言
电池备份(VBAT)功能的实现方法,一般是使用 MCU 自带的 VBAT 引脚,通过在该引脚连接钮扣电池,当系统电源因故掉电时,保持 MCU 内部备份寄存器内容和 RTC 时间信息不会丢失。
本文档介绍了如何基于 CW32 系列 MCU,通过增加简单的外部电路配合软件实现 VBAT 功能,在系统电源掉 电后仍能保持 RTC 时钟正常计时,以及如何降低系统功耗,从而延长后备电池的使用寿命。

1电路设计
对于自带 VBAT 引脚的 MCU,MCU 内部有对 VBAT 电源和系统电源的管理单元,保证在系统电源掉电后,及 时切换 VBAT 引脚电源给备份域供电,保证 RTC 正常工作。
对于没有 VBAT引脚的 CW32,要实现类似的功能,可以在外部进行后备带电池和系统电源的切换,如下图所示:

后备电池(B1)提供的备用电源 VBAT 和系统电源 VDDIN 通过 2 个肖特基二极管(D1)合路,合路后的 电源 VDD 给 MCU 的数字域 DVCC 和模拟域 AVCC 进行供电。系统电源 VDDIN 通过 R3、R4 电阻分压得到 WAKEIO 信号,连接到 MCU 的 IO 引脚。注意遵循如下规则:
1. Vwakeio 要大于 MCU IO 口的 Vih;
2. VDDIN 必须高于 Vb1 在 0.4V 以上,否则如果 VDDIN 和 Vb1 相等,在系统电源正常时,后备电池也会有一定 的泄放电流,不利于节省后备电池电量。

2程序设计
程序启动后正常初始化时钟、IO、RTC 以及 OELD,循环中检测系统电源是否存在,如存在则读取 RTC 时间 并显示。
当系统电源 VDDIN 因故掉电,则关闭 OLED 电源,并进入 DeepSleep 低功耗睡眠模式。
当系统电源 VDDIN 恢复供电时,产生高电平中断,唤醒 MCU,退出 DeepSleep 低功耗睡眠模式。

3参考代码
int32_t main(void)
{
RCC_Configuration();     // 时钟配置
GPIO_Configuration();     //GPIO配置
OLED_Init();          //OLED显示屏初始化配置
dis_err("RTC_TestBoard");   // 显示        
FirmwareDelay(5000000);   // 增加延时防止过早休眠影响程序烧写
RTC_init();          //RTC时钟初始化
//DeepSleep 唤醒时,保持原系统时钟来源
RCC_WAKEUPCLK_Config(RCC_SYSCTRL_WAKEUPCLKDIS);
ShowTime();       // 获取时间数据
displaydatetime();    // 显示当前时间
while(1)
{
if( 0==PB05_GETVALUE() )  // 循环检测是否掉电
{
PA05_SETHIGH();   // 关 OLED 电源
SCB->SCR = 0X04;  //DeepSleep
__WFI();       //MCU 进入DeepSleep模式以节省功耗
OLED_Init();     // 外部电源接入后唤醒,重新初始化 OLED
}
else
{
ShowTime();      // 获取时间数据
displaydatetime();   // 显示当前时间
}
}
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStruct= {0};
__RCC_GPIOB_CLK_ENABLE();         // 开 GPIOB 时钟
GPIO_InitStruct.IT  = GPIO_IT_RISING;    // 使能上升沿中断
GPIO_InitStruct.Mode  = GPIO_MODE_INPUT;  // 输入模式
GPIO_InitStruct.Pins = GPIO_PIN_5 ;    //PB05,连接 WAKEIO 网络
GPIO_Init(CW_GPIOB, &GPIO_InitStruct);  // 初始化 IO
GPIOB_INTFLAG_CLR(bv5);        // 清除 PB05 中断标志
NVIC_EnableIRQ(GPIOB_IRQn);      // 使能 PB05 中断        
}

4实际测试
使用 CW32L031C8T6 设计了用于测试后备电池功能的评估板,实物如下图所示:

使用 3V 的 CR2032 钮扣电池,实测电池电压为 3.14V;VDDIN 使用可调节数字电源,设置为 3.54V,保证 VDDIN >= Vb1 + 0.4V;D1 实测合路后的电源电压为 3.21V。

4.1 测试数据
实际测试时,断开 J4 跳线接入万用表,设置万用表为电流测试档位。
1. 关闭 VDDIN 电源输入,MCU 检测到无外电输入,关闭 OLED 显示,进入 DeepSleep 模式,实测此时 B1 电流为 +0.95μA。
2. 打开 VDDIN电源输入,MCU被高电平中断从 DeepSleep状态唤醒到正常状态,OLED正常显示当前时间, 实测此时 B1 电流为 -75nA(负电流是因为 D1 处于反向偏置状态,有小的反向漏电流)。
测试结果符合电路设计预期,以 CR2032 电池容量为 200mAH 计算,则电池可用时间为 210526 小时,合计 24 年(不考虑电池和产品寿命),可实现超长待机时间,完全满足各种低功耗产品对 RTC 后备电池容量需求。

5附件
5.1 RTC_TestBoard 单板原理图




关于武汉芯源半导体
武汉芯源半导体有限公司,于2018年8月28日成立,是上市公司武汉力源信息技术股份有限公司全资子公司,专注芯片的设计、研发、销售及技术服务。武汉芯源半导体CW品牌源于Creative Wisdom首字母CW,传递“创芯源于智慧”的品牌理念。
武汉芯源半导体为电子行业用户提供微处理器MCU、小容量存储芯片EEPROM、功率器件SJ-MOSFET等系列产品,具有产品质量保证、技术性能可靠、供货能力稳定三大竞争优势。
在MCU领域目前已推出通用高性能CW32F003/030系列、安全低功耗CW32L083/031/052系列、无线射频CW32W031系列产品,广泛应用于消费电子、智能家居、物联网、工业控制、医疗电子以及汽车电子行业,未来将能够满足更多的市场需求。
武汉芯源半导体持续进行技术革新,确保稳定可靠的供应链能力,致力于成为国产芯片产业的领航者!

使用特权

评论回复
沙发
zhenykun| | 2023-8-15 20:40 | 只看该作者
24 年?这么猛?

使用特权

评论回复
板凳
七毛钱| | 2023-9-11 16:24 | 只看该作者
这个待机时间也真够长的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

45

帖子

0

粉丝