2025-09-29 11:46 PM
The LCD Driver in stm32u083rc is consuming more power in stop 2 mode, it is taking more current at every interval (interval is of refresh rate , if refresh rate is 128Hz then the spikes come at (1/128 = 7.8ms))
currently we are entering low power mode like this
2025-09-30 12:21 AM - last edited on 2025-09-30 3:49 AM by Andrew Neil
Hey — that’s an interesting issue with LCD driver consuming power even in Stop-2 mode. Here are a few ideas to check:
1. LCD Controller Clock Supply
Ensure the LCD peripheral clock is turned off in Stop-2 mode (or properly gated). Sometimes the clock isn’t disabled and keeps drawing power.
Check if there are backup domain or display refresh features that keep the LCD active.
2. Display Duty/Backlight
If the LCD backlight or any LED driver is still running, that can consume power. Turn off or reduce backlight in low power mode.
Also check duty cycle or frame refresh timers — periodic refresh could keep hardware active.
3. Segment Multiplexing / Drain Path
Some LCDs use multiplexing that needs certain pins toggled or floats in low power; an overlap path might leak current.
Check pin states of segments/com commons — sometimes leaving them floating or wrongly driven causes leakage.
4. GPIO / Pads State
In Stop-2 mode, ensure all unused GPIOs or LCD pins not in use are in a defined state (analog / pull-down) to avoid leakage.
Drive necessary pins to known levels.
5. Power Domain Isolation / Regulator
If your MCU has multiple power domains, see if LCD domain remains powered or regulated.
Use power domain gating if supported.
If you tell me your MCU model (series) and your low-power config (which clocks off, backlight settings etc.), I can help you narrow it down and recommend a configuration that keeps LCD off until needed.
2025-09-30 1:48 AM - edited 2025-09-30 2:00 AM
I am using stm32u083rc and using stop2 mode, clock for LCD is LSE (32.768 KHz) no backlight, and we need LCD to be On all the time, we cannot disable it , currently in stop2 mode the base average current with LCD enabled is 5.7uA, and with LCD Disabled the current is 2uA. so because of those spikes when LCD is enabled it is increasing the base current to 5.7uA. we are keeping LSE on during stop2 mode. we are putting unused GPIO to analog mode and driving necessary pins to known levels using pullup or pulldown during stop mode .
The major doubt is regarding the current spikes going up-to 20-25uA based on the refresh rate interval selected for LCD ( though the average current is 5-6uA only)
the current configuration of LCD is
void MX_LCD_Init(void)
{
/* USER CODE BEGIN LCD_Init 0 */
/* USER CODE END LCD_Init 0 */
/* USER CODE BEGIN LCD_Init 1 */
/* USER CODE END LCD_Init 1 */
hlcd.Instance = LCD;
hlcd.Init.Prescaler = LCD_PRESCALER_16;
hlcd.Init.Divider = LCD_DIVIDER_16;
hlcd.Init.Duty = LCD_DUTY_1_4;
hlcd.Init.Bias = LCD_BIAS_1_3;
hlcd.Init.VoltageSource = LCD_VOLTAGESOURCE_INTERNAL;
hlcd.Init.Contrast = LCD_CONTRASTLEVEL_0;
hlcd.Init.DeadTime = LCD_DEADTIME_0;
hlcd.Init.PulseOnDuration = LCD_PULSEONDURATION_1;
hlcd.Init.BlinkMode = LCD_BLINKMODE_OFF;
hlcd.Init.BlinkFrequency = LCD_BLINKFREQUENCY_DIV1024;
hlcd.Init.MuxSegment = LCD_MUXSEGMENT_DISABLE;
if (HAL_LCD_Init(&hlcd) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN LCD_Init 2 */
/* USER CODE END LCD_Init 2 */
}
2025-09-30 2:03 AM
2025-09-30 3:36 AM - edited 2025-09-30 3:37 AM
Hello @Sumukha ,
If you are using a STM32U0 device why are you posting it in MPU forum?
This thread needs to be moved to the correct forum board.
And please use </> to share your code.