eryueniao 发表于 2014-9-18 17:56:10

求助 kl05 进入低功耗VLLS0_2时,怎么唤醒(已解决)

本帖最后由 FSL_TICS_ZP 于 2014-10-8 16:11 编辑

如题,我配置了PB2管脚的 LLWU_P5功能,但是没有唤醒,并且单片机在低功耗模式下程序也下不进去了。

FSL_TICS_ZP 发表于 2014-9-19 09:29:27

你好,楼主!
我建议你可以参考一下FRDM-KL05Z开发板的例程包中的low_power_demo例程。
里面就有进入各式低功耗模式后,以及退出的演示,你可以参考一下!
FRDM-KL05Z开发板链接:
http://www.freescale.com/zh-Hans/webapp/sps/site/prod_summary.jsp?code=FRDM-KL05Z

eryueniao 发表于 2014-9-19 21:02:27

FSL_TICS_ZP 发表于 2014-9-19 09:29
你好,楼主!
我建议你可以参考一下FRDM-KL05Z开发板的例程包中的low_power_demo例程。
里面就有进入各式低 ...

嗯,我就是参考的历程代码,不知道唤醒管脚需要外部上啦吗?我用的PB2没有唤醒

ccrt 发表于 2014-9-20 08:57:42

eryueniao 发表于 2014-9-19 21:02
嗯,我就是参考的历程代码,不知道唤醒管脚需要外部上啦吗?我用的PB2没有唤醒 ...

把你情况说详细一下别人才能帮助你,你怎么做的,都写下来,
很多时候出问题的可能就是小细节

eryueniao 发表于 2014-9-21 15:57:42

本帖最后由 eryueniao 于 2014-9-21 16:02 编辑

ccrt 发表于 2014-9-20 08:57
把你情况说详细一下别人才能帮助你,你怎么做的,都写下来,
很多时候出问题的可能就是小细节 ...

void Low_Power(){
        //设置唤醒管脚   PB2
       
                IO_FUN_SEL(MKL_PORTB,2,1);//wakeup==>PB2
                IO_PE_CONFIG(MKL_PORTB,2,1);                                                                                                                                                               
                  IO_PS_CONFIG(MKL_PORTB,2,1);
                GPIO_DDR_INPUT(MKL_PORTB,2);
       
       
       
                IO_IRQ_CONFIG(MKL_PORTB,2, IO_EITHER_EDGE_IRQ);
                NVIC_EnableIRQ(PORTB_IRQn);//开启GPIOB中断
                    NVIC_SetPriority(PORTB_IRQn,2);//设置GPIOB优先级 //
       
                               
       
        enable_irq (7); //LLWU中断
        enable_irq (31); //PTB中断
       
                                PORTB_PCR2 = PORT_PCR_MUX(1);//ADC_TEMPER// 开启PB2管脚LLWU_P5功能
                                LLWU_PE2_WUPE5(0x03);//下降沿
                              LLWU_F1 |= LLWU_F1_WUF5_MASK;   // write one to clear the flag
       
        __enable_irq();
}
void LLWU_Test(){
                Low_Power();
       
                SMC_PMPROT = SMC_PMPROT_AVLLS_MASK;   
                    SMC_PMCTRL = SMC_PMCTRL_STOPM(4);//Very-Low-Leakage Stop (VLLSx)   
                    SMC_STOPCTRL = SMC_PMCTRL_STOPM(0) | SMC_STOPCTRL_PORPO_MASK;// disable POR circuit
                                                                                                                                                                //This bit controls whether the POR detect circuit is enabled in VLLS0 mode.
       
                stop ();//进入此模式就下载不了程序了
                Yp_Xty_Cx();
        while(1);
}

FSL_TICS_ZP 发表于 2014-9-22 08:46:52

本帖最后由 FSL_TICS_ZP 于 2014-9-22 08:51 编辑

eryueniao 发表于 2014-9-19 21:02
嗯,我就是参考的历程代码,不知道唤醒管脚需要外部上啦吗?我用的PB2没有唤醒 ...

楼主,现在我有点对你的问题有感到疑问,
首贴,你说MCU进入低功耗模式后,无法唤醒。
但是,你有回帖说程序下载不进去,能否请你再解释一下你的疑问!

eryueniao 发表于 2014-9-22 09:09:46

FSL_TICS_ZP 发表于 2014-9-22 08:46
楼主,现在我有点对你的问题有感到疑问,
首贴,你说MCU进入低功耗模式后,无法唤醒。
但是,你有回帖说 ...

我先下载了我编译的低功耗程序之后,在下载程序就下不进去了。
下载完低功耗程序之后,我用万用表测电源电流已经达到nA级了,所以我说他进入低功耗模式了。
我ptb2管脚接了一个按键,下降沿唤醒,但是按下按键没有唤醒,重新下载程序也下不进去了。(低功耗时下载管脚没有配置,还是默认配置)

FSL_TICS_Rita 发表于 2014-9-22 11:53:38

eryueniao 发表于 2014-9-22 09:09
我先下载了我编译的低功耗程序之后,在下载程序就下不进去了。
下载完低功耗程序之后,我用万用表测电源 ...

