NPM1300 on custom board cannot start battery charging

I have a custom board with bl54u and NPM1300. Working fine.

But now replaced with a NPM1304 as it is pin compatible. Worked fine with fuel gauge NPM1300 on SDK 3.0.1.

Now I have upgraded SDK to 3.1.1 and have to use NPM13XX fuel gauge. Works almost ok... But cannot start the battery charging.

On SDK 3.0.1 charging is possible without problem. 

I understand this has nothing to do with the fuel gauge application but more on the HW side. 

What do work is,

program the BL54u with old SDK 3.0.1 fuel gauge and start charging the battery.

Then reprogram with the new SDK 3.1.1 fuel gauge NPM13XX. And charging will continue with new settings.

Not work 

But removing the battery and reconnect it the charging will not work.

I guess old SDK did some config to the NPM1300 as not done for NPM13XX !?

Is this a known bug or is there a new requirement on the HW. I dont use NTC

Use battery for battery_model_20mAh.inc
And using the battery with NPM1304 dk works fine!

schematic attached.

 

&i2c20 {
    status = "okay";
    compatible = "nordic,nrf-twim";
    pinctrl-0 = <&i2c20_default>;
    pinctrl-1 = <&i2c20_sleep>;
    pinctrl-names = "default", "sleep";
    clock-frequency = <I2C_BITRATE_FAST>;
    zephyr,concat-buf-size=<32>;
    zephyr,flash-buf-max-size=<32>;
    aem13920: aem13920@41{
        compatible = "i2c-device";
        reg = < 0x41 >;    
    };
    npm1304_ek_pmic: pmic@6b {
        compatible = "nordic,npm1304";
        reg = <0x6b>;

        npm1304_ek_regulators: regulators {
            compatible = "nordic,npm1304-regulator";

            /* limits are set to min/max allowed values */
            npm1304_ek_buck1: BUCK1 {
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <3300000>;
                retention-microvolt = <1200000>;
            };
        };
            npm1304_ek_charger: charger {
            compatible = "nordic,npm1304-charger";
            term-microvolt = <4150000>;
            term-warm-microvolt = <4000000>;
            current-microamp = <12000>;     // Must be 32000 for NPM1300
            vbus-limit-microamp = <500000>;
            thermistor-ohms = <10000>;
            thermistor-beta = <3380>;
            charging-enable;
            // vbatlow-charge-enable;
            // dischg-limit-microamp = <1000000>; //Must be uncomment for NPM1300 (SDK 3.0.1)
        };
        npm1304_ek_leds: leds {
            compatible = "nordic,npm1304-led";
            nordic,led0-mode = "error";
            nordic,led1-mode = "charging";
            nordic,led2-mode = "host";
        };
    };
};

          current-microamp = <12000>;

            vbus-limit-microamp = <500000>;
            thermistor-ohms = <10000>;
            thermistor-beta = <3380>;
            charging-enable;            // vbatlow-charge-enable;
            // dischg-limit-microamp = <1000000>;
        };
        npm1304_ek_leds: leds {
            compatible = "nordic,npm1304-led";
            nordic,led0-mode = "error";
            nordic,led1-mode = "charging";
            nordic,led2-mode = "host";
        };
    };
};
Parents
  • Hi

    From your schematic it seems like you haven't followed our reference schematic guidelines, with input capacitors from the battery and VBUS inputs missing, and pull-up resistors on SDA/SCL missing.

    That being said there shouldn't be a specific reasaon upgrading to NCS 3.1.1 should break charging. However, is VBUS connected when the battery is removed and plugged back in? If not, this will power cycle the PMIC, and should not cause problems in a design where the PMIC powers the SoC. But, if the SoC is powered separately, the scenario you describe will result in an uninitialized PMIC since the SoC won't execute the init code without a power cycle/reset, and thus charging would be disabled by default.

    And finally, can you try uncommenting this line in your charger config file and see if that makes a difference? 

    // vbatlow-charge-enable;

    Best regards,

    Simon

Reply
  • Hi

    From your schematic it seems like you haven't followed our reference schematic guidelines, with input capacitors from the battery and VBUS inputs missing, and pull-up resistors on SDA/SCL missing.

    That being said there shouldn't be a specific reasaon upgrading to NCS 3.1.1 should break charging. However, is VBUS connected when the battery is removed and plugged back in? If not, this will power cycle the PMIC, and should not cause problems in a design where the PMIC powers the SoC. But, if the SoC is powered separately, the scenario you describe will result in an uninitialized PMIC since the SoC won't execute the init code without a power cycle/reset, and thus charging would be disabled by default.

    And finally, can you try uncommenting this line in your charger config file and see if that makes a difference? 

    // vbatlow-charge-enable;

    Best regards,

    Simon

Children
  • I have rationalised away some componetnts. But have not had any issues from that yet. I dont see those have anything to do with the charging problem.

    I have tried some more with yet another board but with the same problem. No charging.

    vbatlow does not help.

    I dont have the time right now do dig deeper and I revert back to sdk 3.0.1 and continue my testing.. and hope some else find a solution.

    By the way, the fuelgauge example in sdk 3.1.1 is not possible to compile with nrf54L15. I guess no one have tested the fuel gauge on sdk 3.1.1.

    You may close the ticket...

Related