2024-10-10 07:11 AM - last edited on 2024-10-10 08:15 AM by SofLit
Hi, I am trying to program a STM32L552ZEQ to use HSE instead of the default clock, but I am doing something wrong.
I attach the reference manual, as well as the user manual for my specific board. In the user manual, on page 24, it is stated that there is a HSE with 16 MHz clock frequency. I try to enable this by setting the HSEBYP and HSEON bits in `RCC->CR`, like so
```
```
Using GDB I observe the change to the register value happening as expected. After setting it, I am waiting for the hardware to set the HSERDY bit, indicating that everything went OK. But this bit is never set. I never seem to get out of this while-loop. I observe the bit not being set using e.g. GDB.
I looked at the reference manual and saw that MCO is fed to OSC_IN, which seems correct.
I then thought that it appears as if the MCO can be connected to several different sources, one of which being the HSE. I look at the reference manual, and find this
I modify my code to configure MCOSEL to have the value `0100`, to indicate that we should output the HSE to the MCO pin. I am using the CMSIS header files to access the correct addresses, and it seems as if the define for MCOSEL_2 carries the right value (4).
```
// the define is in the CMSIS header-file, but I paste it here for clarity
Solved! Go to Solution.
2024-10-17 07:24 AM
I will have to return to this thread when I've gotten my hands on those components. Thanks for your help so far!
2024-10-17 07:40 AM - edited 2024-10-17 07:41 AM
Hello @krook ,
Just to remind you that even with STLINK-V3 (the version on STM32L552ZEQ Nucleo board), the MCO is configurable and the default config is generated from HSI (HSI/2 = 8MHz) not the HSE crystal of the STLINK.
So if you are looking for an accurate clock source, you need to configure your STLINK. Please read this article.