Skip to content

Commit ab6e293

Browse files
committed
enabling IPCC module of the stm32WB55
to support BLE on this nucleo_wb55rg Align Peripheral CLK Config on MBDED Signed-off-by: Francois Ramu <[email protected]>
1 parent 95e58e6 commit ab6e293

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

variants/PNUCLEO_WB55RG/variant.cpp

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ WEAK void SystemClock_Config(void)
138138
Error_Handler();
139139
}
140140
/* Initializes the peripherals clocks */
141+
/* from MBED:
142+
*
141143
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS | RCC_PERIPHCLK_USB;
142144
PeriphClkInitStruct.PLLSAI1.PLLN = 24;
143145
PeriphClkInitStruct.PLLSAI1.PLLP = RCC_PLLP_DIV2;
@@ -146,13 +148,34 @@ WEAK void SystemClock_Config(void)
146148
PeriphClkInitStruct.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_USBCLK;
147149
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
148150
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSI;
149-
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
151+
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0; */
152+
/* RNG needs to be configured like in M0 core, i.e. with HSI48 */
153+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS | RCC_PERIPHCLK_RFWAKEUP | RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_USB;
154+
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
155+
PeriphClkInitStruct.RngClockSelection = RCC_RNGCLKSOURCE_HSI48;
156+
PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
157+
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
158+
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE1;
159+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
160+
Error_Handler();
161+
}
162+
163+
LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
164+
LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
165+
// LL_PWR_SMPS_Enable();
166+
167+
/* Select HSI as system clock source after Wake Up from Stop mode */
168+
LL_RCC_SetClkAfterWakeFromStop(LL_RCC_STOP_WAKEUPCLOCK_HSI);
150169

151-
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
152-
Error_Handler();
153-
}
154170
/* Enable MSI Auto calibration */
155171
HAL_RCCEx_EnableMSIPLLMode();
172+
173+
/* */
174+
LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
175+
LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
176+
177+
LL_RCC_SetClkAfterWakeFromStop(LL_RCC_STOP_WAKEUPCLOCK_MSI);
178+
156179
}
157180

158181
#ifdef __cplusplus

variants/PNUCLEO_WB55RG/variant.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ extern "C" {
120120
// for EEPROM emulation to the last 512k pages.
121121
#define FLASH_PAGE_NUMBER 127
122122

123+
124+
#define HAL_IPCC_MODULE_ENABLED
125+
123126
#ifdef __cplusplus
124127
} // extern "C"
125128
#endif

0 commit comments

Comments
 (0)