嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > 从MIMXRT1170 SNVS模式下的唤醒时间过长问题分析

从MIMXRT1170 SNVS模式下的唤醒时间过长问题分析

    从SNVS模式中醒来时,唤醒时间异常长。更改应用代码,以便在唤醒发生时立即打开指示led,但看到led一直打开到唤醒事件中PMIC_ON_REQ引脚输出高,需要15秒。通过进一步的调试,发现代码被停在地址0x00223104的循环中。

    此地址用于防止I.MXRT在通过调试器复位后在不设置SP和PC的情况下继续执行:https://wiki.segger.com/i.MXRT117x。但是,无论调试器是否复位,甚至在不使用外部调试器的情况下,客户端都会在此处进入。还将power_mode_switch演示移植到了他们的目标板上,并且在SNVS唤醒后也经历了与原始应用程序相同的15秒延迟。15s的延迟是由看门狗WDOG3 超时引起的,在这个看门狗事件之后,MCU可以正确地跳转到应用程序代码。然而,不知道是什么原因导致 SNVS模式唤醒卡在位置0x00223104。那么是什么触发BOOT ROM到达这个地址吗?

    在唤醒芯片之前复位 8线的 Octal Flash,芯片就可以被唤醒。如果是这种情况的话,根本原因是当RT1170进入SNVS模式时,除SNVS域外,所有电源域都关闭。这意味着ROM将在唤醒后运行。但 ROM将在开始时使用SPI单线模式读取命令,但八进制 Flash器件仍处于OCR模式(八进制读取模式)。

    这种情况下有 3种办法:

1. 在进入 SNVS模式前,复位 Ocal Flash。代码可能不正确,无法复位 Flash闪存,因为数据引脚上没有数据波形。还有一点需要注意,设置RT1170进入SNVS模式的代码也需要运行在 RAM中。

2. 使用 POR 引脚作为复位信号来复位 Octal Flash。

3. 使用 BOOT ROM 来复位 Octal Flash。