查看: 4876|回复: 15

[已解决] 为什么在MCG=FEI、VLPS mode下Slow IRC仍在运作【已解决】

[复制链接]

该用户从未签到

11

主题

54

帖子

0

中级会员

Rank: 3Rank: 3

积分
231
最后登录
2015-11-20
发表于 2014-11-27 17:53:18 | 显示全部楼层 |阅读模式
本帖最后由 yugolee 于 2014-12-1 11:15 编辑

使用FRDM-MKL25Z,RTC的频率输入由Slow IRC(32.768Khz)->MCGIRCLK->CLKOUT pin->RTC Clock Input Pin提供,设定RTC每秒触发一次,然后设定MCG_C1[IREFSTEN]=0让MCGIRCLK在进入stop模式后disable,然后进入VLPS模式,照道理说应该无法从vlps mode唤醒,但奇怪的是RTC仍然每秒触发一次,请问各位大哥这正常吗?
ps:我确定有进入VLPS模式

MCG_C1[IREFSTEN]=0及进入 VLPS程序如下所示。
  1. MCG_C1 = MCG_C1 & (~MCG_C1_IREFSTEN_MASK);
复制代码
  1. void enter_vlps(void)
  2. {        
  3.         /* SCB_SCR: SLEEPDEEP=1 */
  4.         SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;
  5.         /* SMC_STOPCTRL: PSTOPO=0,PORPO=0,??=0,??=0,VLLSM=0 */
  6.         SMC_STOPCTRL = (SMC_STOPCTRL_PSTOPO(0x00) | SMC_STOPCTRL_VLLSM(0x00));
  7.         /* SMC_PMCTRL: STOPM=0x02(VLPS) */
  8.   SMC_PMCTRL &= ~SMC_PMCTRL_STOPM_MASK;
  9.   SMC_PMCTRL |=  SMC_PMCTRL_STOPM(0x2);
  10.         /* Dummy read of SMC_PMCTRL to ensure the register is written before enterring low power mode */
  11.         (void)(SMC_PMCTRL == 0U);        
  12.         /* SCB_SCR: SLEEPONEXIT=0 */
  13.         SCB_SCR &= (uint32_t)~(uint32_t)(SCB_SCR_SLEEPONEXIT_MASK);
  14.         PE_WFI();
  15. }
复制代码
我知道答案 目前已有15人回答
回复

使用道具 举报

该用户从未签到

11

主题

54

帖子

0

中级会员

Rank: 3Rank: 3

积分
231
最后登录
2015-11-20
 楼主| 发表于 2014-11-27 23:44:58 | 显示全部楼层
另外将RTC关掉,启用UART0并设定其Clock path如下,亦即clock source由MCGFLLCLK提供。然后进入VLPS,在由外部经UART0传送数据给MCU,这样居然也能wakeup回到Normal RUN模式,正常来说进入stop mode后FLL不是应该disable吗?现在看来似乎在VLPS下FLL都处于enable状态(即使MCG_C1[IREFSTEN]=0、MCG_C1[IRCLKEN] = 0)

未命名 - 1.jpg
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-28 09:24:30 | 显示全部楼层
    楼主你好
    请问你是否有设置MCG_C1寄存器的IREFSTEN位呢?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-28 09:28:27 | 显示全部楼层
    当然有,如下所示,而且每次wakeup后我查看MCG_C1=0x06,亦即IREFSTEN=0没错,但是MCGIRCLK就是停不了?
    MCG_C1 = MCG_C1 & (~MCG_C1_IREFSTEN_MASK);
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-28 09:51:18 | 显示全部楼层
    如果方便的话直接上传工程吧,以便我们在FRDM-KL25Z开发板上测试。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-28 10:12:54 | 显示全部楼层
    麻烦了,使用 keil 5.11及PE。FEI模式,RTC的频率输入由Slow IRC(32.768Khz)->MCGIRCLK->CLKOUT pin->RTC Clock Input Pin提供,谢谢!!

    Kinetis_test.rar

    5.1 MB, 下载次数: 1, 下载积分: 威望 1

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-28 10:28:36 | 显示全部楼层
    另外我测了一下进入VLPS后消耗电流仍有4.xmA,不知道是不是没有进入VLPS,谢谢了!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-28 10:48:04 | 显示全部楼层
    本帖最后由 FSL_TICS_Robin 于 2014-11-28 10:49 编辑
    yugolee 发表于 2014-11-28 10:28
    另外我测了一下进入VLPS后消耗电流仍有4.xmA,不知道是不是没有进入VLPS,谢谢了!! ...

    4.x mA肯定没有进入VLPS了,哪怕你开启了内部RC在Stop下也就多52uA左右。
    各功耗模式下的数据KL25P80M48SF0你可以在数据手册上看到。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    54

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    231
    最后登录
    2015-11-20
     楼主| 发表于 2014-11-28 10:59:05 | 显示全部楼层
    确实,我也知道没有进入VLPS mode,不过那段进入vlps的程序是从站上copy下来的,看起来也没有问题,执行到enter_vlps()后确实会停 1sec后再wakeup,伤脑筋!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-11-28 11:17:38 | 显示全部楼层
    yugolee 发表于 2014-11-28 10:59
    确实,我也知道没有进入VLPS mode,不过那段进入vlps的程序是从站上copy下来的,看起来也没有问题,执行到e ...

    你可以先参考这篇非PE的例程:手把手学会官方例程<四>:Kinetis KL25 低功耗模式(上,中,下)
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 16:50 , Processed in 0.176086 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表