Hi.
I have a problem with the low consumption mode on my сс1352. I want to put 1352 into standby mode for this I use the following construction:
Clock_scheduleNextTick(100,ticks);//set time to slep
Power_registerNotify(&PWR_noti, PowerCC26XX_AWAKE_STANDBY, (Power_NotifyFxn) PwrMgmt_ExitSleepNotification, NULL);
Power_releaseConstraint(PowerCC26XX_DISALLOW_STANDBY);
PowerCC26XX_standbyPolicy();
In PowerCC26XX_standbyPolicy(); when debugging I tntry :
ticks = Clock_getTicksUntilInterrupt();
/* convert ticks to usec */
time = ticks * Clock_tickPeriod;
/* check if can go to STANDBY */
if (time > Power_getTransitionLatency(PowerCC26XX_STANDBY,
Power_TOTAL)) {
/* schedule the wakeup event */
ticks -= PowerCC26X2_WAKEDELAYSTANDBY / Clock_tickPeriod;
Clock_setTimeout(Clock_handle((Clock_Struct *)&PowerCC26X2_module.clockObj), ticks);
Clock_start(Clock_handle((Clock_Struct *)&PowerCC26X2_module.clockObj));
here I have the first question----- why the time that I set through Clock_scheduleNextTick was not passed here Clock_getTicksUntilInterrupt (); .
Further the code executes
/* go to standby mode */
Power_sleep(PowerCC26XX_STANDBY);
This function call :
SysCtrlStandby(retainCache,
VIMS_ON_CPU_ON_MODE,
SYSCTRL_PREFERRED_RECHARGE_MODE);
which essentially transfers to the desired mode,however upon returning to Power_sleep , it turns on power again:
/* 4. If didn't retain VIMS in standby, re-enable retention now */
if (retainCache == false) {
/* 5.1 If previously in a cache mode, restore the mode now */
if (modeVIMS == VIMS_MODE_ENABLED) {
VIMSModeSet(VIMS_BASE, modeVIMS);
}
/* 5.2 Re-enable retention */
PRCMCacheRetentionEnable();
}
/* 6. Start re-powering power domains */
PRCMPowerDomainOn(poweredDomains);
Here I have a second question --- how to make ss1352 fall asleep at the right time for me?