查看: 7238|回复: 11

[求助] 求助!KL05进入低功耗模式

[复制链接]

该用户从未签到

4

主题

34

帖子

0

注册会员

Rank: 2

积分
62
最后登录
1970-1-1
发表于 2013-11-18 16:58:07 | 显示全部楼层 |阅读模式
之前在论坛里下到了kinetis 的 low power mode 例程指南 ,但是一直没找到对应的keil例程,能够给我一份domo程序的链接或者压缩文件 ?嘿嘿鉴于我真的有点菜,我对datasheet里也有尽管点困惑,在SMC 的那章里说到,(1)PMC管理了run和stop模式,在very low power和low leakage modes模式中使用停止模式管理(翻译很搓~~),我就很糊涂,低功耗和low leakage有什么关系和差别,我看KL05的datasheet,里面PMC寄存器讲的都是low voltage detect ststus and conctrol 1 register, low voltage detect status and concrol 2 register ,regulator ststus and control register ,标志位都写的是低电压的,我想弱弱的问一下,此处的低电压和所说的低功耗意义有什么联系?之前说的PMC有低电压相关的寄存器,配置低功耗模式是否也是需要配置PMC寄存器?(2)就是我看了网上的程序,好多都用到LLWU,有说到kinetes丰富的唤醒方式,我想问下,LLWU就是唤醒的方式之一么,有没有其他的唤醒方式 ,在我的按键没有LLWU复用的情况下~,非常感谢啊
我知道答案 目前已有10人回答
回复

使用道具 举报

该用户从未签到

4

主题

34

帖子

0

注册会员

Rank: 2

积分
62
最后登录
1970-1-1
 楼主| 发表于 2013-11-19 10:03:17 | 显示全部楼层

RE:求助!KL05进入低功耗模式

拍死我吧,我找到原来的帖子啦,里面都有https://www.nxpic.org.cn/bbs/post.php?page=0&act=view&fid=1280&tid=555664
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2013-11-19 10:27:22 | 显示全部楼层

回复:求助!KL05进入低功耗模式

1,首先,在KL05的官方例程中是有Keil工程的低功耗程序的,下载链接如下:
[url=https://www.freescale.co
m/webapp/sps/download/license.jsp?colCode=KL05-SC&location=null&fpsp=1&WT_TYPE=Lab]https://www.freescale.co
m/webapp/sps/download/license.jsp?colCode=KL05-SC&location=null&fpsp=1&WT_TYPE=Lab[/url] and Test Software&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=zip&WT_ASSET=Downloads&sr=7&amparent_nodeId=1359130311707695721244&amparent_pageType=product
同意并下载,然后解压,程序路径在:KL05\KL05-SC\KL05-SC\klxx-sc-baremetal\build\keil\low_power_demo
2,关于你的问题(1),我想下面的图可以帮助你理解,其实low leakage modes比very low power睡眠程度更深,这个时候工作的模块更少。具体你可以查看reference manual(KL05P48M48SF1RM)的130页,表格7-1 Chip power modes
lower.jpg
3,PMC那么是电源管理,主要是讲低电压检查,并不是低功耗哦。
4,LLWU是唤醒LLSx状态的一个统称,注意哦,只有LLSx才用LLWU,在reference manual第3章的表3-15你会看到具体的唤醒源。
希望能够帮到你,其实我们写了一个KL25的low power demo的中文文档,你可以参考看看,就是2楼的贴。
 
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

34

帖子

0

注册会员

Rank: 2

积分
62
最后登录
1970-1-1
 楼主| 发表于 2013-11-21 16:02:42 | 显示全部楼层

回复:求助!KL05进入低功耗模式

您好,我发现咱们的datasheet好像不太一样啊,我的130页没有表格啊,而且我在KL05 的低功耗DEMO里看到,
case VLPS:
      printf("\n enter into VLPS mode--.\n");   
  
      SMC_PMPROT = SMC_PMPROT_AVLP_MASK;  
      SMC_PMCTRL = SMC_PMCTRL_STOPM(2);     // 10:Very-Low-Power Stop (VLPS)
      DisableUart0Pin();
      stop ();
      EnableUart0Pin();
      break;
有个stop函数 ,stop()在arm_cm0.c中,
void stop (void)
{
        /* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */
        SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;       
        /* WFI instruction will start entry into STOP mode */
#ifndef KEIL
        // If not using KEIL's uVision use the standard assembly command
        asm("WFI");
#else
        // If using KEIL's uVision, use the CMSIS intrinsic
        __wfi();
#endif
}
,说实话这段函数的意思我不太懂啊没,前面有些通过 WFI 可以进入 VLPS模式 ,应该是arm单片机的内容 ,但是我把这段程序移进我的工程里,编译说找不到SCB_SCR_SLEEPDEEP_MASK,我发现我的工程文件MKL05Z4.h里没有SCB寄存器的内容,我就把demo程序里的那段复制进去,不知道可以不?
然后后面编译,asm("WFI")这句会出现警告,..\Source\armcm0.c(31): warning:  #223-D: function "asm" declared implicitly,找不到asm的定义,我到demo程序里有没有找到,显示未定义,我不了解这是什么情况?
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2013-11-22 12:37:46 | 显示全部楼层

