Part Number: LP55231
Hi,
I have a battery powered low power application. during my device idle mode I get a current consumption of around 40uA. I'm running a test sequence where I:
Power On System -> (Wait 3 seconds -> Enable LED sequence with 2 LP55231 -> wait 3 seconds -> Disable the LP55231 by setting EN pin low -> wait 3 seconds) -> Repeat
below is a screenshot of my power measurements. I've divided into 3 sections:
A: 3 seconds prior to enabling the LED sequence on the lp55231 on startup. (40uA av)
B: 3 seconds LED is running (3.72mA Av)
C: 3 seconds after setting LP55231 EN pin to low (94uA Av)

My expectation is that when setting EN to low both LP55231 should enter standby mode and have a current consumption of ~200nA but instead I'm seeing an additional 54uA. I'm convinced it's the LP55231 that is the source of this additional current. if i leave all other parts of my firmware alone and just comment out the function that enables the LEDs i never see the current increase of 54uA.
Any idea why this is happening? Is there anything additional i should be doing beyond just setting the EN pin low?
Below are some code excerpts and schematics:

/*******************************************************************************
* @fn LedTest
*
* @brief Test the LED
*
* @return None
******************************************************************************/
static void LedTest(void)
{
led_Init();
// led_test();
k_sleep(K_MSEC(3000));
while (true)
{
led_run(LED_PROGRAM_AWAIT_PILL_DISPENSE);
k_sleep(K_MSEC(3000));
led_stop();
k_sleep(K_MSEC(3000));
}
}
bool led_stop(void)
{
if(lp55231_Disable() == false)
{
LOG_ERR("Failed to disable mother device");
return false;
}
return true;
}
bool lp55231_Disable(void)
{
if (!device_is_ready(led_enable.port))
{
LOG_ERR("LED Enable GPIO device is not ready\r\n");
return false;
}
int32_t err = gpio_pin_configure_dt(&led_enable, GPIO_OUTPUT_ACTIVE);
if (err < 0)
{
return false;
}
err = gpio_pin_set_dt(&led_enable, 0);
if (err < 0)
{
return false;
}
return true;
}




