在线时间1 小时
UID3431523
注册时间2017-10-17
NXP金币0
TA的每日心情 | 奋斗 2020-11-17 13:20 |
---|
签到天数: 1 天 [LV.1]初来乍到
新手上路
- 积分
- 24
- 最后登录
- 2020-11-18
|
大家好,
最近在调试S32K144 的低功耗和唤醒功能,请问有好的程序或者建议使得S32K144 进入VLPS模式吗?我的程序进入相应得指令就老是会复位一次,然后电流才下降;附上我的程序
void Power_RUN_to_STOP (void)
{
#if 0
/* Set the SLEEPDEEP bit to enable deep sleep mode (STOP) */
S32_SCB->SCR |= S32_SCB_SCR_SLEEPDEEP_MASK;
/*select stop mode*/
SMC->PMCTRL = SMC_PMCTRL_STOPM(0b00);
SMC->STOPCTRL = SMC_STOPCTRL_STOPO(0b01);
if(SMC->PMSTAT == 0x01)
{
asm("WFI");
}
#else
/* Disable the JTAG port pins */
/* Disable Adc Pins */
PMC->REGSC |= PMC_REGSC_BIASEN(1); // [1] CLKBIASDIS = 1 In VLPS mode, the bias current for SIRC, FIRC, PLL is disabled
/* Disable the Fosc and Sosc from chip*/
SCG->FIRCCSR = SCG_FIRCCSR_FIRCEN(0);
while(SCG->FIRCCSR & (1 << 24));
SCG->SOSCCSR = SCG_SOSCCSR_SOSCEN(0);
S32_SCB->SCR |= S32_SCB_SCR_SLEEPDEEP_MASK|0x2; /* allow deep sleep mode0 */
SMC->PMPROT = SMC_PMPROT_AVLP(1); /* allow very low power mode*/
SMC->PMCTRL = SMC_PMCTRL_STOPM(2);
if(SMC->PMSTAT == 0x01)
{
asm("WFI");
}
#endif
}
void init_NVIC(void)
{
power_cp_wakeup_set();
INT_SYS_ClearPending(PORTE_IRQn);
INT_SYS_SetPriority(PORTE_IRQn, 0);
// PORTE_interrupt
S32_NVIC-> ICPR [1] = (1 <<(63%32));
S32_NVIC-> ISER [1] = (1 <<(63%32));
S32_NVIC-> IP [63] = 0x00;
//PORTE-> DFER |= (1 << 5);
}
void power_set_mode(POWER_SYS_TYPE mod)
{
init_NVIC();
Power_RUN_to_STOP();
}
|
|