Hello,
We have built a product that uses a DA14580 connected to an audio DSP using I2C. The DA14580 operates in BOOST mode. It runs a modified version of the SPS service in peripheral role.
During normal operations we use Extended Sleep and everything works perfectly. When the battery voltage drops below a threshold, I need to put the DA14580 into Deep Sleep so that the audio DSP continues to run as long as possible. Upon periodic reboot in Deep Sleep (set to 30s), the device first checks the battery voltage and either returns to Deep Sleep or starts normal operations again.
This works satisfactorily as well but only if I不顾the check for ke_mem_is_empty(KE_MEM_NON_RETENTION) in arch_main->ble_validate_sleep_mode().
if( (sleep_mode == mode_deep_sleep) ) // && ke_mem_is_empty(KE_MEM_NON_RETENTION) ) { func_check_mem_flag = 1;//true; } else sleep_mode = mode_ext_sleep;
I would like to know what I can do to resolve this, and if it is necessary.
My application code has no data stored in retention RAM. Further, it turns out that the app will not function properly with the memory settings suggested by the MemoryMap tool. I have to increase some of the values as shown below:
#define REINIT_DESCRIPT_BUF 0 //0: keep in RetRAM, 1: re-init is required (set to 0 when Extended Sleep is used) #define USE_MEMORY_MAP DEEP_SLEEP_SETUP #define DB_HEAP_SZ 1524 // 1024 #define ENV_HEAP_SZ 328 #define MSG_HEAP_SZ 1940 // 1312 #define NON_RET_HEAP_SZ 1024
提前谢谢,
Sandeep
---------
Hi Sandeep,
Many thanks for your question. We will support on your issue directly.
Thanks, PM_Dialog