Part Number: CC2640R2F
Hello,
I am working on TI CC2640R2F Launch Pad.
I am having issue in waking up from standby deep sleep state.
I am trying to wake up using a Button interrupt on BTN-1 or DIO13.
I am using same button for waking up from shutdown mode and it works for shutdown mode.
Here's my code snippet for shutdown mode and stanby mode.
void *mainThread(void *arg0)
{
Semaphore_Params_init(&standbySemParams);
standbySem = Semaphore_create(0, &standbySemParams, NULL);
/* Call driver init functions */
GPIO_init();
I2C_init();
SPI_init();
UART_init();
GPIO_setConfig(Board_GPIO_LED1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
PIN_Config wakePin[] ={ Board_PIN_BUTTON0 | PIN_INPUT_EN | PIN_PULLUP | PINCC26XX_WAKEUP_NEGEDGE, PIN_TERMINATE};
for (;;) {
switch (appState) {
case APP_STATE_ACTIVE:
{
if (Semaphore_pend(standbySem, BIOS_NO_WAIT)) {
if (Semaphore_pend(standbySem, BIOS_NO_WAIT)) {
appState = APP_STATE_STANDBY;
}
break;
}
break;
}
case APP_STATE_SHUTDOWN: //when called Power_shutdown controller wakesup with same wakepin from shutdown and restarts main routine
{
PINCC26XX_setWakeup(wakePin); 
Power_shutdown(0, 0); 
break;
}
}
}
Power_sleep gets stuck inside PRCMDeepSleep
/* 13. Invoke deep sleep to go to STANDBY */
What could be possible solution to wakeup from deepsleep standby using wakeup pin and LED1 toggle activates which stands right after Power_sleep() call?
Thanks
break;
}
case APP_STATE_STANDBY:
{
GPIO_toggle(Board_GPIO_LED1); /* about to sleep */
Power_sleep(PowerCC26XX_STANDBY);
//problem is here when it enters Power_sleep it goes into deepsleep mode and never responds to button press interrupt
GPIO_toggle(Board_GPIO_LED1); /* wakeup from sleep */ 
break;
}
}}
}
}
Power_sleep gets stuck inside PRCMDeepSleep
/* 13. Invoke deep sleep to go to STANDBY */
PRCMDeepSleep();
What could be possible solution to wakeup from deepsleep standby using wakeup pin and LED1 toggle activates which stands right after Power_sleep() call?
Thanks