DeepSleep Mode

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi,

I’m a German student in electronic engineering and using the CYBLE-014008-Eval with the Pioneer Kit in my bachelor dissertation. It’s about replacing infrared in remote controls with BLE. A modified UART protocol is used as interface -> a startcondition is followed by a frame of UART Bytes. The startcondition will be cut in software before the input-signal is routed to a UART component.

The attached project is based on “Day020_BLE_UART” in “100_Projects_in_100_Days” .

It’s working very well so far inclusive the normal sleep-mode but I have to reduce the power consumption while advertising a bit more. I tried to use “deepsleep” but every experiment failed. The current was still at ~5mA. 0,5mA is from an external circuit.

I tried to apply different examples read “AN92584 - Designing for Low Power…” and looked in this community, but I haven’t found what I am doing wrong. If I replace " CySysPmSleep();” with “CySysPmDeepSleep();” in the main-function the controller is freezing. Reducing the clock frequency is not possible because than the program isn’t working correctly after that.

All the other codes used in the examples haven't worked too.

Thank you!
Jan

0 Likes
1 Solution

Hello jan.raiff_3478636 ,

   If you want to put the system in DeepSleep only while advertising then you can optimize the "if" commands only to execute “CySysPmDeepSleep();” while the bless state is advertising. ( As you just said).

-Gyan

View solution in original post

0 Likes
4 Replies
GyanC_36
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

Hello jan.raiff_3478636 ,

     As you might have already gone through the AN 92584 and have seen in table #2 that in System DeepSeep only available Digital Peripherals are WDT, BLESS ,SCB(I2C/SPI only) and not Timers and UART and hence if you  put the system in DeepSleep ,you would not be able to generate the correct 'StartCondition' of your frame. Once the system goes into DeepSleep Low Power state only available sources for waking up the system in your project are BLESS( BLESS interrupt at every Advertisement and Connection interval ) and LP Comparator.

All your protocol timings are dependent on UDB Timer ISR.

-Gyan

0 Likes
Anonymous
Not applicable

Hello Gyan,

thank you for your reply!

I only want to go into deepsleep while advertising. There i don't need UART and the timer. The communication is only activ while connected to an other BLE device.

Do I need to switch them seperatly off before going to deepsleep?

I think I have to optimize the "if" commands only to execute “CySysPmDeepSleep();” while the bless state is advertising.

Jan

0 Likes

Hello jan.raiff_3478636 ,

   If you want to put the system in DeepSleep only while advertising then you can optimize the "if" commands only to execute “CySysPmDeepSleep();” while the bless state is advertising. ( As you just said).

-Gyan

0 Likes
Anonymous
Not applicable

Hello Gyan,

I changed the "if"s and now it's working. Thank you so much for your helping me and for putting my thoughts on the right track!

Jan

0 Likes