查看: 6000|回复: 8

[求助] Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

[复制链接]

该用户从未签到

2

主题

47

帖子

0

注册会员

Rank: 2

积分
104
最后登录
1970-1-1
发表于 2013-7-31 10:14:53 | 显示全部楼层 |阅读模式
想向各位请教一下(K40DN512VLK10):
1。怎么让K40进入低功耗模式,如睡眠模式?
我用处理器专家生成的一个函数“Cpu_SetOperationMode()"可以进入睡眠模式,还有没有其它办法,比如直接操控寄存器的。
2。怎么让K40醒来?
让K40进入睡眠模式之后,怎么唤醒它。我的硬件有用LLWU_P6,LLWU_P7接了两个按键。想用这两个按键之一来唤醒。有什么好的办法。
注:我需要切实可行的、经过验证过的代码,那些理论或方法就不要讲了,时间很急。在些谢谢大家了。
我知道答案 目前已有8人回答
回复

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-7-31 10:43:43 | 显示全部楼层

回复:Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

1.对于如何进入低功耗模式,你既然知道PE的Cpu_SetOperationMode()函数,那如果想直接操作寄存器的话,直接到那个函数中把进入对应模式的代码复制出来直接用不就好了,例如进入STop模式代码如下:这一段就是直接操作寄存器的呀,你直接移植到你的代码中即可。
    case DOM_STOP:      
      LLWU_F1 = LLWU_F1_WUF7_MASK |LLWU_F1_WUF6_MASK |LLWU_F1_WUF5_MASK |LLWU_F1_WUF4_MASK |LLWU_F1_WUF3_MASK |LLWU_F1_WUF2_MASK |LLWU_F1_WUF1_MASK |LLWU_F1_WUF0_MASK;      
      LLWU_F2 = LLWU_F2_WUF15_MASK |LLWU_F2_WUF14_MASK | LLWU_F2_WUF13_MASK |LLWU_F2_WUF12_MASK |LLWU_F2_WUF11_MASK |LLWU_F2_WUF10_MASK |LLWU_F2_WUF9_MASK |LLWU_F2_WUF8_MASK;      
      LLWU_F3 = LLWU_F3_MWUF7_MASK |LLWU_F3_MWUF6_MASK |LLWU_F3_MWUF5_MASK |LLWU_F3_MWUF4_MASK |LLWU_F3_MWUF3_MASK |LLWU_F3_MWUF2_MASK |LLWU_F3_MWUF1_MASK |LLWU_F3_MWUF0_MASK;      
      LLWU_FILT1 |= LLWU_FILT1_FILTF_MASK;                                   
      LLWU_FILT2 |= LLWU_FILT2_FILTF_MASK; /* 清除LLWU标志 */                           
      SCB_SCR &= (uint32_t)~(uint32_t)(SCB_SCR_SLEEPONEXIT_MASK);                                   
      SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;                       
      SMC_PMCTRL = (uint8_t)((SMC_PMCTRL & (uint8_t)~(uint8_t)(SMC_PMCTRL_STOPM(0x03))) | (uint8_t)(SMC_PMCTRL_STOPM(0x04) ));                                 
      SMC_STOPCTRL = (SMC_STOPCTRL_PSTOPO(0x00) | SMC_STOPCTRL_VLLSM(0x03));                                   
      (void)(SMC_PMCTRL == 0U);              
      PE_WFI(); //这句才是重点
      break;
2. 让K40唤醒的话,你需要先定义你上面的两个引脚作为唤醒源,不知道你硬件上LLWU_P6连接到那个PIN,假设是PTD6,设置引脚唤醒代码如下:
PORTD_PCR6 = (PORT_PCR_MUX(1)|PORT_PCR_PE_MASK);  //选择GPIO PTD6,设置上拉下拉使能(默认为下拉)
          FGPIOD_PDDR &= ~(0x40);   //设置为快速GPIO PTD6为输入
          LLWU_PE4 = LLWU_PE4_WUPE15(2);
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

47

帖子

0

注册会员

Rank: 2

积分
104
最后登录
1970-1-1
 楼主| 发表于 2013-7-31 15:00:28 | 显示全部楼层

回复:Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

非常感谢你的回复。
但是我试了一下,还是不行。
1。睡眠没问题。SMC_STOPCTRL = (SMC_STOPCTRL_PSTOPO(0x00) | SMC_STOPCTRL_VLLSM(0x03));这个寄存器找不到。
2。还是唤不醒,不知道什么原因。
两个唤醒引脚分别是PTC1----LLWU_P6,PTC3----LLWU_P7。
LLWU_PE2 = LLWU_PE2_WUPE6(2) + LLWU_PE2_WUPE7(2);
唤醒之后需要做些什么事情,还需要配置时钟,初始化定时器及IO口吗?
 
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

459

帖子

0

中级会员

Rank: 3Rank: 3

积分
303
最后登录
2024-10-24
发表于 2013-7-31 16:10:28 | 显示全部楼层

回复:Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

唤醒之后直接就进入RUN模式了呀,K40确实没有那个寄存器,我是参考KL25的一个低功耗Demo描述的,你也可以参看一下这个例子。另外,听你的意思是直接把上面给你的代码直接粘过去用的吗?那你就需要打开PORTC的时钟了,这个是必须的。
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

47

帖子

0

注册会员

Rank: 2

积分
104
最后登录
1970-1-1
 楼主| 发表于 2013-7-31 16:38:22 | 显示全部楼层

回复:Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

恩,开时钟了,这两个IO当普通按键使用的时候,功能正常。
 
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

47

帖子

0

注册会员

Rank: 2

积分
104
最后登录
1970-1-1
 楼主| 发表于 2013-7-31 17:54:40 | 显示全部楼层

RE:Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

哈哈,可以了。你提供的代码是对的,太感谢你了,谢谢。
之前为什么不行?因为按键没开中断,后面将IO口下降沿产生中断,其实在中断里什么也没做。这样进入睡眠之后,检测到有键按下,产生中断,中断就会唤醒。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

19

帖子

0

新手上路

Rank: 1

积分
26
最后登录
1970-1-1
发表于 2013-10-15 16:51:04 | 显示全部楼层

回复:Kinetis K40怎么样进入低功耗模式,又怎么样唤醒?

回复第 4 楼 于2013-07-31 16:10:28发表:
唤醒之后直接就进入RUN模式了呀,K40确实没有那个寄存器,我是参考KL25的一个低功耗Demo描述的,你也可以参看一下这个例子。另外,听你的意思是直接把上面给你的代码直接粘过去用的吗?那你就需要打开PORTC的时钟了,这个是必须的。 

 
您好,弱弱地问一下Cpu_SetOperationMode()函数是利用PE里的哪个组件生成的啊?求解,不甚感激~!!!
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

14

帖子

0

新手上路

Rank: 1

积分
42
最后登录
1970-1-1
发表于 2015-1-17 12:09:03 | 显示全部楼层
我用KDS怎么进入不了SLEEP模式?这是我的配置,请楼主帮忙看下 1.jpg 2.jpg 3.jpg
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
36
最后登录
2019-8-28
发表于 2019-8-28 17:16:13 | 显示全部楼层
wangjianlidan 发表于 2015-1-17 12:09
我用KDS怎么进入不了SLEEP模式?这是我的配置,请楼主帮忙看下

您这是用的哪个软件啊
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-19 13:51 , Processed in 0.118482 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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