Other Parts Discussed in Thread: FLOWESI-GUI, EVM430-FR6989
Hi All,
I am developing a metering application which requires ESI sensing. I have adapted my code from FlowESI-GUI generate code program. As per the flow of the code, The controller goes into LPM3 mode after executing the main loop commands. As per the datasheet, low power mode should not use more that 1 uA of current. But in my device, current consumption is constantly ~40 uA.
Below are my clock settings
// Set DCO Frequency to 8 MHz CS_setDCOFreq(CS_DCORSEL_0, CS_DCOFSEL_6); //configure MCLK = 8MHz, SMCLK = 2MHz to be source by DCOCLK CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4); CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1); // ACLK Clock configuration //Set external clock frequency to ACLK frequency CS_setExternalClockSource(32768,0); // configure ACLK = 32768 Hz to be sourced from external crystal CS_initClockSignal(CS_ACLK,CS_LFXTCLK_SELECT,CS_CLOCK_DIVIDER_1); // Make sure this is enabled for RTC clock CS_turnOnLFXT(CS_LFXT_DRIVE_3); // Disable the GPIO power-on default high-impedance mode to activate // previously configured port settings PMM_unlockLPM5();
This is my while(1) routine in main code.
while ( 1 ) { // check for flags if (restart_flag == 1) { restart_device(); } serviceInterrupts(); // Enter LPM3 w/ interrupt __bis_SR_register(LPM3_bits + GIE); }
Regards,
Lovelesh