AnsweredAssumed Answered

how to achieve the KEA128 lowest static current in STOP mode

Question asked by E.w. Hu Employee on Jul 25, 2017
Latest reply on May 15, 2018 by Kerry Zhou

Hi Sir,

 

I'm test the low power mode static current consume in STOP mode with FRDM-KEAZ128Q80 board and demo project--FRDM_KEA128_PMC.zip in S32DS for ARM version from the demo board's Quick Start Package---FRDM-KEA-QSP, attached for your reference. but I got over 220uA( measured with my multimeter )  at jumper J15 with R117 removed, during the STOP mode period in the first 3 seconds as the project configured:

 

int main (void)
{
uint8_t u8Ch;

/* Perform processor initialization */
ICS_ConfigType ICS_set={0}; /* Declaration of ICS_setup structure */
ICS_set.u8ClkMode=ICS_CLK_MODE_FEI; /* ICS in FLL engaged internal mode*/
ICS_set.bdiv=0;
ICS_Init(&ICS_set); /* Initialization of Core clock at 48 MHz, Bus clock 24 MHz*/

/* UART Initialization */
UART_ConfigType UART_Config={{0}};

UART_Config.sctrl1settings.bits.bM=0; /* 8 bit mode*/
UART_Config.sctrl1settings.bits.bPe=0; /* No hardware parity generation or checking*/
UART_Config.bSbns=0; /* One stop bit*/
UART_Config.sctrl2settings.bits.bRe=1; /* Enable Receiver*/
UART_Config.sctrl2settings.bits.bTe=1; /* Enable Transmitter*/
UART_Config.u32SysClkHz = 24000000; /* Bus clock in Hz*/
UART_Config.u32Baudrate = 115200; /* UART baud rate */

UART_Init(UART2,&UART_Config); /*Initialization of UART utilities*/

CONFIG_PIN_AS_GPIO(PTE,PTE7,OUTPUT); /*Config LED0 as output */

printf("\nRunning the FRDM_KEA128_PMC project.\n\r");

/* PMC Initialization */
PMC_ConfigType PMC_Config={{0}};

PMC_Config.sCtrlstatus.bits.bBandgapEn = 1; /* Enable Bandgap buffer */
PMC_Config.sCtrlstatus.bits.bLvdStopEn = 0; /* Disable Low-Voltage Detect(LVD) in Stop mode */
PMC_Config.sCtrlstatus.bits.bLvdRstEn = 0; /* LVD events do not generate hardware resets. */

PMC_Init(PMC, &PMC_Config); /* Initialization of PMC */
PMC_DisableLVWInterrupt(PMC); /* Disable hardware interrupt requests for LVWF */
u8Ch = PMC_GetLVWFlag(PMC); /* Get the lvw warning flag */

/* Initialize RTC */
RTC_ConfigType RTC_Config={0};

RTC_Config.u16ModuloValue = 3;
RTC_Config.bInterruptEn = 1; /* Enable interrupt */
RTC_Config.bClockSource = RTC_CLKSRC_1KHZ;/* Clock source is 1khz */
RTC_Config.bClockPrescaler = RTC_CLK_PRESCALER_1000; /* Prescaler is 100 */
RTC_SetCallback(RTC_Task);
RTC_Init(&RTC_Config); /* Initialization of RTC */

printf("\nEnter stop mode and will be woken up in about 4s by RTC IRQ.\n\r");
PMC_SetMode(PMC,PmcModeStop3); /* Enable PMC in stop mode */
printf("\nWake up now.\n");

while(1);

return 0;

}

 

the J15 jumper circuit(I also attached the complete schematic for your reference) for MCU current measurement on FRDM-KEAZ128Q80:

 

I get the STOP mode current parameters from KEAZ128 datasheet(S9KEA128P80M48SF0, KEA128 Sub-Family Data Sheet - Data Sheet (REV 4))as below:

its typical STOP mode current should be 2 uA, so my test result has big gap.

 

Could you help to check it?  How can we achieve the expected low power static current,  and it's better to made a demo project for me to get the 2uA static current in STOP mode if possible.

 

Thanks very much~!

 

Best regard,

Enwei Hu(胡恩伟)

Original Attachment has been moved to: FRDM_KEA128_PMC.zip

Attachments

Outcomes