7 Replies Latest reply on Jun 17, 2015 8:47 PM by DaKn_263916

    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.


      Thank you.


      - Chris