查看: 3693|回复: 13

[分享] mkl4 进入vlps低功耗模式功耗降不下来

[复制链接]

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
发表于 2015-1-28 15:04:18 | 显示全部楼层 |阅读模式
大家好,我用MKL14芯片,参考坛子里KL25的低功耗的demo程序,将代码移植到MKL14上运行,由于我只需要进入VLPS模式,因此,
只需要测试VLPS模式。在测试时,发现不管进不进VLPS模式,我的功耗大致维持在10MA左右。跟没有进VLPS相比,功耗就相差1-2MA。

“在进VLPS模式之后,代码就停止执行,唤醒之后,代码继续执行”,另外,在调试运行的时候会有提示进入“low power stop"。我通过这个方法判断是否进入VLPS模式,当然,现在接了调试接口,会导致功耗到MA级别,拔掉调试接口,在VLPS模式下功耗为800薇安左右,跟VLPS的理论值还是相差很大。
各位大神,有没有什么思路提供参考下,谢谢!

进入vlps的代码如下所示:
enable_pta_interrupt();
   uninit_user();
   enable_porta_clock();
   //clockMonitor(0);
            /*Go to VLPS .Means: Any interrupt could wake up from this mode*/
            enter_vlps();
   /*just exit vlps mode can be run here*/
   
   __init_user();
   //clockMonitor(1);
   disable_pta_interrupt();

void enter_vlps(void)
{
  volatile unsigned int dummyread;
  /* The PMPROT register may have already been written by init code
     If so then this next write is not done since  
     PMPROT is write once after RESET
     allows the MCU to enter the VLPR, VLPW, and VLPS modes.
     If AVLP is already writen to 0
     Stop is entered instead of VLPS*/
  SMC_PMPROT = SMC_PMPROT_AVLP_MASK;           
  /* Set the STOPM field to 0b010 for VLPS mode */
  SMC_PMCTRL &= ~SMC_PMCTRL_STOPM_MASK;
  SMC_PMCTRL |=  SMC_PMCTRL_STOPM(0x2);
  /*wait for write to complete to SMC before stopping core */  
  dummyread = SMC_PMCTRL;
  dummyread++;
  /* Now execute the stop instruction to go into VLPS */
  #ifdef CMSIS
  /* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */
  SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;
  __wfi();
#else
  stop();
#endif
}

void stop (void)
{
/* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */
SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;
asm("WFI");


}
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2015-1-29 10:17:13 | 显示全部楼层
1. 代码可以是没有问题的,我们也推荐很多客户去参考。
2. 我建议完整的测试代码,既包括进入低功耗模式,也包括退出部分,最后请确保测量的电流只为MCU本身。
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-1-29 12:08:27 | 显示全部楼层
FSL_TICS_ZP 发表于 2015-1-29 10:17
1. 代码可以是没有问题的,我们也推荐很多客户去参考。
2. 我建议完整的测试代码,既包括进入低功耗模式, ...

现在我做的测试,把外围电路全部断开了,只留了一个3.3v的给MCU供电。另外,低功耗模式下对IO口的配置有没有要求?
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-1-29 12:13:39 | 显示全部楼层
唤醒通过PORTA的中断,进入低功耗也是通过GPIO口,检测低电平的时间来进入低功耗。从实验结果上看,我觉得已经进入了VLPS模式,但是,目前功耗还是降不下来。刚开始的时候功耗有140MA,我将其中的一个IO口从output模式配置成input模式,并且将原来的高电平输出改成低电平输入,功耗一下子从140MA下降到8MA左右。但是,现在我将可以配置的所有IO口配置成input模式,功耗不能进一步下降了。
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-1-29 12:29:24 | 显示全部楼层
补充一下,不管GPIO配置成输入或者输出,GPIOX_PDDR的值都是0x0a0a0a0a
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-1-29 13:46:37 | 显示全部楼层
用cw10.6自动生成的mkl14的代码,然后加上MKL25的低功耗的API,结果测试出来还是没有达到理论值。请FAE帮忙看看吧,谢谢!
代码在附件中,没有唤醒,就是简单的进入低功耗。

test2.rar

250.14 KB, 下载次数: 2, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-1-29 14:16:07 | 显示全部楼层
有两个问题想确认下:

第一,进入vlps模式之后,是不是所有的pin脚的下拉电阻都被使能,而不管正常情况下的配置?
第二,如果外围电路对该pin脚配置的是上拉电阻,会不会影响功耗?
回复 支持 反对

使用道具 举报

该用户从未签到

13

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
491
最后登录
1970-1-1
发表于 2015-4-29 12:48:16 | 显示全部楼层
我现在也遇到这个问题,常态下功耗6ma,进入vlps模式后600微安。 不知道还需要其他什么配置吗
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

90

帖子

0

中级会员

Rank: 3Rank: 3

积分
357
最后登录
2015-12-1
 楼主| 发表于 2015-4-29 13:27:02 | 显示全部楼层
lonny 发表于 2015-4-29 12:48
我现在也遇到这个问题,常态下功耗6ma,进入vlps模式后600微安。 不知道还需要其他什么配置吗 ...

你的IO口设置的是上拉电阻吗?如果是上拉电阻,可以尝试下去掉这个上拉电阻试试看功耗能不能奖下来。
回复 支持 反对

使用道具 举报

该用户从未签到

13

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
491
最后登录
1970-1-1
发表于 2015-4-29 13:32:35 | 显示全部楼层
本帖最后由 lonny 于 2015-4-29 13:40 编辑
cjpx84 发表于 2015-4-29 13:27
你的IO口设置的是上拉电阻吗?如果是上拉电阻,可以尝试下去掉这个上拉电阻试试看功耗能不能奖下来。 ...

内部上拉 还是外部的,我试试看
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-23 14:00 , Processed in 0.110225 second(s), 29 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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