打印

MSP432 power_change 例程,在LPM3模式下,寄存器没有变

[复制链接]
893|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ccczzzyyy|  楼主 | 2017-11-23 15:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用官方的power_change例程,想试试深度睡眠模式。在前面几个AM_LDO,AM_DCDC都挺好的,没什么问题。但是从LPM0开始就有点问题了,主程序是进了gotoLPM0()(因为我暂停的时候,是停在CPU_wfi()这个函数里的),但是寄存器PCMCTL0里始终是AM_DCDC,LDO,LF在循环,没有出现LPM_DCDC,LDO,LF的情况,如图1。
后来切入LPM3的时候,PCM寄存器的值还是AM的,没有变,我又去看时钟寄存器里的值,如图2。这个时候,程序应该进LPM3了,但是这个MCLK的时钟,还是选的3M的DCO,分频也是1。
这就不太懂了,LPM3时MCLK不应该最大32k吗,我现在到底是进了LPM3还是没进呢。
还是说我已经进了LPM3,但是调试的时候相当于打断点,一暂停,系统自动从LPM3进入AM模式?

我又仔细看了下,在进PCM_gotoLPM0()之前,包括在PCM_gotoLPM0()这个函数里,好像没有地方改变PCM->CTL0寄存器中第12个位置的值的情况。当这个第12个位置的值为1的时候,标志着进LPM0,一直没有改就一直是0,所以一直是AM的情况。如图3.
这是什么鬼,没有改寄存器的值,是不是相当于一直没进睡眠模式啊?只是调用gotoLPM0中的CPU_wfi忽悠我,让我以为进了LPM0?




1.jpg (22.3 KB )

图1

图1

2.jpg (34.28 KB )

图2

图2

3.jpg (449.02 KB )

图3

图3

相关下载

相关帖子

沙发
ccczzzyyy|  楼主 | 2017-11-23 18:41 | 只看该作者
找到原因了,图1是手册上的。哎,握草,进入睡眠模式之前,需要我手动把MCLK的时钟调到符合要求的值以下,难怪之前睡眠模式的时候,MCLK的时钟一直是DCO的,总算是解决了。。

5.jpg (42.53 KB )

图1

图1

使用特权

评论回复
板凳
dirtwillfly| | 2017-11-23 21:14 | 只看该作者
ccczzzyyy 发表于 2017-11-23 18:41
找到原因了,图1是手册上的。哎,握草,进入睡眠模式之前,需要我手动把MCLK的时钟调到符合要求的值以下, ...

能者自答
如果进入低功耗模式前,有模块在使用mclk,也不能正确进入低功耗状态的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

87

帖子

0

粉丝