• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1307 同型号STM32的IWDG初始化差异的一致性配置

03/19 11:05
579
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1307 同型号STM32的IWDG初始化差异的一致性配置

412.31 KB

前言

最近有客户在 STM32H725 上使用 STM32 SBSFU 软件包。客户发现它移植的 SBSFU在开发时能正常工作,但是部署在现场其他同型号的芯片上,却出现了一部分产品启动不正常的问题。经过将有问题的芯片和开发板带回实验室进行定位,客户发现是由于 SBSFU使用了 IWDG,而 IWDG 即使在同一型号的芯片上,也有着不同的表现。有的能初始化成功,有的却初始化失败。客户担心这是否是芯片所导致的问题。其实,这是一个软件配置的问题,在 HAL 库代码的注释中有着清晰的描述。本文就这一问题给出详细的解释并提出正确的配置方法。

IWDG 初始化代码

IWDG 初始化代码如下。我们重点看下什么地方可能会返回错误。

超时错误的分析

既然出现了超时错误,我们就会怀疑是不是默认的时间太短了。我们查看一下HAL_IWDG_DEFAULT_TIMEOUT 的定义(stm32h7xx_hal_iwdg.c)。

一致性解决方案

LSI_VALUE 作为计算公式中的分母,如果不希望对于每一个芯片都测量然后使用不同的值,应该考虑使用最大超时时间,也就是说应该取最小值 29.4kHZ。我们手工将29.4kHZ 代入公式。

小结

IWDG 不仅仅为 SBSFU 使用,在功能安全中也会被用到。在使用 IWDG 时,要注意IWDG 初始化代码中需要针对同一型号来定制相应的超时值。本文以 STM32H725 为例,给出了一致性的定制值,避免 IWDG 在不同芯片的初始化行为的差异,适合所有使用STM32 IWDG 功能的用户参考。

在线预览

相关推荐