cancel
Showing results for 
Search instead for 
Did you mean: 

RTC not configuring after power loss when using Supercapacitor (STM32L-series).

Sourabh
Associate II

We are facing an issue with the RTC on our STM32L-series microcontroller board. Below are the actions we tried and their outcomes:

Main issue:

  • When the battery is connected to the supercapacitor for the first time, the RTC initializes correctly.

  • But when we simulate a power loss by manually removing the main power and reconnecting it, the RTC clock fails to configure on the second initialization.

Tests performed:

  • Removed the supercapacitor and replaced it with a coin cell and an RPS → the clock still fails to configure.

  • When the system is configured without any backup power source, the system clock initializes and works normally.

  • Referred to this article: https://mischianti.org/stm32-internal-rtc-clock-and-battery-backup-vbat/ and tested the small noise-suppression circuit, but it did not resolve the issue.

  • Tried fully resetting the RCC using:__HAL_RCC_BACKUPRESET_FORCE();
    __HAL_RCC_BACKUPRESET_RELEASE();

  • This allows the clock to reinitialize, but the stored RTC time/date are lost.
  • Please provide any suggestions or guidance to help resolve this issue. I will continue debugging and update this thread with new findings.
19 REPLIES 19

The L1 series had a latch-up issue as I recall. Also didn't have an independent VBAT pin.

Might need specific procedures to remove power source and then reconfigure and pull current time/date from host system, say via (S)NTP.

Might also need to look at how power loss is handled / managed, and put into STANDBY, and flagging of power-up mode, standby and tamper type events.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
MM..1
Chief III
waclawek.jan
Super User

> when we simulate a power loss by manually removing the main power and reconnecting it, the RTC clock fails to configure on the second initialization.

What do you mean by "RTC clock fails to configure"? If there is enough voltage on VBAT pin (i.e. supercap or battery connected to it), you don't need to configure the RTC again - if it retains time, it retains also its configuration.

JW

Hi thanks for the reply, I am using STM32L4 series board and also i am facing issue during the second initialization i.e after main power loss and powering back the board.

 

Hi thanks for the reply, the clock doesn't configure the second time, and is there a way to check my LSE state during my clock initialization?

Sourabh_0-1764924487390.png

 

waclawek.jan
Super User

I don't use Cube so can't help with that. However, Cube is open source, so you can debug it as your own code.

You can check state of the clocks in the respective RCC registers, namely, LSE state is given by the LSERDY bit in RCC_BDCR. You can do this in debugger, too.

JW

Andrew Neil
Super User

You haven't showed your schematic - see: How to write your question to maximize your chances to find a solution

 

Remember that Supercaps are not like batteries: the voltage decays gradually to zero - unlike batteries, which tend to keep a (relatively) steady voltage until they die:

AndrewNeil_0-1764928383910.png

 

#SuperCap #SuperCapVsBattery

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
Sourabh
Associate II

Hi everyone,

Here are a few additional details that I missed in my original post. The supercapacitor is connected directly to VBAT. Could this configuration cause any issues?

I am also facing a problem when I reconnect the main power for the second time on the STM32L4 series board. At that point, I encounter an LSE timeout issue.

Any insights or suggestions would be greatly appreciated. Thank you.

Sourabh_1-1764937861934.png

 

Still missing hardware details.

Please show the schematic - much more effective than trying to describe electronic circuits in words!

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.