Skip to content

Commit 7f6523a

Browse files
committed
Updated system clock settings to run at 170MHz (max for this target). Affects both HSI and HSE modes.
1 parent 86d33ba commit 7f6523a

File tree

1 file changed

+12
-10
lines changed
  • targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xx/TARGET_NUCLEO_G474RE

1 file changed

+12
-10
lines changed

targets/TARGET_STM/TARGET_STM32G4/TARGET_STM32G474xx/TARGET_NUCLEO_G474RE/system_clock.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
This value must be a multiple of 0x100. */
3838

3939
#define USE_PLL_HSE_EXTC 0x8 // Use external clock (ST Link MCO)
40-
#define USE_PLL_HSE_XTAL 0x4 // Use external xtal (X3 on board - not provided by default)
40+
#define USE_PLL_HSE_XTAL 0x4 // Use external xtal (X3 on board)
4141
#define USE_PLL_HSI 0x2 // Use HSI internal clock
4242

4343
#if ( ((CLOCK_SOURCE) & USE_PLL_HSE_XTAL) || ((CLOCK_SOURCE) & USE_PLL_HSE_EXTC) )
@@ -97,15 +97,15 @@ uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
9797

9898
/** Configure the main internal regulator output voltage
9999
*/
100-
HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1);
100+
HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST);
101101
/** Initializes the CPU, AHB and APB busses clocks
102102
*/
103103
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
104104
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
105105
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
106106
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
107-
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV1;
108-
RCC_OscInitStruct.PLL.PLLN = 16;
107+
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV6;
108+
RCC_OscInitStruct.PLL.PLLN = 85;
109109
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
110110
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
111111
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
@@ -115,12 +115,13 @@ uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
115115
/** Initializes the CPU, AHB and APB busses clocks
116116
*/
117117
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
118-
| RCC_CLOCKTYPE_PCLK1;
118+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
119119
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
120120
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
121121
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
122+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
122123

123-
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
124+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_8) != HAL_OK) {
124125
return 0; // FAIL
125126
}
126127

@@ -147,8 +148,8 @@ uint8_t SetSysClock_PLL_HSI(void)
147148
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
148149
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
149150
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
150-
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV1;
151-
RCC_OscInitStruct.PLL.PLLN = 8;
151+
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV4;
152+
RCC_OscInitStruct.PLL.PLLN = 85;
152153
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
153154
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
154155
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
@@ -158,12 +159,13 @@ uint8_t SetSysClock_PLL_HSI(void)
158159
/** Initializes the CPU, AHB and APB busses clocks
159160
*/
160161
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
161-
| RCC_CLOCKTYPE_PCLK1;
162+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
162163
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
163164
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
164165
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
166+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
165167

166-
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
168+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_8) != HAL_OK) {
167169
return 0; // FAIL
168170
}
169171

0 commit comments

Comments
 (0)