Skip to content

Commit 12fce5b

Browse files
committed
Make HSI the generic clock for STM32F413Z
Replace HSE by HSI as the generic clock for the STM32F413Z series
1 parent db95bcb commit 12fce5b

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

variants/STM32F4xx/F413Z(G-H)(J-T)_F423ZH(J-T)/generic_clock.c

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
*******************************************************************************
3-
* Copyright (c) 2020-2021, STMicroelectronics
3+
* Copyright (c) 2020-2022, STMicroelectronics
44
* All rights reserved.
55
*
66
* This software component is licensed by ST under BSD 3-Clause license,
@@ -30,42 +30,53 @@ WEAK void SystemClock_Config(void)
3030
*/
3131
__HAL_RCC_PWR_CLK_ENABLE();
3232
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
33+
3334
/** Initializes the RCC Oscillators according to the specified parameters
3435
* in the RCC_OscInitTypeDef structure.
3536
*/
36-
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
37-
RCC_OscInitStruct.HSEState = RCC_HSE_OFF;
37+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
38+
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
39+
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
3840
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
39-
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
41+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
4042
RCC_OscInitStruct.PLL.PLLM = 8;
4143
RCC_OscInitStruct.PLL.PLLN = 100;
4244
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
4345
RCC_OscInitStruct.PLL.PLLQ = 4;
4446
RCC_OscInitStruct.PLL.PLLR = 2;
45-
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
47+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
48+
{
4649
Error_Handler();
4750
}
51+
4852
/** Initializes the CPU, AHB and APB buses clocks
4953
*/
50-
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
51-
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
54+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
55+
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
5256
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
5357
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
5458
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
5559
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
5660

57-
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) {
61+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
62+
{
5863
Error_Handler();
5964
}
60-
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SDIO | RCC_PERIPHCLK_CLK48;
61-
PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
62-
PeriphClkInitStruct.PLLI2S.PLLI2SM = 16;
65+
66+
/** Initializes the peripherals clock
67+
*/
68+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S|RCC_PERIPHCLK_CLK48
69+
|RCC_PERIPHCLK_SDIO|RCC_PERIPHCLK_I2S_APB2;
70+
PeriphClkInitStruct.PLLI2S.PLLI2SN = 72;
71+
PeriphClkInitStruct.PLLI2S.PLLI2SM = 8;
6372
PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
64-
PeriphClkInitStruct.PLLI2S.PLLI2SQ = 4;
73+
PeriphClkInitStruct.PLLI2S.PLLI2SQ = 3;
6574
PeriphClkInitStruct.Clk48ClockSelection = RCC_CLK48CLKSOURCE_PLLI2SQ;
6675
PeriphClkInitStruct.SdioClockSelection = RCC_SDIOCLKSOURCE_CLK48;
76+
PeriphClkInitStruct.I2sApb2ClockSelection = RCC_I2SAPB2CLKSOURCE_PLLI2S;
6777
PeriphClkInitStruct.PLLI2SSelection = RCC_PLLI2SCLKSOURCE_PLLSRC;
68-
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
78+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
79+
{
6980
Error_Handler();
7081
}
7182
}

0 commit comments

Comments
 (0)