current consumption due to SPI FLASH on DA14531 module

I see extended sleep current consumption near 1,2uA on USB basic development  kit, but only when disconnect FLASH after boot (by DIP's). When the flash is still connected, the current is near 24uA. How it looks on DA14531 module? I saw in some docummentation, that SPI FLASH is disconnected after boot. So is it hardware or software disconnected in module? 

The basic question is what extended sleep current is on DA14531 module? 1,2uA (like on dev kit with DIP1-5 OFF) or 24uA (like on dev kit with DIP1-5 ON)?

  • Hi JackDialog,

    Thank you for your online forum question and your interest in our DA14531 products.

    You can find information on DA14531 module's power consumption in the datasheet 

    pages 10, 11 on Device Characteristics. As can be seen in the table 

    The supply current should be between 1.7->2.1 uA when in extended sleep mode.

    The module's flash can be powered down via software, same for the USB kit's flash. You can use the spi_flash_power_down() api for this purpose. You might also find the following section of the peripheral drivers tutorial on spi flash 


    Best regards,

  • Thank You fro fast response.

    In iBeacon example I see there is flash power down

    void user_app_on_init(void)
        /* If we have booted from flash then it will still be in active mode, power down to 
             reduce current consumption. */
        #if defined (__DA14531__) && defined (TX_POWER_2d5Bm)
                /* Set output power to maximum value (+2.5dBm) */

    I measured currents one more time and have:

    9uA with connected and powered down FLASH (earlier I saw 24uA due to connecting FLASH ON-THE-FLY while program running, now changed DIP's before powering and have 9uA)

    1,2uA with disconnected FLASH (disabling DIP's after boot).

    So, if DA14531 module has SPI FLASH connected in the same manner as USB kit, how can I obtain near 2uA? Is it possible?

  • Hi JackDialog,

    Could you please navigate to file spi_flash.c and make the following modification to function spi_flash_power_down

    int8_t spi_flash_power_down(void)
        // Check if SPI Flash is ready
        int8_t status = spi_flash_is_busy();
    	status = spi_flash_is_busy();
        if (status != SPI_FLASH_ERR_OK)
            return status;							
        return SPI_FLASH_ERR_OK;

    rebuild the ibeacon project and measure the current consumption again (with enabled DIPs for the flash)?

    Please let us know with your results.

    Best regards,

  • Thank You for response.

    There is no difference in current consumption after  suggested change.

    It is only added one line, correct?:

    status = spi_flash_is_busy();

    Other code is the same in this function.

    I found also in code that there is reference to UM-B-151 application note:

    6. Secondary bootloader project — Extending flash support for DA14531 (

    where i found:

    This is primary intended for minimizing inrusch current in boost mode, but there is that: "Apart from the boost mode the same configuration can be used in buck mode as well. In that case the GPIO pin can be used to shut down the flash completely."

    So, i suppose that this is the only way to reduce current?

    Also checked, that spi_flash_power_down() function works (makes difference). There is 9uA with this function enabled and 24uA without.

  • Hi JackDialog,

    I replicating your current measurement setup with a usb kit. I am running the ibeacon example with an advertising interval of 5s in order to get extended sleep current measurements (setting ADV_INTERVAL_ms to 5000 in user_app.c). When not using the spi_flash_power_down command with DIP switches on I am getting a power consumption of ~9-10uA. When using the command I am getting the expected ~1.3uA power consumption. 

    Would it be possible for you to share your project so that we can try to replicate your current measurements in our setup? This could held us further pinpoint the issue.

    Best regards,

  • sure, can I send You private?

    So, since i have 1,2uA with DIPS off it seems to be a hardware issue. Did You remove R50 before measuring current on USB devkit?

  • Hi JackDialog,

    You can raise a ticket on "Contact Support" and  share your project in private

    Did You remove R50 before measuring current on USB devkit?

    Yes, I did remove the R50 resistor prior to measuring currents on the devkit.

    Best regards, 

  • Thank You, ticke raised: 352685.

    Not sure if source files enough, but whole project was rejected due to size exceeds limit 

  • So, the solution is:

    1. Identify what is Your FLASH device that You are using (Macronix, Adesto or other), e.g  run a read JEDEC id command. Check in datasheet what power down modes are supported, what currents are characterised and what commands are needed for Your device.

    2. Use proper sleep command:

    spi_flash_power_down(), or


    Place it usually in  user_app_on_init() function.

    3. Some devices with Ultra Deep Power Down mode needs longer time to wake up so secondary bootloader is needed sometimes. Consider this:
    AN-B-088: DA145xx Flash Selector Guide (

  • Hi JackDialog,

    Thank you for your feedback and contribution. I marked your answer as verified so that it can be visible as a solution to other forum users.

    Best regards,