Hello
I used the MSP430F5528 and when i call "_low_power_mode_4()", my CPU doesn't go in SLEEP mode.
I can add breakpoint on my program and the SW stop on it.
Somebody knows why?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello
I used the MSP430F5528 and when i call "_low_power_mode_4()", my CPU doesn't go in SLEEP mode.
I can add breakpoint on my program and the SW stop on it.
Somebody knows why?
Hi,
When you said "doesn't go to sleep mode", do you mean that the power consumption is too high for you in comparison with the one specified in the datasheet?
If yes, please refer here: http://processors.wiki.ti.com/index.php/MSP430_FAQ#How_to_achieve_the_specified_power_consumption_values_as_in_the_datasheet.3F
No
When you said "doesn't go to sleep mode", for me, in mode sleep 4, the CPU is stopped and my program doesn't run until and external event.
But my program is still running (without any external event) and stop on break point place after the call of API to pass un low power mode
Hi,
could you give a test code so that I can test it on TI kit?
Also, I have never used _low_power_mode_4() before, could you try with
__bis_SR_register(LPM4_bits);
instead?
Thanks for you help
I have try this code and nothing, the SW is still running
After a lot of test, i have found that is TI-RTOS that "disable" le low power mode because if i want to go in low power mode before to call "BIOS_start" it is ok.
is it possible to move this post on the TI-RTOS topic?
if it is not possible i will create a new post on the correct section
Cedric,
Have a look at this wiki especially the "Idling with SYS/BIOS" topic for setting up power mode.
Vikram
Hello Vikram.
I know this article.
In my project, I have enable the "Idle" mode with SYSBIOS.
But i need to set my software in LPM4 in a spoecific case. When the Idle mode is activated on Sysbios, i can't activate it (with "Power.idleMode = Power.LPM4" or any other command).
You would like to change the mode at runtime if I have understood it correctly. Yes, this can be done. TI-RTOS kernel (SYS/BIOS) allows changing the power mode at runtime through the Power module APIs.
Here is the HowTo for changing the power mode at runtime.
And the Power module API documentation.
Vikram
hello
i have try to call Power_changeIdleMode(Power_LPM4) but my software is not sleep external IT.
My tasks are still running. Is it normal?
The CPU and all clocks will be disabled when LPM4 is set. See here.
Have you set this configuration in your .cfg file?
Power.allowDynamicMode = true;
From documentation for Power_changeIdleMode(), note that the CPU doesn't go immediately to sleep. The idleTask has to run for the system to enter LPM4 power mode. Is your application entering the idleTask (i.e. are your other tasks blocking. Only then can the system enter the idleTask)? You mentioned "My tasks are still running", how are you checking this?
Vikram
hello
In my configuration file i have added "Power.allowDynamicMode = true;" and i have used the API Power_changeIdleMode() ti force the LMP4.
to check "My tasks are still running" , i have put a a toggle pin in a task at 80ms and in scop, i see the toggle every 80ms
Hello
Yes my tasks are blocking by semaphore set using every 80ms by the TIRTOS Clock :
"
Clock.timerId = 0;
var clock0Params = new Clock.Params();
clock0Params.instance.name = "clock";
clock0Params.period = 1;
clock0Params.startFlag = true;
Program.global.clock = Clock.create("&ManageClock", 1, clock0Params);
BIOS.clockEnabled = true;
"
About the idle task, i have not created it (the idle task is the default provided by Sysbios and to my knowledge is empty)
Sorry for the delayed response.
I have been talking to our Power module experts.
Clock module has two tick modes: Periodic and Dynamic. Periodic mode interrupts with each tick whereas Dynamic is a tick suppression mode which reduces the number of timer interrupts to minimum required. You can read more about it here.
So, in short we need to change the Clock to Dynamic mode which will allow the CPU to go sleep mode. In your .cfg file, you can change the Clock mode like the following:
Clock.tickMode = Clock.TickMode_DYNAMIC;
Vikram