This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

FPU Power Consumption

Hi everybody,

I'm using nRF52832 on a custom board mounting a BME680 sensor.

I'm running a third party library for the usage of the sensor (namely BSEC Library), and it uses floating point calculations.

I'm experiencing a ∼6 mA power consumption only when dealing with floating point calculations. I've read and tried some solutions on FPU handling on this forum but they're quite old (3 years ago) and with some broken links, long story short: none of them worked for me.

Any suggestion/workaround to suggest?

Thank you and best regards

Gino

Parents Reply
  • Hi Simon,

    thanks for your answer. I've tried your solution (note that __set_FPSCR() and __get_FPSCR() require two initial underscores):

    void idle_state_handle(void)
    {   
        if (NRF_LOG_PROCESS() == false)
        {  
           #if (__FPU_USED == 1)
            __set_FPSCR(__get_FPSCR() & ~(0x0000009F)); 
            (void) __get_FPSCR();
            NVIC_ClearPendingIRQ(FPU_IRQn);
          #endif
          __WFE();
          nrf_pwr_mgmt_run();
        }
    }


    I had another problem, I was using nrf_delay_ms() to delay readings, now I've used a timer and everything is low power. Thanks again for your help.

Children
No Data
Related