回复:求助!KL05进入低功耗模式

回复第 4 楼 于2013-11-21 16:02:42发表:
您好,我发现咱们的datasheet好像不太一样啊,我的130页没有表格啊,而且我在KL05 的低功耗DEMO里看到,
case VLPS:
printf("\n enter into VLPS mode--.\n");

SMC_PMPROT = SMC_PMPROT_AVLP_MASK;
SMC_PMCTRL = SMC_PMCTRL_STOPM(2); // 10:Very-Low-Power Stop (VLPS)
DisableUart0Pin();
stop ();
EnableUart0Pin();
break;
有个stop函数 ,stop()在arm_cm0.c中,
void stop (void)
{
/* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */
SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;
/* WFI instruction will start entry into STOP mode */
#ifndef KEIL
// If not using KEIL's uVision use the standard assembly command
asm("WFI");
#else
// If using KEIL's uVision, use the CMSIS intrinsic
__wfi();
#endif
}
,说实话这段函数的意思我不太懂啊没,前面有些通过 WFI 可以进入 VLPS模式 ,应该是arm单片机的内容 ,但是我把这段程序移进我的工程里,编译说找不到SCB_SCR_SLEEPDEEP_MASK,我发现我的工程文件MKL05Z4.h里没有SCB寄存器的内容,我就把demo程序里的那段复制进去,不知道可以不?
然后后面编译,asm("WFI")这句会出现警告,..\Source\armcm0.c(31): warning: #223-D: function "asm" declared implicitly,找不到asm的定义,我到demo程序里有没有找到,显示未定义,我不了解这是什么情况?
 

你好,我看的是reference manual,不是datasheet 哦,链接是这个:
http://cache.freescale.com/files/32bit/doc/ref_manual/KL05P48M48SF1RM.pdf?fsrch=1&sr=1
 
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2013-11-22 12:56:46 | 显示全部楼层

回复:求助!KL05进入低功耗模式

你好,SCB_SCR这个寄存器是cortex-M0+里面的,具体你可以查看ARM内核文档,我这里截个图给你:
12.jpg
MKL05Z4.h文件,你可以直接使用官方给的例程里面的头文件,这里都有定义的。
另外,你的警告很明显,如果你使用了Keil的话,就不用定义asm了,可以直接使用
        // If using KEIL's uVision, use the CMSIS intrinsic
 __wfi();
或者,你和官网代码一样,在keil中做这个设置,如下图:
13.jpg
希望能帮到你!
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

34

帖子

0

注册会员

Rank: 2

积分
62
最后登录
1970-1-1
 楼主| 发表于 2013-11-26 14:52:39 | 显示全部楼层

回复:求助!KL05进入低功耗模式

谢谢您的指导!我按照DEMO改了一段最简单的出来,如下,现在进入VLPS只会减小4ma电流,外部晶振由振变为不振,之前的屏和灯都在保持,之后我在这段程序之后又加了点LCD程序,debug的之后下载就会停在这里mode|= SMC-&gtMSTAT不在往下执行,再点一下RUN才会继续执行,所以我想问下,我看到有调试模式但没有清楚明白调试模式的意思,是处于调试状态还是什么,所以我想问下,这是否算进去VLPS模式,但是寄存器SMC-&gtMSTAT没变,仍指示为RUN,是否是没进去VLPS模式?
void EnterLowPowerMode()

volatile unsigned int dummyread;
uint8 mode=0,i;
  /* The PMPROT register may have already been written by init code
  SMC-&gtMPROT = SMC_PMPROT_AVLP_MASK;           
  SMC-&gtMCTRL &= ~SMC_PMCTRL_STOPM_MASK; //设置SMC_PMPOT寄存器
  SMC-&gtMCTRL |=  0x02;
  dummyread = SMC-&gtMCTRL;//设置SMC_PMCTRL寄存器
  dummyread++;
  SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk ;
  __wfi();
#else
  stop();
#endif
mode|= SMC-&gtMSTAT;
}
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

34

帖子

0

注册会员

Rank: 2

积分
62
最后登录
1970-1-1
 楼主| 发表于 2013-12-2 17:59:40 | 显示全部楼层

回复:求助!KL05进入低功耗模式

我确定是进入 VLPS 了,因为,正常工作电流是4.9-5.6mA,VLPS 电流是 3.08-16.01uA,所以我进入低功耗减小4mA左右电流是正确的,另外我在参考手册中看到,在debug有效时,SMC-&gtMSTAT不会更新,是我看的时候没有自己理解 ,就一直怀疑着,现在确定肯定进啦
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2013-12-3 09:34:07 | 显示全部楼层

RE:求助!KL05进入低功耗模式

楼主以后问题,欢迎论坛中讨论!!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

25

帖子

0

新手上路

Rank: 1

积分
12
最后登录
1970-1-1
发表于 2013-12-20 13:52:50 | 显示全部楼层

回复:求助!KL05进入低功耗模式

芯片中文资料上搜IC数据手册看中文版吧,700多万中文datasheet,还可以用中文关键字搜索数据手册内容
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-19 01:25 , Processed in 0.111640 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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