I've been testing the nPM1300 and I'm running into some interesting issues. I'm using NCS 2.7.x (originally evaluated on 2.6.x) and got it to the sweet spot where the nRF9161 + nPM1300 was drawing < 10uA. (or so I thought until I revisited it!)
Here's how it's being used:
- Initializing buck2 with a 255K resistor supplying 3.3V
- Keeping buck1 on at all times at 2.7V (255K resistor) (are these VSET values OK for maxing out the regulator?)
- All LDO output/inputs are grounded and unused
Buck2 is only used when USB is connected. When disabled, I'm seeing a range of quiescent currents from 8uA up to 108uA depending on when the device is being configured (Seems like possibly related to https://docs.nordicsemi.com/bundle/errata_nPM1300_Rev1/page/ERR/nPM1300/Rev1/latest/anomaly_300_31.html?) I saw that reading from the device prevents this high Iq but it still seems higher than expected.
Additionally, as a different issue but potentially related, whenever I probe the SDA line with my multi-meter, nPM1300 increases current draw to 1mA and doesn't go back down unless reset.
ketiljo has already looked at the design and I've addressed the functionality concerns a while back.
Is there anything I can do to get the operation to be more stable/repeatable? Depending on how long the device is powered (or not powered at all) I get different quiescent currents at the battery. (Powered only on 3.6V on a bench supply via a JouleScope)
By the way my device tree def is as follows:
npm1300_pmic: pmic@6b { compatible = "nordic,npm1300"; reg = <0x6b>; npm1300_gpio: gpio-controller { compatible = "nordic,npm1300-gpio"; gpio-controller; #gpio-cells = <2>; ngpios = <5>; }; npm1300_leds: leds { compatible = "nordic,npm1300-led"; nordic,led0-mode = "error"; nordic,led1-mode = "charging"; nordic,led2-mode = "host"; }; npm1300_charger: charger { compatible = "nordic,npm1300-charger"; term-microvolt = <4150000>; term-warm-microvolt = <4000000>; current-microamp = <800000>; dischg-limit-microamp = <1000000>; vbus-limit-microamp = <1000000>; thermistor-ohms = <10000>; thermistor-beta = <3380>; charging-enable; }; npm1300_regulators: regulators { compatible = "nordic,npm1300-regulator"; npm1300_buck1: BUCK1 { regulator-min-microvolt = <2700000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; npm1300_buck2: BUCK2 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; }; };
To add to the fun, I've noticed that when warmer I get closer to the expected quiescent current of about 4uA. (measured post hot air rework) Once it cools off it can land anywhere in the aforementioned range.
I've disabled the configuration in the mcuboot image:
CONFIG_REGULATOR=n CONFIG_REGULATOR_NPM1300=n CONFIG_MFD_NPM1300=n CONFIG_I2C=n CONFIG_GPIO_NPM1300=n CONFIG_NPM1300_CHARGER=n
But allow the default regulator and MFD initialization calls to happen during boot. I did notice that the buck status register gets read a couple times during init. Doing that after enabling the buck2 pulldown and disabling the buck2 output appears to help reduce the quiescent current from 100uA to 10uA. (my thoughts why it could be related to [31] BUCK: Increased BUCK Hysteretic quiescent current)
Any help is greatly appreciated.