@@ -138,6 +138,8 @@ WEAK void SystemClock_Config(void)
138
138
Error_Handler ();
139
139
}
140
140
/* Initializes the peripherals clocks */
141
+ /* from MBED:
142
+ *
141
143
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS | RCC_PERIPHCLK_USB;
142
144
PeriphClkInitStruct.PLLSAI1.PLLN = 24;
143
145
PeriphClkInitStruct.PLLSAI1.PLLP = RCC_PLLP_DIV2;
@@ -146,13 +148,34 @@ WEAK void SystemClock_Config(void)
146
148
PeriphClkInitStruct.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_USBCLK;
147
149
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
148
150
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);
150
169
151
- if (HAL_RCCEx_PeriphCLKConfig (&PeriphClkInitStruct) != HAL_OK) {
152
- Error_Handler ();
153
- }
154
170
/* Enable MSI Auto calibration */
155
171
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
+
156
179
}
157
180
158
181
#ifdef __cplusplus
0 commit comments