cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

ViTi_1549261
New Contributor II

Hello,

   

I cannot get CYBLE-014008-00 Deep Sleep Current to correct level. Datasheet specifies 1.3 uA current for Deep Sleep Mode.

   

Here is one setup that I have tested:

   

-CYBLE-14008-EVAL connected to CY8CKIT-42 BLE Pioneer Board.

   

-Following application programmed

   
    

#include <project.h>
int main(void)
{
    CySysPmDeepSleep();
    //CySysPmHibernate();
    
}

   
   

-CYBLE-14008-EVAL removed from CY8CKIT-42 BLE Pioneer Board.

   

-Power supplied to CYBLE-14008-EVAL board (J1 pins 23 and 24)

   

-Current is measured from power supply

   

 

   

As a result I am getting currents of 1.1 - 1.3 mA

   

If I comment out CySysPmDeepSleep() and enable CySysPmHibernate() Current goes to specified levels of Hibernate mode.

   

 

   

I have set debug pins to GPIO-mode from PSOC-Creator. 

   

 

   

Could somebody help me to get Sleep current to specified level?

0 Likes
Reply
1 Solution
Anonymous
Not applicable

As David pointed out, with BLE in the project, the ECO is enabled in the cy_boot called at bootup. So if you don't need it, you need to call the CySysClkEcoStop() API before going to Deep Sleep.

   

If BLE is active in your project, then ECO clock switch is handled by the BLE Deep Sleep function (CyBle_EnterLPM). The application should consider the BLE Stack LPM state before putting the CPU or the overall device into low power mode. See one of the many example projects from the BLE Pioneer kit and 100 days 100 project repository for details.

View solution in original post

0 Likes
Reply
4 Replies
DaPi_1514011
New Contributor II

Funny you should post that, but I'm trying to track down an exact issue on a ProC BLE module.  Exactly the same current - 1.3mA.

   

I've cut everything back and found that in my test project it's the ECO clock.  Switching on uses 1.3mA, switching off uses nothing (30uA).

   

Trouble is BLE uses ECO and so also uses about that.

0 Likes
Reply
Anonymous
Not applicable

As David pointed out, with BLE in the project, the ECO is enabled in the cy_boot called at bootup. So if you don't need it, you need to call the CySysClkEcoStop() API before going to Deep Sleep.

   

If BLE is active in your project, then ECO clock switch is handled by the BLE Deep Sleep function (CyBle_EnterLPM). The application should consider the BLE Stack LPM state before putting the CPU or the overall device into low power mode. See one of the many example projects from the BLE Pioneer kit and 100 days 100 project repository for details.

View solution in original post

0 Likes
Reply
ViTi_1549261
New Contributor II

Thanks,

   

 

   

I got it working with your advices By the way, where I can find documentation of system-calls like

   

-CySysClkEcoStop() and

   

-CySysPmDeepSleep()

0 Likes
Reply
JoMe_264151
Expert II

In the "System Reference Guide" from Creator Help menu.

   

 

   

Bob

0 Likes
Reply