Did you correctly put the BLE stack into low power before putting the CPU into low power mode?
Also, clock sources being turned off might be a cause too?
The system is set up with the IMO at 48MHz. So the ECO should only be used for the BLE.
If my application are ready to go to sleep, i am checking the BLE Module the following way:
blePower = CyBle_GetBleSsState();
if(ble_lpmode == CYBLE_BLESS_DEEPSLEEP &&
(blePower == CYBLE_BLESS_STATE_DEEPSLEEP || blePower == CYBLE_BLESS_STATE_ECO_ON))
if(blePower != CYBLE_BLESS_STATE_EVENT_CLOSE)
(where ble_lpmode is the response from the last time the CyBle_EnterLPM(CYBLE_BLESS_DEEPSLEEP) function was called).
According to the documentation in the PSoC Creator:
* <td>BLE Sub System is in process of wakeup from Deep Sleep Mode and ECO(XTAL) is turned on.
* CPU can be put in Deep Sleep Mode.</td>
Thus, I would remove the || blePower == CYBLE_BLESS_STATE_ECO_ON part of the check code, as you would be saying the unit is in deepsleep when it is just waking up from deepsleep and is awake now.