nRF54 with nPM2100 and nPM1300 Power Consumption Issues

HI,

Test Setup

  • MCU: nRF54L15  PDK

  • SDK: nCS 3.0.0

  • Example: Blinky (modified)

Modified Code

main.c:

#include <stdio.h>
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>

/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS   10000

/* The devicetree node identifier for the "led0" alias. */
// #define LED0_NODE DT_ALIAS(led0)

/*
 * A build error on this line means your board is unsupported.
 * See the sample documentation for information on how to fix this.
 */
// static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);

int main(void)
{
	// int ret;
	// bool led_state = true;

	// if (!gpio_is_ready_dt(&led)) {
	// 	return 0;
	// }

	// ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
	// if (ret < 0) {
	// 	return 0;
	// }

	while (1) {
		// ret = gpio_pin_toggle_dt(&led);
		// if (ret < 0) {
		// 	return 0;
		// }

		// led_state = !led_state;
		// printf("LED state: %s\n", led_state ? "ON" : "OFF");
		k_msleep(SLEEP_TIME_MS);
	}
	return 0;
}

prj.conf:

CONFIG_GPIO=y

CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n

CONFIG_SERIAL=n

CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y

overlay: Empty

Test Configuration

The firmware is flashed to nRF54L15 PDK. The outputs of the nPM1300 in the PDK and the nPM2100EK are respectively connected to a power analyzer for testing. For the nPM2100EK, the I2C is not connected to the nRF54 PDK, and the output is directly connected. 

Both,  then the power analyzer  supplies power to the PDK's P6 interface for nRF54.

Observed Behavior

With nPM1300 Power Supply:

  • Only current peaks at each SLEEP_TIME_MS interval

  • System remains in sleep mode the rest of the time

With nPM2100 Power Supply:

  • Current peaks at each SLEEP_TIME_MS interval (same as nPM1300)

  • Additional small current spikes every 500ms

Common Observation (Both Power Supplies):

  • Very small current spikes approximately every 8ms

Questions

  1. Why is there this difference between nPM1300 and nPM2100?

    • What causes the additional 500ms current spikes only with nPM2100?

  2. What could be generating the 500ms current spikes observed with nPM2100?

    • What internal mechanism or task might be running at this interval?

  3. What causes the approximately 8ms small current spikes observed with both power supplies?

    • Is this related to nRF54 internal charging or some periodic operation?

Thanks!

  • Hi,

    In very light load condition the boost refresh cycle (PFM mode frequency) would be in this time range.

    The smaller 8 ms spikes you see are almost certainly from internal periodic wake‑ups of clocks/interrupts/peripherals that are enabled by default.

    Regards,
    Benjamin

  • In very light load condition the boost refresh cycle (PFM mode frequency) would be in this time range.

    I'm not quite sure about this mode. My power analyzer is connected to the output of the NPM2100 and then to pin P6 of the PDK, monitoring the current of the NRF54. Following your explanation, why would a refresh of the NPM2100 cause abnormal current spikes at intervals in the NRF54?

    The smaller 8 ms spikes you see are almost certainly from internal periodic wake‑ups of clocks/interrupts/peripherals that are enabled by default.

    But in my code, I don't have any other timers or peripherals configured. I'm only calling the k_sleep function. Where could this be coming from?

  • In very light load condition the boost refresh cycle (PFM mode frequency) would be in this time range.

    I'm not quite sure about this mode. My power analyzer is connected to the output of the NPM2100 and then to pin P6 of the PDK, monitoring the current of the NRF54. Following your explanation, why would a refresh of the NPM2100 cause abnormal current spikes at intervals in the NRF54?

    The smaller 8 ms spikes you see are almost certainly from internal periodic wake‑ups of clocks/interrupts/peripherals that are enabled by default.

    But in my code, I don't have any other timers or peripherals configured. I'm only calling the k_sleep function. Where could this be coming from?

    Could you please provide an update on my question? Our project progress is currently waiting for this issue to be resolved.

    Thanks!

  • Could you please share how you have connected the nPM2100 with pictures/diagrams?

    Also for the second question, I was not right in my first reply. The CPU is in idle mode and the spikes you are seeing are refresh spikes from the regulator. It is turning on and off in short bursts as it tops up the output capacitor. When the voltage drops below its threshold, the regulator switches on again, causing these spikes.

    Regards,
    Benjamin

  • Could you please share how you have connected the nPM2100 with pictures/diagrams?

    HI,The circuit of npm2100 is connected in this way, and the power analyzer detects a current spike approximately every 500ms.

Related