在线时间54 小时
UID3054512
注册时间2014-10-17
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 231
- 最后登录
- 2015-11-20
|
本帖最后由 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程序如下所示。
- MCG_C1 = MCG_C1 & (~MCG_C1_IREFSTEN_MASK);
复制代码- void enter_vlps(void)
- {
- /* SCB_SCR: SLEEPDEEP=1 */
- SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK;
- /* SMC_STOPCTRL: PSTOPO=0,PORPO=0,??=0,??=0,VLLSM=0 */
- SMC_STOPCTRL = (SMC_STOPCTRL_PSTOPO(0x00) | SMC_STOPCTRL_VLLSM(0x00));
- /* SMC_PMCTRL: STOPM=0x02(VLPS) */
- SMC_PMCTRL &= ~SMC_PMCTRL_STOPM_MASK;
- SMC_PMCTRL |= SMC_PMCTRL_STOPM(0x2);
- /* Dummy read of SMC_PMCTRL to ensure the register is written before enterring low power mode */
- (void)(SMC_PMCTRL == 0U);
- /* SCB_SCR: SLEEPONEXIT=0 */
- SCB_SCR &= (uint32_t)~(uint32_t)(SCB_SCR_SLEEPONEXIT_MASK);
- PE_WFI();
- }
复制代码
|
|