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.

[参考译文] MSP430F5529:进入和退出 LPM4和 LPM4.5

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/672735/msp430f5529-entering-and-exiting-lpm4-and-lpm4-5

器件型号:MSP430F5529

您好!

进入和退出 LPM 4和 LPM4.5的问题

在活动模式下、我打开了 HFXT 和 LFXT  

FLL 源= HFXT 4MHz

MCLK 和 SMCLK 源= DCO FLL 设置为24MHz

ACLK 源= LFXT 32.768kHz

问题

在进入 LPM4之前、我是否需要编写代码来关闭 HFXT 和 LFXT 并进行设置

MCLK、SMCLK 和 ACLK 源= REFCLK 或 VLO、然后转至 _BIS_SR (LPM4_BITS + GIE);? 还是 BIS_SR 线路自动处理时钟切换?

此外、在进入 LPM4.5之前、我是否必须执行同样的操作

退出 LPM4时、我将使用按钮来使用 GPIO 输入

PortISR()

去抖()

_BIC_SR_REGISTER_ON_EXIT (LPM4_BITS);

ConfigureClocksforActiveMode();

上述步骤是否正确? 在退出 ISR 之前、我是否需要将时钟配置回我在活动模式下设置的方式?  

对于 LPM4.5、我了解到发生了复位、因此我假设我的时钟将在代码的初始化阶段设置为有效->在这里、我的理解是正确的还是缺少什么?

谢谢。

AJ

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦、我忘了说、在工作模式下、我处于 VCORE3... 因此、在进入 LPM4或 LPM4.5之前、我是否需要将 VCORE 降低至0? 然后在退出 LPM 后、再次将 VCORE 设置回3?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您无需禁用 XT1/XT2时钟源;它们在 LPM4中自动关闭(除非您已清除 XT1OFF/XT2OFF 位;有关详细信息、请参阅用户指南的第5.2/5.2.5节)。

    如果外设模块请求 MCLK、SMCLK 和 ACLK、它们将保持激活状态(请参阅用户指南的第5.2.11节)。 如果时钟源不再处于活动状态、它们将进入失效防护模式、并暂时使用 DCO 或 REFO 作为时钟源(请参阅第5.2.12节)。

    Xt1/XT2在退出 LPM4后自动重新启动。 但是、晶体需要一段时间才能开始正确振荡、并且直到软件清除故障状态位(就像初始化晶体一样)、才会实际使用 XT1/XT2。

    对于高时钟频率、您需要高 VCORE、但低时钟频率(或停止时钟)适用于所有 VCORE 设置。

    退出 LPMx.5后会发生什么情况取决于您的复位代码。 如果它始终运行相同的初始化代码、则硬件将始终初始化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Clemens、

    只是另外一个问题。 进入 LPM4.5的正确语法是什么? 我尝试这样做是因为我在另一个论坛上找到了它

    PMMCTL0_H = PMMPW_H;//打开 PMM
    PMMCTL0_L |= PMMREGOFF;//设置标志以通过 LPM4请求进入 LPM4.5
    _bis_SR_register (LPM4_bits|GIE);
    __no_operation();

    我还在上面的代码之前启用了端口1和端口2中断。
    顺便说一下、我执行这些行以进入 LPM4.5、但我在唤醒时遇到了问题。 按下端口1或端口2上的按钮。 我可以看到电流变为活动状态、但我的代码只是挂起、我认为它没有正确地经过初始化代码、因为 LED 应该亮起。 同样在 LPM4.5下、我注意到我的电流为5uA。 对于 LPM4.5、我不必正确配置任何引脚? 我不明白为什么我没有获得数据表上所示的0.035uA。

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

    我想知道高电流... 我忘记了我有外部电路了。 当我把它们全部取出时、我得到0.3uA。 但是、我仍然无法正常唤醒。 我会看到电流上升到大约7到8mA、但在那里我会挂起。 我无法向 USB 发送字节、无法打开 LED。 我的代码基本上不起作用。 但我想我确实唤醒了处理器... 我可以摆脱挂起状态的唯一方法是回收电力。 有什么想法吗?
    谢谢。
    AJ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    还有一件事我忘了说。。。 按下 Launchpad 上的复位按钮也无法解决问题。 让我脱离"挂起"状态的唯一方法是切断电源。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道您的代码有什么问题、因为我看不到您的代码。

    您必须注意用户指南第1.4.2节中提到的所有内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不用担心、我已经解决了。 我只需要在复位后启用端口、因此我在初始化例程中添加了该指令。

    谢谢。
    AJ