你好,负责在线支持kinetis产品的工程师,这两天外出培训了,周三回来。希望网友们热心回复和积极讨论哈~~

lcptw 发表于 2014-9-22 12:17:20

关注一下,Kenites系列的例程里大多数都只有进入休眠的例子,没有唤醒的例子哈。{:funk:}

FSL_TICS_ZP 发表于 2014-9-22 14:32:24

eryueniao 发表于 2014-9-22 09:09
我先下载了我编译的低功耗程序之后,在下载程序就下不进去了。
下载完低功耗程序之后,我用万用表测电源 ...

1.对于不能再下载程序,我建议你重新上电后,马上连接再试试,或者按Reset键后,马上进行Debug。
2.关于引脚唤醒定功耗模式,例程上应该是有的,你完全可以参考。

eryueniao 发表于 2014-9-23 08:40:01

本帖最后由 eryueniao 于 2014-9-23 08:42 编辑

FSL_TICS_ZP 发表于 2014-9-22 14:32
1.对于不能再下载程序,我建议你重新上电后,马上连接再试试,或者按Reset键后,马上进行Debug。
2.关于 ...

又仔细看了遍例程,把之前程序的LLWU_PE2_WUPE5(0x02);改成LLWU_PE2 = LLWU_PE2_WUPE5(0x02);之后可以唤醒,
但是唤醒之后我加了点灯程序,led没有亮。
我的测试过程,上电,灯亮,电流为8mA
                进入低功耗,灯灭,电流为 0.1~0.2 uA(万用表测的)
                唤醒,灯不亮,电流7.4mA
                唤醒之后我的程序是点灯和检测按键,灯没亮,不知道怎么回事?
我重复测了好几遍,都是这样的现象。
注:在   stop()语句后加的点灯程序

FSL_TICS_ZP 发表于 2014-9-23 09:20:45

eryueniao 发表于 2014-9-23 08:40
又仔细看了遍例程,把之前程序的LLWU_PE2_WUPE5(0x02);改成LLWU_PE2 = LLWU_PE2_WUPE5(0x02);之后可以唤 ...

你好,楼主!
从VLLS0唤醒后,引脚状态被嵌制,需要释放,具体请看以下图片。

eryueniao 发表于 2014-9-23 09:50:06

FSL_TICS_ZP 发表于 2014-9-23 09:20
你好,楼主!
从VLLS0唤醒后,引脚状态被嵌制,需要释放,具体请看以下图片。
...

哈哈   成功了   感谢飞思卡尔,感谢阿莫论坛                     {:lol:}

FSL_TICS_ZP 发表于 2014-9-23 10:44:55

eryueniao 发表于 2014-9-23 09:50
哈哈   成功了   感谢飞思卡尔,感谢阿莫论坛

不客气,有问题再交流!

eryueniao 发表于 2014-9-23 10:52:18

FSL_TICS_ZP 发表于 2014-9-23 10:44
不客气,有问题再交流!

又遇到问题了,唤醒之后串口又不打印了                                 

FSL_TICS_ZP 发表于 2014-9-23 11:20:47

eryueniao 发表于 2014-9-23 10:52
又遇到问题了,唤醒之后串口又不打印了

一般唤醒后,首先要检查目前的时钟模式是否是PEE模式,如果没有确保进入PEE模式,,然后最好
重新配置一些UART时钟,确保万无一失。

eryueniao 发表于 2014-9-23 14:07:05

FSL_TICS_ZP 发表于 2014-9-23 11:20
一般唤醒后,首先要检查目前的时钟模式是否是PEE模式,如果没有确保进入PEE模式,,然后最好
重新配置一 ...

我是这样设置的,不知道还需要设置什么

                        stop ();
                       
                        MCG_C6 |= MCG_C6_CME0_MASK;
                        PORTB_PCR3 = PORT_PCR_MUX(0x2);                                     /* UART0_TXD                  */
                        PORTB_PCR4 = PORT_PCR_MUX(0x2);
                        delay(50);
                        if((PMC_REGSC & 0x08) == 0x08)
                                        PMC_REGSC |= 0x08;
                        //uart0SendString("ket2\n");
                        if (LLWU_F1 & LLWU_F1_WUF6_MASK) {
                                        LLWU_F1 |= LLWU_F1_WUF6_MASK;
                        }
                       
                       
                        uart0Init(9600,0,0,8,1);
                        delay(50);
                        uart0SendString("up\n");                //唤醒后串口一直收不到

eryueniao 发表于 2014-9-23 17:43:40

eryueniao 发表于 2014-9-23 14:07
我是这样设置的,不知道还需要设置什么

                        stop ();


问题已经解决,在飞思卡尔论坛找到的资料
KL系列低功耗例程KEIL工程补丁

32MCU 发表于 2014-9-26 09:58:58

KL系列低功耗例程KEIL工程补丁.收藏。

eryueniao 发表于 2014-9-26 21:17:33

32MCU 发表于 2014-9-26 09:58
KL系列低功耗例程KEIL工程补丁.收藏。

enen低功耗必须的打补丁                  
页: [1]
查看完整版本: 求助 kl05 进入低功耗VLLS0_2时,怎么唤醒(已解决)