cancel
Showing results for 
Search instead for 
Did you mean: 

Dead LSE and PLL

Peaga
Senior

Hello!

It's been a while since my project is working fine with STM32H750, using HSI (+PLL) as SYSCLK and RTCC by LSE (crystal and capacitors selected by ST notes). But (maybe) after an abrupt reset by the power suplly, two of my custom boards starts to act weird. GPIO toggle became very slow and RTCC stop working at all.

Putting the board on debug, I found that both HAL_RCC_OscConfig() and HAL_RCC_ClockConfig() are returning error: the first one, a HAL_TIMEOUT on "LSE Configuration" and the second, HAL_ERROR on "PLL is selected as System Clock Source".

After replacing ST from one of the boards, everything starts to working fine. So I'm really confused. Is it really dead? But how??

Thanks in advanced

19 REPLIES 19
Alex Sp
Associate II

Hi! I confirm this problem.

We have three identical boards. Boards core - STM32H743VIT6 rev. Y.

During debugging, LSE stops working on one board.

Trying to change the quartz driving level :

LL_PWR_EnableBkUpAccess();

 LL_RCC_ForceBackupDomainReset();

 LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_HIGH);

}

RCC->BDCR->LSEDRV does not change (RCC->BDCR->LSEDRV = 0 ). On other boards and on this one after replacement MCPU, the code works (RCC->BDCR->LSEDRV = 3 ) , LSE works.

This is a big problem. In a real project, the failure of this module and, as a result, the failure of the RTС.

Refusing STM32H7? What says support?

DSarl
Associate II

Hello, I confirm the issue. Im working on a custom board with stm32h743vi.

May be a fail in some MCUs, I allready have 100 boards running, 3 of them has the RTC issue after a power down.

LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_HIGH); doens´t take any effect.

any solution?

DSarl
Associate II

I found a solution.

You must disable LSE before change drive capability

 LL_PWR_EnableBkUpAccess();

 LL_RCC_LSE_Disable();// add this line

 // LL_RCC_ForceBackupDomainReset(); // comment this line

 // LL_RCC_ReleaseBackupDomainReset(); // comment this line

 LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_HIGH);

 LL_RCC_LSE_Enable();

  /* Wait till LSE is ready */

 while(LL_RCC_LSE_IsReady() != 1)

 {

 }

I'm going to test this in several boards...

best regars

Diego

Alex Sp
Associate II

Thanks!

Good to know Diego, thanks! I'm not getting this issue anymore but when its happens, I'll test your workaround!

Thanks again!

if you shut down the board and ​remove the battery, the backup domain is reseted to default and most times the LSE start ok

It is difficult to explain this to the client in production 8)

Hello again!

Just got a board with the issue (STM32H750 VBT6 rev Y), but your workaround didn't work. I'm not using LL driver for RTC, but I can disable LSE using HAL. Even removing the battery, no result. So, again, it's a dead STM32... :(

ADunc.1
Senior

I also have this same problem. Three products have been returned from the field where they will not startup due to LSE not starting. When the battery is removed and power is cycled, the LSE starts working again and remains working through power cycles.

This is without altering the drive level.

Did anybody find anything further about this issue?