Power management is at the heart of every successful battery-powered product, whether it’s a compact wearable, a wireless sensor, or a next-generation IoT device. As devices become smaller and more feature-rich, the demands on their power management solutions grow ever more complex. That’s where the nPM1300 and nPM1304 Power Management ICs (PMICs) come in, offering a highly integrated, flexible, and efficient way to manage power for rechargeable applications.
At Nordic Semiconductor, we receive a wide range of questions from engineers and developers who are integrating the nPM130x series into their designs. Whether you’re optimizing for maximum battery life, ensuring safe and reliable charging, or looking to streamline your hardware and software integration, you’re not alone; many of these challenges are shared across the community.
In this blog post, we’ve gathered the most common questions and practical answers to help you get started with the nPM1300 and nPM1304. Whether you’re working with higher-capacity batteries or ultra-compact cells, and whether your application is based on Nordic’s nRF52, nRF53, nRF54 Series System on Chips (SoCs) or other platforms, you’ll find guidance here to accelerate your design process and avoid common pitfalls.
Table of Contents
Hardware design
Q: What are the main considerations for the device schematic and layout designs? Any guidance on the external component selection for optimal performance? What to do with X pin when not used?
A: Please take a look at nPM1300 and nPM1304 Hardware Design Guidelines, nPM1300 Design Checklist for details. The nPM1300/nPM1304 reference designs (Altium) available on the product page are an excellent starting point for development. Here you will find example configurations for different use cases.
Q: Can I connect the SHPHLD pin to a SoC GPIO pin?
A: No. The SHPHLD pin has internal 50kohm pull-up to VBAT and if the SoC is powered off (like in ship/hibernate mode) there will be leakage path formed through SoC GPIO pin ESD diode and the SHPHLD pull-up resistor. This leakage will deplete the battery in ship and hibernate modes.
If the SHPHLD button is used for other purposes besides waking from ship and hibernate modes, one option is to use nPM1300/nPM1304 to generate an interrupt when the SHPHLD button is pressed, and let the SoC take action based on that.
Note that the button could also be a dual-pole type to electrically isolate the SHPHLD pin from the SoC GPIO.
Q: Can I enter ship mode with a pin control? Or is there an automatic ship mode when the battery voltage is too low?
A: Ship mode is entered with TWI writes, and the device exits this mode by means of the SHPHLD button. There is no HW control (pin or voltage level) that would make the device enter ship mode automatically without SW control.
Q: I only need the bucks/LDOs and no charger. How should I connect it?
A: Two options are available depending on supply voltage and quiescent current requirements.
-
Connect the power supply to VBAT, and connect VBUS to GND. This option yields very low quiescent currents. Note that there is no overvoltage protection on VBAT as on VBUS, so the application must ensure that the VBAT voltage is below 4.65V at all times.
-
Connect the power supply to VBUS and connect VBAT to GND. When VBUS is connected, all references and oscillators run in continuous mode, and the quiescent current is typically 2.5 mA. However, this mode provides full overvoltage protection on VBUS and a wider supply voltage range up to 5.5V compared to the VBAT alternative.
Q: I want to optimize the device for very low EMI. What should I do?
A: First: make sure the general design follows our guidelines described in Hardware design guideline document. Our reference design configuration #4 provides an example of how to place additional high-frequency bypass capacitors on the BUCK input and VSYS.
Q: Why do I see 3 volts on the BUCK output even though I have set it to 2.5V?
A: This is most probably due to system leakage, such as through an IO pin, that is forcing the rail high. In hysteretic mode, the buck converter cannot sink output current, and if there is leakage from a higher-voltage rail, such as through an ESD diode, the output voltage starts to rise. In the SW pin, there should be no switching activity in this case. The solution is to isolate the loads one by one to determine which is causing the leakage.
Q: Can I use the LDO with a lower voltage input than the specified 2.6V?
A: Unfortunately, no. The LDO is designed for a minimum input voltage of 2.6V.
Q: Can I use the nPM1300 for solar charging?
A: Connecting a solar cell to the VBUS input is not ideal, since the nPM1300 lacks the input voltage regulation and maximum power point tracking techniques required for efficient solar harvesting. Also, the input requirements for the SYSREG block to enable charging are quite strict and may not be practical with a solar cell (e.g., VBUS > VBAT + 150 mV + VBUS > 3.6 V, VBUS current consumption of 2.5 mA typ).
Q: What is the default USB current limit, and how can it be controlled with CC pins?
A: Default VBUSINLIM is set to 100mA for USB compliance. This can be a limiting factor; for example, charging over 100 mA won’t be possible until the limit is increased. Also, if the system starts up with a load over 100 mA, the VBUSINLIM can limit startup when the VBAT capacity is low. If the battery state of charge is sufficient, the device can enter supplemental mode to source power from VBAT and VBUS simultaneously. In the case of an empty battery, it is advised to sequence the startup so that only critical things start up initially, and then the SoC can increase VBUSINLIM before turning on other peripherals.
USB-C CC pins can be used to detect the host's current capability, but this detection does not automatically change VBUSINLIM. The current capability must be read from the register, and then the software changes the VBUSINLIM accordingly.
Q: What happens if the load on a rail exceeds the maximum specification?
A: The BUCKs are specified up to 200mA, and increasing the current above that, the switching current limiter will activate, and the output voltage will drop. There is no way for the host to detect that this is happening.
The LDO/LS blocks do not have a specific current limiter. The limiting factor is the current source, most likely VSYS or BUCK. Also, the LDO/LS's internal resistance will cause the voltage to drop.
The VSYS regulator has two limiters: the IBAT discharge limiter and the VBUSIN limiter. When operating from battery, the current is limited by the battery current limiter (290 mA/1460 mA typical in nPM1300 and 210 mA typical in nPM1304).
When a USB is connected, the VSYS current is limited by the VBUSIN limit, set to 100 mA by default, programmable up to 1500 mA. If the USB source cannot provide all the current, the charger will enter supplement mode, where both VBUS and VBAT provide current to VSYS. If charging is enabled, the system power consumption (VSYS) is prioritized, so the charging current is reduced if needed.
Q: Is nPM130x protected from reverse supply voltage on VBUS or VSYS?
A: External protection is needed (e.g, PMOS) to protect the device from damage due to reverse polarity.
ADC
Q: What is the IBAT current measurement accuracy and can I use it to measure system current consumption?
A: The IBAT ADC measurement is intended for fuel gauge operation mainly, and its accuracy is sufficient for that purpose. It will not provide accurate results for loads below 5 mA, and therefore it cannot be used to estimate system current consumption. Resolution also depends on the IBATLIM value. The measurement step size is IBATLIM / 1024.
Q: How does the ADC measure the NTC thermistor value?
A: The ADC measures the thermistor using an internal pull-up resistor connected to an internal 1.5V reference - corresponding to the full-scale voltage of the ADC. Depending on the user's choice, the pull-up resistor is configured to 10 kOhm, 47 kOhm, or 100 kOhm. Example: A value of 0.688V should give a code of 1024 x 0.688/1.5 = 470 over 10 bits, and will be converted to MSBs (0111 0101) and LSBs (10)
Charger
Q: I have set the charging current to 100mA or above, but I get only 80mA charging current?
A: This is due to the VBUSINLIM setting, which is 100mA by default. It must be increased with software to increase the charging current.
Q: What is the VBUS current after charging has stopped?
A: When VBUS is connected, the references and oscillators are running in continuous mode and typically draw 2.5mA from VBUS. It is possible to reduce the current to 1.8 mA by setting the nPM130x to USB suspend mode via a TWI command.
Q: Why I see a 100µA discharge current on the nPM1300 when charging terminates when the battery is fully charged and VBUS is still connected and charger enabled?
A: This leakage current from the battery is intentional for safety reasons. It ensures that the battery is not charged to a higher termination voltage than configured by drawing a safe discharge current. It also compensates for the VBUS leakage through the pass FET into the battery, thereby preventing overcharging. For the nPM1300, this safe leakage current of around 100 µA is expected behavior.
The PMIC can be configured to automatically restart charging when VBAT drops below VRECHARGE, as described in the datasheet. This would help restart charging if the charger has been connected for an extended period, causing the battery's state of charge to drop.
If this safe leakage current is a concern due to the capacity of the battery (e.g., for very small cells where the drain matters), we can recommend considering the nPM1304 PMIC, which is designed for small-capacity batteries and offers a much lower safe leakage current - 5 µA typical.
Fuel gauge
Q: Where can I find more information about the nPM1300 and nPM1304 fuel gauge for rechargeable products?
A: This application note describes the integration of the nPM1300 and nPM1304 fuel gauge solution for the rechargeable products Using the nPM1300 and nPM1304 Fuel Gauge
Q: Where can I find more information about battery profiling and fuel gauge evaluation with nPM PowerUP?
A: Refer to the relevant chapters in the application note describing the nPM PowerUP app for more detailed information.
Profiling a battery with nPM PowerUP
Guidelines for battery profiling
Evaluating a battery model with nPM PowerUP
Q: What are the pre-profiled battery models in the nPM PowerUP app, and when should they be used?
A: The nPM PowerUP app includes several pre-profiled battery models representing batteries from selected vendors that have been characterized by Nordic Semiconductor. These bundled profiles provide ready-to-use configurations for common Li-Po battery types with different sizes and are recommended for typical Bluetooth Low Energy applications, allowing quick evaluation and deployment without the need for custom battery profiling.
See Using pre-profiled battery models for more information on how to use pre-profiled battery models in your application.
Q: How does the fuel gauge work if the PMIC sees a non-continuous load with higher current spikes, and the sampling rate of the fuel gauge is only once per second, and it will not catch those spikes?
A: It works fine. We are not Coulomb counting, and we are not relying on continuous current measurement. The fuel gauge algorithm just needs the IBAT current value from the time it samples the VBAT.
Q: How does the IBATLIM setting affect the fuel gauge resolution?
A: It has some effect; if the total application load, including peaks for an nPM1300, is below 200mA, it is recommended to use the “LOW” current limit setting to improve the fuel gauge performance.
Q: We have some extra load connected directly to the battery. Will that affect fuel gauge algorithm when there is unmetered load?
A: It depends on the load and also the battery. With light load or relatively short pulses and a high-capacity battery, the effect is most probably negligible and will average out. With a higher load, there may be some error in the fuel gauge, and this must be considered on a case-by-case basis.
Q: Does the nPM130X support LFP batteries?
A: In general, yes, the nPM130X triggers a Power-Fail (POF) event and resets at 2.7 V (default, programmable down to 2.5V), while LFP cells can typically discharge down to ~2.2 V. This is not a major issue since there is usually little capacity left below the POF trigger level. VBAT/VSYS voltage must remain above POF level even during load transients.
LFP cells have a relatively flat OCV curve, making fuel gauging with our fuel gauge solution more challenging than with Li-polymer, but it is still possible with reduced accuracy.
Q: Can I create a battery profile with the nPM130x EK in different temperatures so that the temperature behavior is modeled as well?
A: You can create a room-temperature (or application-specific temperature) model with just one profiling session.
If the fuel gauge requires temperature-dependent behavior, you can create a temperature-dependent model by profiling at multiple temperatures (up to three points) within a single PowerUP session, or by running separate sessions at each temperature (e.g., 0 °C, 25 °C, 50 °C). The results can then be merged in PowerUP to build one multi-temperature model for fuel gauging. See Working with profiles for more information.
Note that for nPM1300-EK, you will need a separate Fuel Gauge board for the profiling; in nPM1304-EK, the profiling circuitry is integrated.
Software
Q: What DTS settings are available on an nPM130x? Where do I find documentation for these DTS bindings?
A: All available DTS settings are described in the Zephyr documentation. Search Bindings index by the PMIC name. npm130*_ek.overlay files (e.g., npm1300_ek.overlay) in the Zephyr repo are a good starting point for the PMIC overlay structure
Q: Can I use the fuel gauge algorithm with a non-Nordic SoC?
A: Yes - if the target SoC has one of the supported architectures (Cortex-M33, -M4, -M3), you can. Since the algorithm is currently provided as part of nRF Connect SDK, it must be manually integrated into the development environment. This can be done by copying the nrf_fuel_gauge directory into the project and modifying the CMakeLists.txt to suit the needs.
Support for more architectures will be announced.
Q: Where can I find driver and API documentation?
A: Zephyr: We have generic drivers that are integrated into various Zephyr APIs. There are no “nPMxxxx specific” docs here; one needs to look at the following Zephyr device drivers API Reference.
-
gpio
-
led
-
mfd (exception - has per device docs)
-
regulator
-
watchdog
Bare-metal:
-
Git repository for npmx (nPM13xx)
-
Documentation with API reference
