Dear NXP,
we are currently trying to verify the power consumption of the LPC54608 (QFP 208 in a prototype board) and are seeing something not quite in line with the datasheets.
Mounted on the board:
- LPC54608
- 3 pcs 10K pullup resistors on P0.4, P0.5 and P0.6 (ISP0 to ISP2)
- 3 LED with 1 K series resistors to VCC (output kept at high level, no power consumption from LEDs)
- 10 pcs decoupling caps (a mix of 10 nF and 100 nF)
- VBAT is connected to VCC thru a 1 ohm resistor
- VREFP/VDDA is connected to VCC thru a 1 ohm resistor
- P3.15 is connected to GND
Board also has NAND Flash and SDRAM on bottom side, none of these are mounted
Debug connector is removed during tests, only supply (1.8V or 3.3V are connected).
The program executes a dummy loop for 1 second and then does sleep or deepsleep for 1 second. The deep powerdown just executes the powerdown and nothing more (no irq enabled etc). We use the utick for generating the 1 second ticks in sleep and deepsleep.
We see the following numbers:
(ROM API is version 19.01)
Running at 12 MHz FRO
At 3.24V supply
- Sleep: 3.0 mA (Datasheet: 1.7 mA typ), active 4.0 mA (Datasheet: 4.1 mA typ)
- Deepsleep: 1.67 mA (Datasheet: 22 uA typ), active (simple loop) 12 MHz:4.1 mA (Datasheet: 4 mA typ)
- Deep powerdown: 260 nA (Datasheet: 326 nA typ)
At 1.85V supply
- Sleep: 2.0 mA (Datasheet: 1.7 mA typ@3.3V), active 3.1 mA (Datasheet: 4 mA typ@3.3V)
- Deepsleep: 550 uA (Datasheet: 22 uA typ@3.3V), active (simple loop) 12 MHz:3.1 mA (Datasheet: 4 mA typ@3.3V)
- Deep powerdown: 220 nA (Datasheet: 326 nA typ@3.3V)
The numbers for deep powerdown fits fine with the datasheet, no problem there. The sleep consumption at 1.85V is also ok according to the datasheet.
Then things go a little out of control....
At 3.2V, the sleep value is 3.0 mA and datasheet says 1.7 mA. At 1.8V it drops to 2.0 mA (closer to the 1.7 mA)
Deepsleep is more off, at 1.8V it is 1.67 mA, datasheets claims 22 uA. At 1.8V it drops to 550 uA.
I have verified that there is no current flowing over the 3 pullup resistors and also the series resitors for the 3 LEDs.
I'm not sure that any of the peripherals that might be running out from a reset can consume this much power.
Do you (NXP) have an application that demonstrates the numbers from the datasheet ? I know there are samples etc that shows some of the power modes, but they are not complete (does not handle GPIO settings etc etc). There must be a complete sample that can show the exact numbers from the datasheet ??
The "rom power" lib and associated header is a "mess". There is absolutely no documentation about all the different "set voltages etc". Where do we find information about all these details ???
We need to verify these numbers before we are able to go ahead with two new designs with (hopefully) the LPC54608 device.
We are using LPCOpen, the code is below:
SystemCoreClockUpdate();
Chip_GPIO_Init(LPC_GPIO);
Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_IOCON);
romver = Chip_POWER_GetROMVersion();
Chip_SYSCON_PowerUp(SYSCON_PDRUNCFG_PD_WDT_OSC);
Chip_UTICK_Init(LPC_UTICK);
Chip_UTICK_ClearInterrupt(LPC_UTICK);
Chip_UTICK_SetDelayMs(LPC_UTICK, 1000, true);
Chip_SYSCON_EnableWakeup(SYSCON_STARTER_UTICK);
NVIC_EnableIRQ(UTICK_IRQn);
Chip_SYSCON_EnableWakeup(SYSCON_STARTER_UTICK);
while (1) {
for (i=0; i<1000000; i++);
Chip_POWER_EnterPowerMode(POWER_DEEP_POWER_DOWN, 0, 0);
}
System init:
void Chip_SetupIrcClocking(uint32_t iFreq)
{
PLL_CONFIG_T pllConfig;
PLL_SETUP_T pllSetup;
PLL_ERROR_T pllError;
Chip_SYSCON_PowerUp(SYSCON_PDRUNCFG_PD_FRO);
Chip_Clock_SetMainClockSource(SYSCON_MAINCLKSRC_FRO12MHZ);
setupFlashClocks(iFreq);
Chip_Clock_SetSysClockDiv(1);
}
void Chip_SystemInit(void)
{
Chip_SYSCON_PowerUp(SYSCON_PDRUNCFG_PD_SRAM0 | SYSCON_PDRUNCFG_PD_SRAM1 | SYSCON_PDRUNCFG_PD_USB_RAM);
Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_SRAM1);
Chip_Clock_EnablePeriphClock(SYSCON_CLOCK_SRAM2);
Chip_SetupIrcClocking(12000000);
Board_SetupMuxing();
}
Board muxing is empty.