qspi flash drawing high current in dpd mode.

Hi
I'm testing the current consumption of the external qspi-flash on nrf5340dk [MX25R6435F]. I have used ppk 2 to measure consumption with the dk and also have used a power monitor with a nrf5340 soc(custom breakout board) + flash setup.
I've not made any changes to the dts files. My application performs some flash write operations and uses pm_device_action_run to suspend the flash.I then check the state of the flash through the pm state get api's - which indicate the flash is suspended. 

In both the cases(ppk and power moitor) the current to the flash in deep power down mode is in the order of 800-900 uA, i.e the same as during flash write operations. Which indicates that the flash has not been able to go to dpd mode successfully.

There is however one thing I had noticed in the nrf qspi driver code, the datasheet of the flash specifies to pull up the cs pin at the byte boundary after the cmd is sent, the driver code however after sending the command, waits for the period of time the flash takes to go into dpd mode (10us) and then puts the qspi pins in the sleep mode after performing  uinit of qspi. Is the pulling high of cs pin handled somewhere else and I have missed something?

If the above observation is irrelevant then why is the flash drawing such high current in dpd mode?

Parents
  • Hi

    What SDK version are you using for developing here?

    In order to wake up from DPD with QSPI, some external flash devices are sometimes able to wake up from DPD mode to standby when the CS line is pulled low (the CS line is under control of the peripheral though). Most SPI devices are put to sleep and woken up by a SW command, so the thing that sends the command (QSPI peripheral) should not be uninitialized. 

    I think a better way to achieve low power here is to power down/shut off the external flash entirely instead of going into DPD mode, then uninitializing the peripheral and putting the nRF5340 into system OFF mode, then wake it up with an external event and start the external flash chip with the QSPI init function.

    You can alternatively check ut this fix for DPD exits for devices that ignore non-dpd commands while sleeping. https://github.com/zephyrproject-rtos/zephyr/pull/64782 

    Best regards,

    Simon

  • Using the SDK v2.9.0
    I'm facing an issue putting the flash in dpd mode, not when getting out. Current consumption by flash is way higher than it is supposed to be in dpd mode, around 800-900uA.

Reply Children
No Data
Related