Low Power wait Mode

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

Low Power wait Mode

1,102 Views
Sridharanblr
Contributor I

Hi,

In LPM wait mode (Power idle mode), when __WFI () is invoked, I observed that the graphical display content gets blank, means a grey or Black screen appears, the moment I trigger the interrupt, Like GPIO/Touch/Uart, it exits, and the display restores into normal condition. 

I have  have cfg LCD clock as 27Mhz in Over run mode and 6Mhz in LPM mode, 

Question is how to keep intact the LCD display content in WFI() mode ?

I tested SDK, I observed that the RGB blocks are intact when in idle mode, When I press SW8, it exits and starts running in Overrun mode.. Here it is just a RGB block. 

0 Kudos
11 Replies

1,038 Views
Sanket_Parekh
NXP TechSupport
NXP TechSupport

Hello @Sridharanblr 

I hope you are doing well.

I have a few queries to ask Please find them below-given.
What EVK are you using?
What SDK version is being used?
Please check with the latest SDK version and share the observation.
Please share the LCD part number.

Please also describe the use case in detail to debug it further.

Thanks & Regards,

Sanket Parekh

0 Kudos

1,028 Views
Sridharanblr
Contributor I

Hi Sanket ,

What EVK are you using? 

  •   -  IMXRT1050-EVKB

What SDK version is being used?

  •   -  SDK_2_13_0_EVKB-IMXRT1050 

Please share the LCD part number.

  • Model: TM050RVGP29 | Tianma 5 Inch IPS + MXT336UD
  • Model: TM043NVGP06 | Tianma 4.3 Inch IPS + MXT336UD
  • Model: TM043NVHG21 | Tianma 4.3 Inch IPS + MXT336U

Please also describe the use case in detail to debug it further.

As explained earlier, In LPM Power Idle mode, The display goes blank(black screen), I don't see any content on the display that was present when running in normal mode. When I exit the WFI() mode by gpio/Touch/Uart trigger, the display content appears, 

We wanted to keep the display content intact and also run a timer on display during wait mode i.e  WFI() till any external trigger is invoked.

0 Kudos

979 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Sridharanblr ,

    Thanks for your updated information.

  Your issue should caused by the low power idle,the high-speed peripherials are power gated.

kerryzhou_0-1692869130335.png

If you set the normal run LCD clock as 6Mhz, whether your LCD display works or not?

Just make sure this clock is working OK, then in the low power idle mode, do you check the LCD clock, whether that still have clock or not?

Best Regards,

Kerry

 

0 Kudos

942 Views
Sridharanblr
Contributor I

Hi Kerry,

I have taken care of clock gating when in Normal RUN and LPM idle mode, I observed that my clock is 6Mhz, Also jfyi, I use OSC CLK ( external) during Idle mode for FlexSpi(qspi), SEMC (framebuffer), LCD.

I have one question, Can I keep the LCD content intact when I have put system into wait mode i.e ( __WFI()) 

Can you send me a modified Lcdif SDK example code that displays some text and design on LCD and this put into LPM Idle mode. 

 

Thanks 

0 Kudos

922 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Sridharanblr ,

  Just to confirm with you.

  You want to use the system idle in the following situation, right?

kerryzhou_0-1693373151305.png

From the clock tree, we can know the LCD clock source:

kerryzhou_1-1693373180717.png

So, if you want the LCD work, you need to use the system PLL which is PLL2 as the LCD clock source, then you can try it again, it should works.

Best Regards,

kerry

 

 

0 Kudos

900 Views
Sridharanblr
Contributor I

Hi Kerry, Thanks for the support!!

I have edited the LPM driver to enable few clocks that I need for our application. Here I have enabled SEMC, FlexSPI, LCD, Uart. 

I also observed LCD working fine with the settings, The issue is observed only when __WFI() is invoked. 

0 Kudos

807 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Sridharanblr ,

  So, you mean, your LCD clock source is enabled before you enter WIFI, right?

 Please share the test demo , I need to check your code.

Best Regards,

Kerry

0 Kudos

919 Views
Sridharanblr
Contributor I

Hi Kerry,

As mentioned earlier, I am using " LOW POWER IDLE MODE" and power ON 4.3", 8", LCD with images on the screen.

I have configured the LCD to 6- 12Mhz, I was able to see LCD image, however the moment the __WFI() is called, the screen goes blank ie White. 

if I trigger through GPIO/UART/Touch, it exits LOW POWER IDLE MODE and starts running normally at Over RUN Mode. 

 

0 Kudos

917 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Sridharanblr ,

  Thanks for your clarification.

  To the low power idle mode, the PLL situation is like this:

kerryzhou_0-1693373974491.png

So, the LCD clock source is powered down after you run the __WFI()(in fact, it is the code close the related clock before enter the WFI), which means the low power mode is entered.

In this situation, the LCD can't work anymore as it lacks the clock.

That's why you meet issues.

But, don't worry, after checking with our low-power expert, you still can make it work.

You just need to enable the PLL which is the LCD clock source, please also enable the 24mHZ xtal OSC, that will be more precise.

To make things easy, we suggest you use the system idle code, then just disable the other clock which you don't want, and change the low power mode code to the low power ilde code.

Please try it on your side.

If you still have issues about it, please kindly let me know.

Best Regards,

kerry

 

0 Kudos

1,083 Views
ramprakash08
Contributor IV

Hi,

It seems like the LCD display is losing its content when the system goes into low power wait mode (__WFI()). This is likely due to the LCD clock being reduced in LPM mode, which may not be enough to maintain the display content.

One possible solution is to use a static image or a screen buffer to maintain the display content while in low power mode. This would involve storing the current display content in a buffer before entering low power mode, and then restoring it when exiting low power mode. Here is a basic example of how this could be implemented:

I hope this helps.

Regards

0 Kudos

1,075 Views
Sridharanblr
Contributor I

Thanks Ram !!
I have configured the LCD clock for  PLL2_FD0_CLK and also PLL2_FD0_CLK by changing Mux/Div factors according to clk root diagram, had set for 27Mhz, 9MHz yet I see Blank screen when it enters in to __WFI(), This is observed only the moment when WFI() is called, till then the LCD is fine with above clock. I tried cfg with over run and again call Seep mode, Yet same behaviour. 
In SDK , I observed RGB block freezes when WFI is called. When interrupt trigger occurs , it again starts moving.
We are using GUI library to display content on LCD, Is there any way that I can freeze the screen when I enter into LPM idle mode i.e. WFI() ,

0 Kudos