Power draw increases after setting CONFIG_PM_DEVICE_RUNTIME=y

I was using an SPI serial nor flash device with NCS 2.8.0. I tried to get the flash into deep power down mode, but it doesn't seem to work well with NCS 2.8.0. So I upgraded to 3.1.0

In itself this gives the same current consumption within the margin of error.

I now set CONFIG_PM_DEVICE_RUNTIME=y and in my flash device initialisation I call pm_device_runtime_enable() on the flash device and the DPD commands appear on the SPI bus as expected.

However, with CONFIG_PM_DEVICE_RUNTIME and DPD enabled, the overall current draw is now slightly higher than before, and if I don't call pm_device_runtime_enable for the flash device then it is higher again. I was expecting this to reduce overall consumption, not increase it.

2.8.0, no CONFIG_PM_DEVICE_RUNTIME = 51uA

3.1.0, no CONFIG_PM_DEVICE_RUNTIME = 52uA

3.1.0, CONFIG_PM_DEVICE_RUNTIME=y, no DPD = 63uA

3.1.0, CONFIG_PM_DEVICE_RUNTIME=y, DPD enabled = 55uA

How has enabling CONFIG_PM_DEVICE_RUNTIME made it worse?

Simon

  • That is the same regardless of whether CONFIG_PM_DEVICE_RUNTIME=y is set.

    The reason the output pins are set high is that the serial flash device is still powered on and floating those lines makes the flash chip consume more power.

    Simon

  • Hello,

    Could you try using compatible = "nordic,nrf-spim"; (to use the EasyDMA driver) instead of compatible = "nordic,nrf-spi";? See SPIM

    The SPIM (EasyDMA) driver is the recommended option in NCS. It works better with device runtime power management and usually gives lower current consumption than the older SPI driver.

    I would also recommend reviewing the schematic to make sure none of the SPI lines (CS, SCK, MOSI, MISO) are left floating, as that can increase current when the flash enters deep power-down.

    Kind Regards,

    Abhijith

Related