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

QSPI current is high at nRF52840DK

Hi,

I have measured QSPI current consumption on our product at no access period, and got 1mA (too high current!).

So I tried to check with nRF52840 DK to confirm our source code is wrong or not.

 I tested SDK14.2 example of QSPI (examples/peripheral/qspi) with nRF52840 DK measuring with PPK board.

I put the following code to main.c, and check current  by 2 cases.

white (true) {
    __WFE();
}

case1. put them just after startup of main() -> 2uA.

 (this is just check board setting is correct)

case2. put them after read instruction(after NRF_LOG_INFO("Data read"))  -> about 1mA

Do you have any idea to reduce this 1mA current?

Best regard, 

Parents
  • Hi

    Case 5 seems to be the nRF chip running regularly. In order to reduce the current consumption after doing an operation, you need to put it to sleep mode by, for example, uninitializing the QSPI driver, and calling something like a sleep_handler() function as below.

    static void sleep_handler(void)
    {
        __WFE();
        __SEV();
        __WFE();
    }

    Best regards,

    Simon

Reply
  • Hi

    Case 5 seems to be the nRF chip running regularly. In order to reduce the current consumption after doing an operation, you need to put it to sleep mode by, for example, uninitializing the QSPI driver, and calling something like a sleep_handler() function as below.

    static void sleep_handler(void)
    {
        __WFE();
        __SEV();
        __WFE();
    }

    Best regards,

    Simon

Children
  • Hi,

    Calling "__WFE(); __SEV(); __WFE();" does not change current(I mean around 985uA).

    I know current goes down to about 2uA if I call nrf_drv_qspi_uninit() with anomaly 122.

    But our objective is reduce current at standby time.

    So your solution is,  call nrf_drv_qspi_uninit() -> nrf_drv_qspi_init() -> configure_memory() every Flash ROM access?

    Calling configure_memory() needs recovery time, so this solution is not realistic.

    If you have more simple solution, please advice me.

    (ex. disable QSPI module clock)

    Best regards,

Related