我已经为 PMIC 实现了外部看门狗(Wdg_43_VR5510)。但它在 Pmic_VR5XX_TimeoutLoops_StateTransistion 中陷入了无限循环(见下文)。
SagarZala_1-1728467272425.png
目前它处于 INIT_FS 状态,根据状态图,我们需要进行一次良好的看门狗刷新,才能将状态从 INIT_FS 更改为 Wait_ABIST2。
image (7).png
为了满足 256ms 内首次有效看门狗刷新的要求,我们在 EcuM 初始化期间的 Wdg_43_VR5510_Init 函数之后调用了看门狗触发 API。
image (8).png
我们需要知道如何以及在哪里调用第一个监控程序刷新。因此,状态转换从 INIT_FS 到 wait_ABIST2。
你好@Jerry_cao ,
感谢您与我们联系。然而,原帖已关闭近两年,因此我们无法继续在该帖下为您提供支持。
请在S32G - NXP 社区中为您的问题创建一个新帖子,我们的团队将很乐意为您提供进一步的帮助。
BR
塞莱斯特
您好,NXP团队,
我目前正在调试 VR5510 PMIC,遇到了与看门狗刷新相关的实时调度问题。
MCAL I2C 看门狗刷新(通过 I2C 向 VR5510 看门狗提供数据)的实现方式如下: 同步 手术。由于我们是在中断上下文中调用它,因此同步等待会阻塞 CPU,并降低其他任务的实时调度性能。
我注意到有一个 异步 驱动程序配置/代码中的选项。然而,实际上它仍然执行同步忙等待(它会阻塞并轮询,直到 I2C 传输完成),因此它实际上并没有将传输与调用者解耦。
我的问题:
任何指导、参考配置或示例代码都将不胜感激。
谢谢!
你好 SagarZala,
我想知道您是否尝试过 S32 设计工作室 (S32DS) 中的两个现成示例?他们会遇到同样的问题吗?或许他们能成为你很好的推荐人。
Celeste_Liu_0-1729049570948.png
您好,
谢谢回复。
我使用的是 RTD 版本 4.0.2。我已经将 I 2C 配置为高速,并且WD_WINDOW 也配置为 1024ms。但它仍然不起作用。
亲爱的@SagarZala ,
谢谢你的提问。VR5510 通常与 S32G 微处理器搭配使用。为此,应在 S32G RTD 软件包下提供 VR5510 的可用驱动程序。您使用的是哪个版本的RTD?具体是哪个示例?
以 RTD 4.0.0 版本为例,您可以在路径 C:\NXP\SW32G_RTD_4.4_4.0.0\eclipse\plugins\Wdg_43_VR5510_TS_T40D11M40I0R0\doc 下找到文档“RTD_WDG_43_VR5510_IM”和“RTD_WDG_43_VR5510_UM”。文件“RTD_WDG_43_VR5510_UM”中有更详细的描述。
值得一提的是,看门狗是通过 I2c 命令触发的,并且取决于 I2c 速度。当 I2c 速度较低时,看门狗可能无法在看门狗的窗口打开时间内成功触发。为避免此问题,我们建议用户将 I2c 配置为高速,并在启用 I2c 时使用较大的窗口周期。
要设置看门狗刷新,您可以配置 WD_WINDOW [3:0] 来获取刷新时间。如下图所示:
Celeste_Liu_0-1728636341767.png
请参阅“ Document VR5510 产品数据手册”第 60 页表 45。监视窗口周期配置,如下截图所示。设置好正确的 WD 周期时间后,需要正确地给 WD 供料。
Celeste_Liu_4-1728636786838.png
Celeste_Liu_5-1728636805408.png
希望以上信息对您有所帮助。
顺祝商祺!
塞莱斯特