Skip to main content
Clement_Devevey
Associate II
April 7, 2022
Question

low power mode using touchGFX

  • April 7, 2022
  • 7 replies
  • 5635 views

Hi,

I am using STM32F469I-DISCO with touchGFX on it, and I would like to reduce power consumption. I managed to set the brightness of LCD to lowest when no user activity for more than 30sec.

I am resetting brightness as soon as the user touch the screen.

I would like to know if it is possible to use sleep or stop mode for reducing power consumption as much as possible. My concern is about how to wake up the system, since I need to check if user has touched the screen?

Second, is using an ammeter on IDD (by removing the jumper) the right way to measure power consumption?

Thanks for any help,

Best regards.

Clément Devevey

7 replies

Clement_Devevey
Associate II
April 8, 2022

Update: removing jumper and replacing it with ammeter (it displays 500 uA) makes the code not executed anymore.

Any hint about this issu?

wired
Senior II
April 12, 2022

Hi Clement,

I've spent quite a bit of time with that DISCO board, trying to enter STOP mode and exit using the touchscreen. See this post. I am not using SLEEP mode, because I didn't want to deal with FreeRTOS tickless idle mode just yet.

I have no idea why your inline IDD meter causes a problem. I have my digital multimeter connected inline, and it works fine. That measurement provides the current drawn by the microcontroller itself, (VDD_MCU) and nothing else.

I am curious as to how you were able to reduce current to 500uA at IDD. I could not get it to go that low with the DISCO board in STOP mode. I could only get down to ~4mA. Please keep us updated with your progress.

BTW, I changed my AHB Prescaler in Clock Configuration to /4, and that made a huge difference in power consumption while still having acceptable TouchGFX performance for animations.

CDeve.2
Associate II
April 14, 2022

Hi sorry I can't login to my other account anymore. It says to clear my browser cookies.. but here I am.

I was using an ammeter with µA scope that's why it showed 500 µA (the max it could measure) and didn't worked.

Now I found an ammeter with mA scope and it shows 100mA. But setting brightness to 0 doesn't affect the power consumption, seems weird.

Thanks for the tips, I will try those.

wired
Senior II
April 14, 2022

Sorry, I didn't quite comprehend what you said in your earlier post. Yes, your current-limited ammeter was causing a voltage drop, so the MCU could not run. Also, setting the brightness to 0 will not affect the IDD measurement because you are only affecting the 5V BL_VDD power supply (see schematic). You would need to measure the 5V supply to see a change. Also, the IDD jumper is used to isolate just the MCU current, so it will not see any change in current resulting from changes to the brightness.

My recommendation to you if you are working on power consumption issues is to monitor IDD for the MCU, but also you need to monitor your total power consumption if you are supplying E5V to the board. In my case, I wanted to see if the backlight would run directly off a battery and also monitor the 5V current, so I removed SB8 and SB2, and I have one variable supply connected to 5V (pin 5 on CN6), and another 3V supply on 3V3 (Pin 4 of CN6), with no jumpers attached at JP2. You can get a much better picture of how your system is using power.

Also, with respect to your PM about using the touchscreen for wakeup, you need to read the reference guide and learn about events vs interrupts. I am setting up the pin LCD_INT to generate an event on its falling edge (you can do this in CubeMx by configuring JP5's GPIO mode to External Event Mode with Fallng edge trigger detection. Because I am using this purely as a wakeup from STOP mode, I wanted it to be an event rather than an interrupt. The Reference Manual for the MCU will give you more details about all of this.

CDeve.2
Associate II
April 14, 2022

Ok so first thanks for not giving me the answer away. It made me search answers on the Reference Manual. I understand better NVIC - EXTI + Event/Interrupt.

I also found the LCD_INT pin on the schematic: (by the way, why schematics for this board are not on the official datasheet from ST? I found them on userwiki manual website.

0693W00000Ly0f3QAB.pngI guess you meant PJ5 GPIO.

Let me sum up, so the idea is so to set the LCD_INT as an external Event, falling edge trigger. With this config, even if LCD is sleeping, and LCD display is off, it will still trigger and wakeup from stop mode?

I still don't get how anyone can find that LCD_INT is the pin that is lowered when user touch screen? The LCD_INT occurs 0 time on LCD datasheet neither on Reference Manual.

Finally I'm curious to know how did you remove Solder Bridge? I saw on youtube a guy doing tin solder on it.

Anyway, thanks for the help, I really appreciate it.

Best regards

wired
Senior II
April 14, 2022

I am hoping @Martin KJELDSEN​ will be able to put some definitive tutorial together about low power mode as he mentioned in the VSYNC post, but we don't have anything yet, so for know I'm sticking with my approach, and if I ever have a failure will post an update.

Martin KJELDSEN
Principal III
April 27, 2022

Hi guys,

Low Power is a really interesting topic, and one that is become more and more relevant with TouchGFX applications. I've asked the powers that be to get some time soon to do some research into scenarios and create a more extensive guide/documentation on the subject. It's approved, so now we just have to find the time.

Thanks.

/Martin

Martin KJELDSEN
Principal III
April 27, 2022

It probably wouldn't be a bad idea if we could gather up some common scenarios, current issues people are having (to be addressed in the doc), etc. I'll start with the content of this thread.

/Martin

wired
Senior II
April 27, 2022

I know not all apps use a touchscreen, but waking up from touch is probably a very common scenario from those that do. And whether or not touch is used, getting the most power reduction by shutting down the display and backlight, and properly recovering is one of the more challenging aspects of power management that should be covered. SDRAM is also something that can be manipulated to reduce power in Stop mode.

STOP mode is hard enough, but SLEEP mode is probably even more challenging, since tickless idle mode would need to be implemented if using FreeRTOS.

For my 469i-DISCO application, I was able to just do a /4 on HCLK with no adverse effects on the display. Performance was still adequate (fade/move/slide/etc), and the power savings were probably more than I would have achieved by going to tickless idle and using MCU SLEEP mode. I would say that when trying to reduce power in general, that's some low hanging fruit.

Martin KJELDSEN
Principal III
April 28, 2022

Good input, thanks wired.

Associate
February 13, 2025

Is there any update for the docs? Id be very interested aswell.

Senior III
April 4, 2025

up on this