What's the best practice to low currence consumption

I am developing audio application .DMIC audio sending to LPDSP32, and then to OD . currently the currency is 2.5+ mA. I want to decrease the currence . i can do software algorithm improvement ,i.e avoid float computation , use table search .etc . I also replace
Sys_Delay_ProgramROM(0.5 * SystemCoreClock) to SYS_WAIT_FOR_INTERRUPT
in while loop etc.
besides that ,is there any RSL10 specific approach to decrease currency .like

  1. disable all DIOs output ? I only need one DIO for input

  2. change Clock crystal ? ,etc .currently 48 M clock split to 16kbps audio input/output

  3. there’re some RF power setting ,ACS_VDDRF_CTRL settings in nearly all intialize() sample codes, can we do something to decrease currency ?

  4. I find out when RSL10 call LPDSP32 by
    /* Tell the DSP there is data available to deal with. */
    SYSCTRL_DSS_CMD->DSS_CMD_1_ALIAS = DSS_CMD_1_BITBAND;
    }
    and in LPDSP32 code
    the LPDSP32 will need 0.7 ms ,even if LPDSP32 simply do nothing

/* spin forever, waiting for interrupts from the CM3 */
while (true)
{
statusUpdate(4);
core_halt();
statusUpdate(5);
CssCmdGen = ARM_CMD_0;
}

this will take 0.7 ms ,even LPDSP32 do nothing, is this normal or not?

@hfvoip

Unfortunately, given the continuous need to drive the OD to produce proper audio, we cannot suggest the use of Sleep or Standby modes to reduce the current in the CM3.

Ensuring all DIOs and unnecessary sub-systems are powered down will result in some savings, but they will likely not be substantial during run-mode.

Changing the System Clock to a lower pre-scale will definitely offer some improvement, but care must be taken to ensure the CM3 and LPDSP32 still have enough processing time to work on the samples.

Thank you for using our community forum!