Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb940809

Browse files
committed
variant(g4): enhance WeAct G474CE clock config for USB
* Enable CRS and switch USB to HSI48, decoupling it from PLL* Increase VCO multiplier to reach 170 MHz max spec
1 parentd4a0b3c commitb940809

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

‎variants/STM32G4xx/G473C(B-C-E)U_G474C(B-C-E)U_G483CEU_G484CEU/variant_WEACT_G474CE.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ WEAK void SystemClock_Config(void)
9898
RCC_OscInitTypeDef RCC_OscInitStruct = {};
9999
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
100100
#ifdef USBCON
101+
RCC_CRSInitTypeDef RCC_CRSInitStruct = {};
101102
RCC_PeriphCLKInitTypeDef PeriphClkInit = {};
102103
#endif
103104

@@ -113,7 +114,7 @@ WEAK void SystemClock_Config(void)
113114
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
114115
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV2;
115116
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
116-
RCC_OscInitStruct.PLL.PLLN =72;
117+
RCC_OscInitStruct.PLL.PLLN =85;
117118
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
118119
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV6;
119120
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
@@ -133,9 +134,22 @@ WEAK void SystemClock_Config(void)
133134
}
134135

135136
#ifdef USBCON
137+
/* Enable the SYSCFG APB clock*/
138+
__HAL_RCC_CRS_CLK_ENABLE();
139+
140+
/* Configures CRS*/
141+
RCC_CRSInitStruct.Prescaler = RCC_CRS_SYNC_DIV1;
142+
RCC_CRSInitStruct.Source = RCC_CRS_SYNC_SOURCE_USB;
143+
RCC_CRSInitStruct.Polarity = RCC_CRS_SYNC_POLARITY_RISING;
144+
RCC_CRSInitStruct.ReloadValue =__HAL_RCC_CRS_RELOADVALUE_CALCULATE(48000000,1000);
145+
RCC_CRSInitStruct.ErrorLimitValue = RCC_CRS_ERRORLIMIT_DEFAULT;
146+
RCC_CRSInitStruct.HSI48CalibrationValue = RCC_CRS_HSI48CALIBRATION_DEFAULT;
147+
148+
HAL_RCCEx_CRSConfig(&RCC_CRSInitStruct);
149+
136150
/* Initializes the peripherals clocks*/
137151
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USB;
138-
PeriphClkInit.UsbClockSelection =RCC_USBCLKSOURCE_PLL;
152+
PeriphClkInit.UsbClockSelection =RCC_USBCLKSOURCE_HSI48;
139153
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
140154
Error_Handler();
141155
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp