nPM1300 normal mode quiescent current

Hi Nordic,

According to the datasheet the nPM1300 normal mode quiescent current is about 800nA.

We can achieve that use nPM1300-EK when first power up.

But when we connect to pc use nPM PowerUP and disconnect. The  nPM1300-EK quiescent current will go up to 1mA.

And when we connect to nrf52840-DK And run npm1300_fuel_gauge example and disconnect. The nPM1300-EK quiescent current will go up to 3.7mA.

Is there any way to make the quiescent current below 1uA  without enter SHIP/HIBERNATE Mode ?

Thanks

Parents
  • Hello.

    The fuel gauge sample uses a shield overlay (npm1300_ek.overlay), which includes example configuration for GPIO control of enable, retention and PWM modes.

    You can add the following to your project overlay (n2f52840dk_nrf52840.overlay) to disable the GPIO control behaviour, and ensure that all these modes are only controlled by software.

    &npm1300_ek_buck2 {
    	/delete-property/ enable-gpios;
    	/delete-property/ retention-gpios;
    	/delete-property/ pwm-gpios;
    };
    
    &npm1300_ek_ldo1 {
    	/delete-property/ enable-gpios;
    };
    
    &npm1300_ek_ldo2 {
    	/delete-property/ enable-gpios;
    };
    


    Andy

  • Hi Andy,

    We add the overlay to the project and the quiescent current go down to 1.0mA.

    Is there any other config change we can make the quiescent current below 1uA?

    Thanks

    Best regards,
    Chen

  • Hmm, strange.  I see < 1uA on my setup.

    Could you try forcing the BUCK modes please?

    &npm1300_ek_buck1 {
    	regulator-initial-mode = <NPM1300_BUCK_MODE_PFM>;
    };
    
    &npm1300_ek_buck2 {
    	regulator-initial-mode = <NPM1300_BUCK_MODE_PFM>;
    };
    
    

  • Hi Andy

    the build unsucceed after add the overlay in sdk v2.5.0

    the nrf52840dk_nrf52840.overlay

    /*
     * Copyright (c) 2023 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
     */
    
    &i2c0_default {
    	group1 {
    		bias-pull-up;
    	};
    };
    
    &uart0 {
        status = "okay";
        current-speed = < 1000000 >;
        /* delete rts-pin&cts-pin to release the related 2 pins for other uses */
        /delete-property/ rts-pin;
        /delete-property/ cts-pin;
    };
    
    &npm1300_ek_buck1 {
    	regulator-initial-mode = <NPM1300_BUCK_MODE_PFM>;
    };
    
    &npm1300_ek_buck2 {
    	regulator-initial-mode = <NPM1300_BUCK_MODE_PFM>;
        regulator-init-microvolt = <3000000>;
    	/delete-property/ enable-gpios;
    	/delete-property/ retention-gpios;
    	/delete-property/ pwm-gpios;
    };
    
    &npm1300_ek_ldo1 {
    	/delete-property/ enable-gpios;
    };
    
    &npm1300_ek_ldo2 {
    	/delete-property/ enable-gpios;
    };
    

    Our case: EK HWV: 0.9.1   DK HWV: 3.0.0    SDK:v2.5.0

  • Hi Chen.

    Could you add this to the top of your overlay and try again please:

    #include <dt-bindings/regulator/npm1300.h>

    Thanks
    Andy

  • Hi Andy ,

    Still cann't buid succeed , attach is npm1300.h from sdk there was no NPM1300_BUCK_MODE_PFM 

    /*
     * Copyright (c) 2023 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_REGULATOR_NPM1300_H_
    #define ZEPHYR_INCLUDE_DT_BINDINGS_REGULATOR_NPM1300_H_
    
    /**
     * @defgroup regulator_npm1300 NPM1300 Devicetree helpers.
     * @ingroup regulator_interface
     * @{
     */
    
    /**
     * @name NPM1300 Regulator modes
     * @{
     */
    /* Buck modes */
    #define NPM1300_BUCK_MODE_AUTO 0x00U
    #define NPM1300_BUCK_MODE_PWM  0x01U
    
    /* LDSW / LDO modes */
    #define NPM1300_LDSW_MODE_LDO  0x02U
    #define NPM1300_LDSW_MODE_LDSW 0x03U
    
    /* GPIO control configuration */
    #define NPM1300_GPIO_CHAN_NONE 0x00U
    #define NPM1300_GPIO_CHAN_0    0x01U
    #define NPM1300_GPIO_CHAN_1    0x02U
    #define NPM1300_GPIO_CHAN_2    0x03U
    #define NPM1300_GPIO_CHAN_3    0x04U
    #define NPM1300_GPIO_CHAN_4    0x05U
    
    /** @} */
    
    /** @} */
    
    #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_REGULATOR_NPM1300_H_*/

  • Apologies, I am working on upstream Zephyr so forgot that this change was not in NCS2.5.

    Another thing to try:

    1. Remove the init-microvolt property, so that it uses the default value from the resistor

    &npm1300_ek_buck2 {
        /delete-property/ regulator-init-microvolt;
    };

Reply Children
Related