This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSPM0L1306:MCU 未进入关断模式/如何使用 wakestat 进行测试?

Guru**** 2427060 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1342151/mspm0l1306-mcu-not-entering-shutdown-mode-how-to-test-using-wakestat

器件型号:MSPM0L1306

您好!

我有一位客户尝试使用自己的驱动程序库实现从关断模式唤醒示例。

以下是其电源策略关断功能:

/*!
            * @brief Call this to configure the MCU into shutdown mode
            * @param None
            * @return None
            */
            void SetPowerPolicyShutdown( void )
            {

                SYSCTL->SOCLOCK.PMODECFG = SYSCTL_PMODECFG_DSLEEP_SHUTDOWN;
                SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;

            }

这是用于设置关断条件的代码:

button.SetWake( IO_Definitions::BUTTON_WAKE_CONFIG );


DL_SYSCTL_setPowerPolicySHUTDOWN();
delayCycles(1000000);
//sleepMode.SetPowerPolicyShutdown( );

while ( 1 )
{

    // waiting on the interrupt
    __WFI();

}

所以我尝试直接复制关断电源策略的 driverlib 实现。 现在、这两种行为似乎都只是导致 MCU 进入 WFI 环路。

我已验证唤醒引脚 PA18的 IO 配置与我们关断示例的 IO 配置是否匹配。

除了 SysTick 之外、该器件目前未启用其他外设。 我确实尝试了禁用 SysTick、但这也没有影响任何东西。  

我注意到、代码版本稍有不同、这会导致 MCU 实际进入不可连接的状态、无法将代码下载到器件中、只会在复位后才输出。 这似乎意味着、有时我可以进入关断状态、但它非常不一致、而且从未能够将器件从关断状态中唤醒。

有关哪些因素可能会阻止器件从 SHUTDOWN 模式唤醒以及哪些因素可能会阻止我完全进入 SHUTDOWN 模式、有什么建议?

客户正在使用 IAR 编译器9.40。

穆南

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Munan:

    您是否首先尝试过 SDK 中的关断模式示例代码? 并且在编程后还应尝试断开电路板并重新连接电路板、然后尝试在没有 IDE 的情况下调试电路板?

    此致,

    现金豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现金、您好!

    是的、我们尝试了 SDK 示例、无论是连接到调试器还是单独工作、都能按预期工作。

    在做更多实验之后、我认为实际上我们调试软件的方式在使应用程序的运行出现问题、因为我正在将一个断点添加到从唤醒逻辑检查 BOR 中。  

    因此、我将其更改为点亮 Launchpad 上的其中一个 LED 以指示唤醒、这似乎表示代码按预期工作。

    穆南