- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks,
I got it working with your advices By the way, where I can find documentation of system-calls like
-CySysClkEcoStop() and
-CySysPmDeepSleep()
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the "System Reference Guide" from Creator Help menu.
Bob