你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

RTC 意外恢复到初始值

[复制链接]
STMCU小助手 发布时间:2022-8-1 22:43
1. 问题描述 8 [8 e; C+ M0 R/ u( z$ P& C# ?4 h' w1 D. X6 W
客户反馈在使用 STM32F446 的产品做上电、掉电测试时,RTC 会意外恢复到配置的初始值。
* i0 R  z- H1 l
2. 问题分析及解决 0 c1 z- a" j5 @
通过与客户邮件沟通,了解到客户的 VBAT 引脚上有独立的电池供电,在代码中当第一次启动时会检查备份寄存器中保留的一个标志,如果是第一次运行,则会设置 RTC 的初始化,包含年月日时分秒,如果不是,则跳过,后面只读取 RTC 内的时间信息,并不再修改。
( \6 X; R5 `: y5 k) ~为了使用统一的参考物,先建议客户使用 Cube 库下的官方示例代码:
) X8 f# I: @& X9 X/ ^/ rSTM32Cube_FW_F4_V1.25.0\Projects\STM32F446ZE-Nucleo\Examples\RTC\RTC_Calendar, 此代码刚好可以针对此问题进行分析。 客户使用此示例代码测试问题依旧。
4 b  _: v. ~4 o, [; f, s查看示例代码,为了排除 HSE 与 LSE 的影响,建议客户将 HSE 改为 HSI, LSE 改为 LSI,这样一来,完全跟板上高速晶振无关,跟 32.768K 的低速也无关。客户使用修改后的代码问题依旧。
3 p7 o# U% b: ~4 {) w5 i/ p查看相关代码:
  1. /*##-2- Check if Data stored in BackUp register1: No Need to reconfigure RTC#*/
    7 \: {' {- ^' R( C( F
  2. /* Read the BackUp Register 1 Data */
    : z7 w; a/ |7 C% _& A& w
  3. if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1) != 0x32F2)7 L9 e3 T& v" i; f  |4 O$ ?4 J7 U
  4. {
    ! w  S) n! S* o; y( P) J+ w+ s
  5. /* Configure RTC Calendar */
    0 _, R( _* j' e7 K' u
  6. RTC_CalendarConfig();2 j2 W0 s6 r) `( a
  7. }
复制代码
: _3 u0 G# O! n
如上面代码所示,每次上电后会读取 BKP_DR1 的值,判断是否为第一次启动,如果是,则配置 RTC。换句话说,出现问题时,这个判断肯定出现问题,导致重复配置 RTC,也就是备份寄存器的值丢失!是什么原因导致备份寄存器的值丢失呢?+ F* f+ T5 m4 F9 X, {: \+ Y4 J
同时我这边在 NUCLEO 板上尝试重现客户的问题,但无论如何尝试都无法重现,现在两边所使用的测试软件一模一样,只是各自的硬件平台有所差异,看来就是这个硬件上的差异带来的问题。于是下一步比较客户的硬件与 NUCLEO 板有何不同。3 E8 c. V/ ?+ U4 w
首先怀疑是 VBAT 引脚。要是 VBAT 再现异常,RTC 重新配置就很正常,但客户的 VBAT真的会出现问题么?下面是客户 VBAT 引脚的相关电路:
# K0 I. G8 b# k+ u' v0 M
; k# t# N- r. ?9 t! p) q! y, h: l
! Z6 D4 h6 q: p* H. `
N$VBLW}]U$A$_1~C9UT]I$Q.png 5 z/ Z4 a8 I, M5 J( F+ c, |

) h8 E- s9 j0 L如上图所示,客户 VBAT 外部接一电池,当 VDD 有电时,VDD 将将电池充电,当 VDD 掉电时,电池给 RTC 供电。于是向客户提出 VBAT 的在掉电上电测试过程中的波形:; L1 h% B- ?" A5 I

' Z$ n# g/ Y+ a2 ]: t8 C% e3 ?
& `5 y( K  b2 f, T4 v" M7 l5 l
K$NSFNW()@X0KA64YRR_}7X.png , `0 B* k5 X, l) T. X
8 \( v) {% p9 C! _! ^
如上图所示,VBAT 引脚的波形,在电源掉电上电的过程中并没有出现掉电的情况,也就是说,RTC 擁有穩定的电源供应。为了避免 VBAT 的影响,要客户干脆将 R8 这个电阻去掉再测试, 结果问题依旧存在。 + K# E( y( O9 t; g! y+ E6 t
( G& T1 v% ?% a1 K
( M  n) J# T. F0 c, s
完整版请查看:附件
. a1 ]0 j: d; m) Z1 l# Z1 y) r4 a7 l, \  Y. o( f

% N! S% W) t5 w9 e7 I) w7 H! q3 F; T1 E9 i% }5 p

: w* p9 T' R# F5 t% E! A: K% v6 n

LAT0787_RTC意外恢复到初始值.pdf

下载

451.21 KB, 下载次数: 0

赞 收藏 评论0 发布时间:2022-8-1 22:43

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版