i.MX RT1064: Trouble enabling LPM_PowerModeLowSpeedRun

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX RT1064: Trouble enabling LPM_PowerModeLowSpeedRun

169 Views
Geiger8759
Contributor III

Hi there, 

We are looking to reduce our power consumption and for that reason we want to enable:

  • Tickless Idle
  • Reduced CPU speed (Low Speed Run)

We've got the Tickless Idle running using configUSE_TICKLESS_IDLE 2 , similar to the example tickless example, which already reduces the power consumption considerably.

Now we want to reduce the CPU speed when going into tickless idle mode to save some more. For this I started from the power_mode_switch_rtos example, which worked just fine.

When porting it to my existing application (without tickless idle) and testing the application in low speed run mode, I noticed that 
logging to the console (uart) crashes the application, why is this an issue?

Additionally I tried to only enable & disable the low speed run mode when going in and out tickless idle mode (as there is no logging, I imagined no problems), with the GPT clocksource set to kGPT_ClockSource_Osc so the wakeup time is correctly calculated.

This however doesn't seem to be working at all, it hangs in lpm.c in LPM_SetPowerMode while waiting to get s_mutex: xSemaphoreTake(s_mutex, portMAX_DELAY). However I verified that the LPM is initialized before calling this.

I know this is a very vague description, but my question is more general: I notice that the application goes into tickless idle mode for a couple of ms sometimes, is it a good approach in this case to switch between power run modes in this case?

Are application is mostly idle, but it most maintain an MQTT connection with the server to keep on being responsive.

We are using FreeRTOS 10.4.3

Thank you in advance.

0 Kudos
1 Reply

114 Views
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @Geiger8759,

It might be worth taking a look into how exact the porting was done to integrate both of these features. However, even though low speed run is designed to transition back to normal run in a quick manner, with such low times between transitions (in the couple of ms), perhaps the power consumption saving will not be substantial enough.

BR,
Edwin.

0 Kudos