Hi all,
A hidden component of the stack has been turning off low power mode. osal_pwrmgr_device(PWRMGR_ALWAYS_ON) is being called from some hidden part of the code.
I saw the same thing on cc2541 and cc2540.
The problem magically went away. I still see osal_pwrmgr_device(PWRMGR_ALWAYS_ON) called, but now it is quickly followed up by osal_pwrmgr_device(PWRMGR_BATTERY). I assume that the function is being called by the Link Layer based on the program counter.
I fear this may happen again.
Additional background:
The core pulls around 6 to 7mA when active. This power rate destroys coin cell batteries. The stack will put the device in power mode 2 if all layers of the stack are in agreement. A layer can request not to go into power mode by calling osal_pwrmgr_device(PWRMGR_ALWAYS_ON)