Skip to main content
Visitor 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)

 

    This topic has been closed for replies.
    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

    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"

     

    Visitor 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. 

    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.

    mƎALLEmAnswer
    Technical Moderator
    April 10, 2025

    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