Skip to content

Commit defa75a

Browse files
LMESTM0xc0170
authored andcommitted
STM32WB: Only configure default peripherals in SetSysClock
Typically the RTC clock is configured by RTC driver itself. RNG on the other hand is shared with M0+ core and it is expected that M4 turns it on at boot time.
1 parent fee3fae commit defa75a

File tree

1 file changed

+9
-10
lines changed
  • targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xG/TARGET_NUCLEO_WB55RG

1 file changed

+9
-10
lines changed

targets/TARGET_STM/TARGET_STM32WB/TARGET_STM32WB55xG/TARGET_NUCLEO_WB55RG/system_clock.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -177,12 +177,10 @@ uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
177177
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
178178
/** Initializes the CPU, AHB and APB busses clocks
179179
*/
180-
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI1
181-
|RCC_OSCILLATORTYPE_HSE;
180+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;
182181
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
183182
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
184183
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
185-
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
186184
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
187185
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
188186
{
@@ -206,13 +204,7 @@ uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
206204
}
207205
/** Initializes the peripherals clocks
208206
*/
209-
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
210-
|RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
211-
|RCC_PERIPHCLK_LPUART1;
212-
PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
213-
PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1;
214-
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
215-
PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSI;
207+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS;
216208
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
217209
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
218210

@@ -226,6 +218,13 @@ uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
226218
*/
227219
LL_RCC_SetClkAfterWakeFromStop(LL_RCC_STOP_WAKEUPCLOCK_HSI);
228220

221+
/**
222+
* Set RNG on HSI48
223+
*/
224+
LL_RCC_HSI48_Enable();
225+
while(!LL_RCC_HSI48_IsReady());
226+
LL_RCC_SetCLK48ClockSource(LL_RCC_CLK48_CLKSOURCE_HSI48);
227+
229228
return 1;
230229
}
231230

0 commit comments

Comments
 (0)