cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB09 LL_RCC_RC64MPLL_IsReady() doesn't works

ManuelIgnacio
Associate II

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

 

 

 

5 REPLIES 5
TDK
Guru

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

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.



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

I swapped the microcontrollers between the PCB we designed and the Nucleo board, and got the same result (everything worked fine on the Nucleo, while on our custom PCB it got stuck at LL_RCC_RC64MPLL_IsReady()).

I have some doubts about the shape of the clock signal, so I’m going to measure and compare the signals on both the Nucleo and our custom board.

I have my doubts about whether the clock will output a signal if that line of code hasn’t been passed (since the clock initialization hasn’t been completed).

 

Edit: I believe the same as you — the error must be related to something in the hardware.

Chris21
Senior II

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.