Bring external Memory MX25R64/MX25R32 into deep sleep on nRF54L15

Hello,

already found a description in the Tech Docs, how to bring the external memory into deep sleep on QSPI interface: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/test_and_optimize/optimizing/power_general.html#put_the_external_flash_into_sleep_mode_in_inactivity_periods

But is this also possible for external memory MX25R64/MX25R32 on nRF54L15.

What needs to be done to bring this one on SPI Interface into deep sleep? Is there already a description how to do this on nRF54L15?

Thanks a lot

  • Hi

    This should be possible and similar with an SPI interface to what's explained in the documentation you link to, as there shouldn't be any big differences in putting the external memory into deep sleep using SPI compared to QSPI, and the procedure on nRF54L should be similar to the nRF53/52 series as well since the documentation doesn't refer to a specific series.. Let me know if you're having any trouble putting it to sleep on your end and I'll take a closer look.

    Best regards,

    Simon

  • Hi  

    Yes, you are right, I was able to do this on the same way.

    Was able to reduce the power consumption to 7.19µA, coming from ~2.6mA.

    But just to be sure, I tried now to remove the whole external Memory. With this, I was able to reach 0.73µA, which goes into the direction your datasheet gives us for Mode IOFF0 system_off.

    So by looking into the datasheet of the MX25R64, I found that in deep-power-down mode, the flash should just take 0.007µA. So I'm still searching for the ~6.5µA gap, that is just there if the external flash is mounted.

    Any Ideas, what could be the problem here?

    Thanks a lot!

  • Hi

    Are you able to measure the current on the SPI lines or the MX25R64 itself. Does it indeed go into the deep-power-down mode or just a sleep/disabled mode that draws more current than the dpd mode? The first step would be to find out if the current is in fact drawn by the MX25R64F here.

    Best regards,

    Simon

  • Hi  

    I will prepare a sample to have the possibility to measure the current directly on external memory.

    But I thought that the snippet

    pm_device_action_run(spi_dev, PM_DEVICE_ACTION_SUSPEND);

    will force the deep power down mode on external memory, by sending the spi command?

    I will make some tests and keep you updated.

    Thanks!

  • Hi  

    I made some more detailed tests now. Following PPK2 measurements are made directly for the MX25R64 supply line:

    So as you can see, here are the ~6.5µA I was looking for.

    When I zoom in, I can see some peaks every ~12.4ms.

    And even if I zoom more into, I can see some actions every ~1ms that still consumes ~4µA.

    When looking on the SPI I see the following:

    So looks like the dpd (deep power down) command was really sent. But why is the external memory, still consuming so much power?

    All I did in my application was to set the following KConfigs:

    And realized that's not necessary, to do the suspending with

    "pm_device_action_run(spi_dev, PM_DEVICE_ACTION_SUSPEND);"

    manually, if CONFIG_FLASH is set this will be done automatically, doesn't matter if I do the suspend or not.

    But the question is still, why the external memory is not in deep power down and consumes just 0,007µA?

    Thanks!

    SJ

1 2