故障现象
客户在项目中使用 STM32G0B1, 由产品内置电池供电. 客户在程序中有使用到 standby 模式, 通过 WKUP2(PC13), WKUP6 引脚唤醒. 除此之外并没有其它唤醒源. 代码中有使用到 RTC,但只是用来记录日期和时间, 并没有参与 standby 的唤醒.
有两种故障现象 :
第一种 : standby 被意外唤醒, 即使两个 WKUP 引脚均无触发信号.
第二种 : PC13 引脚上输出一 1Hz 的方波, 即使代码中并没有配置.
Figure 1 PC13 引脚输出 1Hz 方波, 原因未明
故障是随机, 一般两到三天可能会出现, 暂未发现固定规律. 一旦出现, 按复位键无法恢复, 必须断电后上电才会恢复正常.
故障分析
因为故障表现为断电后才能恢复, 所以判断与 RTC 域相关. 拜访客户后, 查看 RTC 和 TAMP相关寄存器,结果发现寄存器内容均于 0.
查看勘误手册, 在 2.2.6 节中发现 PC13 可能会干扰 LSE
Figure 2
但怎么看都跟此问题应该不相干. 为了缩小问题范围, 现场临时做了一个测试程序. 只用
WKUP2(PC13)引脚唤醒 Standby, WKUP6 则直接不用. 再代码烧进程序, 结果问题依旧, 仍然
是莫名被唤醒. 查看唤醒信号源, 结果发现 PWR_SR1.WUFI=1. 其定义如下 :
为内部唤醒线来的信号. 但具体是指什么并不清楚.
|