Hi,
I am facing some strange problem with cc2541.
I am designing some application based in BLE in which I am using limited advertising mode. I have setup all the required things to enable power saving mode. So after starting advertising if the cc2541 is not connected after some time(for example after 5 min) then I am increasing its advertising interval adaptively from 1s to 10s(as the maximum advertising interval 10.24s). Everything seems fine if I am increasing advertising interval upto 2s. But when I am increasing the advertising interval beyond that (2.5s or more) then cc2541 is coming out of power-saving mode randomly and i am not able to achieve enough power saving.
Can anyone please help me that why the cc2541 is coming out of power saving mode. when I am putting the debug at power saving api's then it is showing me that link layer is calling the "osal_pwrmgr_task_state( uint8 task_id, uint8 state )" function to hold the power saving.
Looking for the positive response....
Have you disabled the periodic event and these things?
Please click the Verify Answer button on a post if it answers your question! :)
Yes i have disabled the periodic event.
Which other things you are talking about.
I am using limited advertising mode and when it comes into waiting state then i am starting the advertising again. i am using
bool new_adv_enabled_status = false;GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8), &new_adv_enabled_status);
GAP_SetParamValue(TGAP_LIM_DISC_ADV_INT_MIN, advertInterval); GAP_SetParamValue(TGAP_LIM_DISC_ADV_INT_MAX, advertInterval);
new_adv_enabled_status = true;GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8), &new_adv_enabled_status);
functions to increase the interval and i am giving the values between 1600 to 16000 in advertInterval as the times goes on for the adaptive interval but as i am crossing the value from 3200 to 4000 then i am facing the problems in power saving.
And before setting these values i am calling
and after again making these true and calling the same function.
let me know if i am missing something or i am doing something wrong.
Hi Maulik,
Check out this thread, the answer lies within.
http://e2e.ti.com/support/low_power_rf/f/538/p/205314/732078.aspx#732078
Br
Hi Nick,
Thanks for you reply.
I tried out this thing but unfortunately it is not working.
It is still coming out of power saving mode.
Is this possible that it is a bug from the link layer side. i mean that llDivide31By16To16() is the function of the stack so is it possible that link layer itself is using this function to calculate its timings and that's why cc2541 is coming out of the power saving mode unexpectedly?