This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/CC2640: POWER_SAVING not working as expected

Part Number: CC2640

Tool/software: TI-RTOS

HI All,

I'm using TI RTOS v2.20 and cc2640 5x5 ( LSR Sable-X)

I've built an application using the example Simple_peripheral. I've added another task besides the default SBP task. So, there are two tasks running. I'm using the POWER_SAVING in the predefined symbols. Also, I've made a call Power_init(), and Power_enablePolicy() in the main.c file before the BIOS_start().

I'm running the device at +5dBm and the peak current during RX/TX is approx 12mA. However, when both the tasks in the application are sleeping the current drawn is 3mA. I'm unable to get the low current in the STANDBY MODE. 

I've read the Power management manual in the TI RTOS docs folder, and  I'm using the default implementation of the Power Policy. 

I want the device to go into STANDBY MODE. From the current reading that I'm getting right now, it doesn't look like the device is going in STANDBY MODE

Please help me what else should do to ensure that the device is going in STANDBY MODE? 

Awaiting for your reply

Thanks,

Sandeep

  • Hi,

    The device should automatically go into standby mode when POWER_SAVING is defined and there are no other tasks to be run. So you don't need to call any Power function i.e. Power_init(), and Power_enablePolicy().

    Best wishes
  • Hi Zahid,

    I've defined POWER_SAVING in the predefined symbols of the build settings of the project.

    What do you exactly mean by, "when there are no other tasks running"?

    In main.c of simple_peripheral project, there is a priority 5 task(ICall_createRemoteTasks), and a priority 3 task(GAProle_task).  In my application, I have the default SBP task, and one more task, both running at priority 2.

    I call task_sleep in these two tasks. But, how do I make sure that priority 5, and priority 3 tasks stop/idle/sleep?

    Please help.

    Thanks

  • You don't need to use task_sleep because once the tasks(created in main.c) are done processing, the idle task runs(in the background) which then puts the device to sleep/standby mode. Then it automatically wakes up based on interrupts getting triggered and timers timing out.

    Best wishes
  • But I've to use task sleep () in one of my tasks which interfaces with the ADC.  

    Also, should I terminate the BLE connection to make the device go into standby mode?