2025-04-24 9:20 AM
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:
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".
2025-04-24 10:16 AM
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?
2025-04-24 11:09 AM
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:
Below is also an image of the part number of the crystal I'm using as the HSE (Part.N: XRCGB32M000F2P01R0 from Murata Electronics).
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.
2025-04-24 12:49 PM
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.
2025-04-24 1:18 PM - edited 2025-04-24 1:19 PM
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.
2025-04-24 1:32 PM
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.