You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32 F302自定义板RTC电池供电仅工作10分钟后停止问题求助

STM32 F302自定义板RTC电池供电仅维持10分钟后重置的排查方案

问题背景

基于STM32 F302设计的自定义开发板,需实现电池供电的RTC功能。当前遇到核心问题:主电源关闭后,电池仅能维持RTC运行约10分钟,之后RTC计时器会重置。

当前配置细节:

  • RTC初始化函数中已注释自动设置时间与日期的代码
  • 采用内置LSI RC振荡器作为RTC时钟源
  • 已尝试切换至外部石英振荡器,问题未解决
  • 已执行备份电源(电池)初始化操作

附RTC初始化代码:

void RTC_Init(void)
{
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
  PWR_BackupAccessCmd(ENABLE);
  
  // 注释自动设置时间日期逻辑
  // RTC_SetTime(RTC_Format_BIN, &RTC_TimeStructure);
  // RTC_SetDate(RTC_Format_BIN, &RTC_DateStructure);

  // 初始化LSI时钟
  if (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET)
  {
    RCC_LSICmd(ENABLE);
    while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
  }
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
  RCC_RTCCLKCmd(ENABLE);
  
  RTC_WaitForSynchro();
  RTC_WaitForLastTask();
}

硬件层面排查方向

  • VBAT回路漏电流检测:用万用表串联在VBAT电池与芯片VBAT引脚之间,测量主电源断电后的静态电流。STM32 F302在VBAT供电+LSI时钟下的典型电流应为1~2μA,若实测电流远高于此值,需排查:
    • 备份区域GPIO是否被误配置为推挽输出模式
    • VBAT线路上的滤波电容、电池座是否存在漏电
  • VBAT连接可靠性:检查VBAT引脚焊接是否牢固,电池座接触是否良好,确认使用的电池容量达标(如CR2032级别的纽扣电池,避免低容量型号)
  • 外部元器件干扰:暂时移除VBAT回路的外接非必要元器件(如额外的保护电路),单独测试芯片VBAT供电能力,排除外部电路影响

软件层面排查方向

  • 备份寄存器数据校验:主电源断电前,往备份寄存器(BKP_DR1~BKP_DR10)写入固定值,上电后读取该值。若值丢失,说明VBAT供电曾中断(硬件问题);若值保留但RTC重置,说明初始化逻辑存在误触发
  • RTC初始化逻辑检查:排查代码中是否存在每次上电都强制重置RTC的逻辑(如误调用RTC_DeInit()),确保仅在首次上电或备份区域无有效数据时才初始化RTC
  • LSI稳定性验证:主电源断电前设置RTC闹钟中断(如1分钟后触发),测试电池供电下是否能正常触发,以此判断LSI是否持续运行;同时确认LSI启动等待逻辑正确,避免未稳定就开启RTC
  • 低功耗模式配置:检查主电源断电前是否关闭了所有非必要外设时钟,是否配置了正确的待机/停止模式,避免其他外设消耗VBAT电流

额外验证点

  • 检查芯片备份区域是否被意外擦除,排查是否存在触发备份区域复位的代码逻辑
  • 若使用外部石英振荡器,确认晶振负载电容匹配、焊接无虚焊,且晶振本身质量达标

内容的提问来源于stack exchange,提问作者friendly neighbor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:22:34