Skip to main content
Associate II
April 24, 2025
Solved

STM32WB09 LL_RCC_RC64MPLL_IsReady() doesn't works

  • April 24, 2025
  • 3 replies
  • 1024 views

Hi,

We designed a custom board that includes the STM32WB09KE microcontroller. We're working with a BLE middleware, and when I try to run the code, it doesn't go past the line LL_RCC_RC64MPLL_IsReady() during the clock configuration in SystemClock_Config().

As far as I know, the code should work, since it runs correctly on the Nucleo-WB09KE (NUWB09KE$CR1). Below is a photo:

ManuelIgnacio_0-1745511350359.jpeg

If I don't enable the PLL64M, the code runs fine and I can, for example, make an LED blink. However, I lose the RADIO functionality, which is essential for my project.

I'm also including the main.c code atached, along with a physical photo of how the microcontroller is currently "wired up".

ManuelIgnacio_2-1745511393562.jpeg

 

 

 

Best answer by ManuelIgnacio

Hi,

The solution we found was to copy exactly the schematic of the Nucleo board that contains the microcontroller, as the clock signal waveform is very sensitive to its grounding

Thanks for your help friends. 

3 replies

TDK
Super User
April 24, 2025

Your HSE wiring does not inspire confidence and is likely the problem. What part are you using as a crystal? Where are the load caps?

 

"If you feel a post has answered your question, please click ""Accept as Solution""."
Associate II
April 24, 2025

Hi TDK,

For the crystal connection to the microcontroller, I based it on the same configuration used in the Nucleo-WB09KE (NUWB09KE$CR1), which does not include any capacitors. Here's an image of the schematic according to ST:

ManuelIgnacio_0-1745517777511.png

 

Below is also an image of the part number of the crystal I'm using as the HSE (Part.N: XRCGB32M000F2P01R0 from Murata Electronics).

ManuelIgnacio_1-1745517851670.jpeg

Maybe the error could be in the wiring. I have an oscilloscope, so I could measure the clock signal to make sure everything is working properly in that regard.



TDK
Super User
April 24, 2025

Oh right, I forgot this chip has internal load caps.

Looks like it's all connected correctly to me.

Still seems like a hardware issue if the same components/code work elsewhere.

"If you feel a post has answered your question, please click ""Accept as Solution""."
Chris21
Associate II
April 24, 2025

Interesting, I didn't know there were STM32s with internal load caps.

 

I see that the datasheet has footnotes suggesting some register settings:

GMCONF = 3

2. XOTUNE programed at center code = 32
3. XOTUNE programed at maximum code = 63

could be worth trying.

Associate II
April 24, 2025

We measured the 32MHz clock signals:

 
  • On the board we designed, the frequency on one of the two pins was showing 24MHz with a very ugly waveform.

  • On the Nucleo, the frequency on both pins was very close to 32MHz and with very sinusoidal waveforms.

 

We're going to try resoldering the clock more properly and I'll update you on how it goes.

ManuelIgnacioAuthorBest answer
Associate II
May 6, 2025

Hi,

The solution we found was to copy exactly the schematic of the Nucleo board that contains the microcontroller, as the clock signal waveform is very sensitive to its grounding

Thanks for your help friends.