Part Number: MSP-EXP432P401R
Tool/software: Code Composer Studio
Hi everyone,
I'm developing an application using the MSP-EXP432P401R launch pad using the lastest version of CCS (7.2.0.00013).
After building the project, CCS gives me some ULP advices which are ULP1.1 and ULP4.1:
ULP1.1:
Low power mode (LPM) usage is highly recommended. One of the necessary steps to achieve low power consumption in an MSP430 application is to minimize the time spent active mode and maximize the time in low power modes. Peripherals can be configured to operate without CPU intervention and the CPU only needs to wake up to perform critical tasks and quickly return to low power mode. (processors.wiki.ti.com/.../10371)
ULP4.1:
When an unused port pin is left undefined or non-terminated, the floating voltage or shoot-through current on the pin can increase the overall current consumption. (http://processors.wiki.ti.com/index.php/Compiler/diagnostic_messages/MSP430/10372)
But I already followed those rules by implementing the following lines of code:
For ULP1.1:
/*
* Run the main application
*/
void App_Main_Run(void)
{
while (1)
{
/* Go to sleep */
MAP_PCM_gotoLPM0();
}
}
For ULP4.1:
/*
* Initialize GPIOs
*/
void GPIO_Init(void)
{
MAP_GPIO_setAsOutputPin(GPIO_PORT_P1, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P2, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P3, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P3, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P4, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P4, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P5, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P5, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P6, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P6, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P7, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P7, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P8, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P8, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P9, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P9, PIN_ALL16);
MAP_GPIO_setAsOutputPin(GPIO_PORT_P10, PIN_ALL16);
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P10, PIN_ALL16);
}
My schedule for calling those functions:
In main.c
/*
* Main function
*/
int main(void)
{
/* Halts the watch dog timer*/
MAP_WDT_A_holdTimer();
/* Disables master interrupt */
MAP_Interrupt_disableMaster();
/* Enables FPU with lazy stacking enabled for floating point operations in ISRs */
MAP_FPU_enableModule();
MAP_FPU_enableLazyStacking();
/* Initializes system clock and GPIO pins */
Clock_Init();
GPIO_Init();
/* Enables sleeping on ISR exits and enables master interrupt */
MAP_Interrupt_enableSleepOnIsrExit();
MAP_Interrupt_enableMaster();
/* Run the application */
Apps_Run();
return 1;
}
In applications.c
/*
* Run the application
*/
void Apps_Run(void)
{
/* Run the main application first */
App_Main_Init();
App_Main_Run();
}
- In app_main.c
/*
* Run the main application
*/
void App_Main_Run(void)
{
while (1)
{
/* Go to sleep */
MAP_PCM_gotoLPM0();
}
}
Is anyone has experience in this situation? Help me please.
Thanks in advanced.
