Skip to main content
Associate II
April 7, 2025
Solved

code gets stuck on SystemClock_Config() or HAL_Delay() when using External clock

  • April 7, 2025
  • 1 reply
  • 1529 views

When ever I configure HSE in my ioc file for my custom PCB my code stops at SystemClock_Config() or HAL_Delay().  

One time when I replaced 48Mhz crystal oscillator with 32 Mhz my LVCU code worked on HSE but it was considerably slow than HSI even on 170 Mhz.

When I created another project to test HSE the same problem continues i.e SystemClock_Config() and HAL_Delay() stopped .

 

Can some one tell what should be the ioc file setting for HSE so that SystemClock_Config() and HAL_Delay() works.  

(LVCU working,distance2 not working)

 

Best answer by mƎALLEm

Hello,

Is this the part of crystal in the schematics?

mALLEm_1-1744272923354.png

10kOhm (I think R16) as series resistor? Are you sure?

Did you calculate it according to what AN2867 stated?

mALLEm_2-1744273236939.png

According to the values in the schematics and what the AN stated:

Rext  = 1 / (2 x PI x 48MHz x 30pf) = 110 ohm

So 10K is a very big value.

Then you need to recalculate the gain margin (as stated in the application note).

Also RExt needs to be 0 ohm unless you find the crystal is overdriven:

mALLEm_1-1744275012071.png

 

 

1 reply

mƎALLEm
Technical Moderator
April 7, 2025

Hello,

1- I can't see any difference between both ioc files.

2-  I'm confused. You said you are using 48MHz and 32 MHz crystals but in the CubeMx configuration you set the crystal value to 16 MHz in both projects. Could you please check and confirm?

mALLEm_0-1744015990415.png

 

3-  Did you also verify if your crystal is compatible with your MCU? please refer to the AN2867 "Guidelines for oscillator design on STM8AF/AL/S and STM32 MCUs/MPUs"

 

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
Associate II
April 7, 2025

1- Yes, I tried to replicate the correct ioc file.

2- sorry for the confusion , recently I also tried 16 Mhz crystal oscillator and the results were the same.

 

3- Yes I verified , the crystal is compatible. 

mƎALLEm
Technical Moderator
April 7, 2025

The issue still not clear,

1- I propose to share your schematics especially the HSE part.

2- Need to specify which function in SystemClock_Config() is failing, HAL_Delay() is just called in the Error_handler(). Try stepping your code to know when Error_handler() is called.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.