PSoC/PRoC BLE - Components cannot be _Start()ed after DeepSleep | Cypress Semiconductor
PSoC/PRoC BLE - Components cannot be _Start()ed after DeepSleep
I have run into a problem. I find that after calling CySysPmDeepSleep(), I am unable to _Start a component that I stopped prior to going to sleep. I do not experience this problem is I _Sleep() and than _Wakeup() the component, or if I CySysPmSleep() instead of using DeepSleep.
I have attached a project that demonstrates this issue. It can be tested directly against the PRoC or PSoC on the CY8CKIT-042-BLE test kit, or with some minor changes, on the regular PSoC 4. This problem does not exist on the regular PSoC 4.
In a nut shell, here is the problem:
/* Prepare for sleep */
PWM_Sleep(); // Sleeping the PWM works
//PWM_Stop(); // Stopping the PWM causes it to not be restartable after Deep Sleep
/* Go into deep sleep */
//CySysPmSleep(); // Both Stop/Start and Sleep/Wakeup work after a standard sleep
CySysPmDeepSleep(); // Only Sleep/Wakeup works after a deep sleep
/* Wake up */
PWM_Wakeup(); // Waking up the PWM after sleep works
//PWM_Start(); // Starting the PWM after sleep does not work after Deep Sleep
Any thoughts would be appreciated. If there is a piece of documentation describing this behavior I am missing, I would appreciate that being pointed out to me as well. I've been unable to locate anything.