26
26
*
27
27
* This file configures the system clock as follows:
28
28
*=============================================================================
29
- * System clock source | 1- PLL_HSE_EXTC | 3- PLL_HSI
30
- * | (external 8 MHz clock) | (internal 16 MHz)
31
- * | 2- PLL_HSE_XTAL | or PLL_MSI
32
- * | (external 8 MHz xtal) | (internal 4 MHz)
33
- *-----------------------------------------------------------------------------
34
- * SYSCLK(MHz) | 48 | 80
35
- *-----------------------------------------------------------------------------
36
- * AHBCLK (MHz) | 48 | 80
37
- *-----------------------------------------------------------------------------
38
- * APB1CLK (MHz) | 48 | 80
39
- *-----------------------------------------------------------------------------
40
- * APB2CLK (MHz) | 48 | 80
41
- *-----------------------------------------------------------------------------
42
- * USB capable (48 MHz precise clock) | YES | NO
43
- *-----------------------------------------------------------------------------
29
+ * System clock source | PLL_HSE | PLL_HSI | PLL_MSI
30
+ * | (external 4 to 48 MHz xtal) | (internal 16 MHz) | (internal 100kHz to 48 MHz)
31
+ *---------------------------------------------------------------------------------------------
32
+ * SYSCLK(MHz) | 48 | 80 | 80
33
+ *---------------------------------------------------------------------------------------------
34
+ * AHBCLK (MHz) | 48 | 80 | 80
35
+ *---------------------------------------------------------------------------------------------
36
+ * APB1CLK (MHz) | 48 | 80 | 80
37
+ *---------------------------------------------------------------------------------------------
38
+ * APB2CLK (MHz) | 48 | 80 | 80
39
+ *---------------------------------------------------------------------------------------------
40
+ * USB capable (48 MHz precise clock) | YES | NO | YES
41
+ *---------------------------------------------------------------------------------------------
44
42
*=============================================================================
45
43
******************************************************************************
46
44
* @attention
@@ -547,15 +545,15 @@ uint8_t SetSysClock_PLL_MSI(void)
547
545
RCC_OscInitStruct .HSEState = RCC_HSE_OFF ;
548
546
RCC_OscInitStruct .HSIState = RCC_HSI_OFF ;
549
547
550
- RCC_OscInitStruct .MSIClockRange = RCC_MSIRANGE_6 ;
551
- RCC_OscInitStruct .MSIClockRange = RCC_MSIRANGE_11 ;
548
+ RCC_OscInitStruct .MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT ;
549
+ RCC_OscInitStruct .MSIClockRange = RCC_MSIRANGE_11 ; /* 48 MHz */
552
550
RCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
553
551
RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_MSI ;
554
- RCC_OscInitStruct .PLL .PLLM = 6 ;
555
- RCC_OscInitStruct .PLL .PLLN = 40 ;
556
- RCC_OscInitStruct .PLL .PLLP = 7 ;
557
- RCC_OscInitStruct .PLL .PLLQ = 4 ;
558
- RCC_OscInitStruct .PLL .PLLR = 4 ;
552
+ RCC_OscInitStruct .PLL .PLLM = 6 ; /* 8 MHz */
553
+ RCC_OscInitStruct .PLL .PLLN = 40 ; /* 320 MHz */
554
+ RCC_OscInitStruct .PLL .PLLP = 7 ; /* 45 MHz */
555
+ RCC_OscInitStruct .PLL .PLLQ = 4 ; /* 80 MHz */
556
+ RCC_OscInitStruct .PLL .PLLR = 4 ; /* 80 MHz */
559
557
if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
560
558
{
561
559
return 0 ; // FAIL
@@ -564,14 +562,14 @@ uint8_t SetSysClock_PLL_MSI(void)
564
562
HAL_RCCEx_EnableMSIPLLMode ();
565
563
/* Select MSI output as USB clock source */
566
564
PeriphClkInitStruct .PeriphClockSelection = RCC_PERIPHCLK_USB ;
567
- PeriphClkInitStruct .UsbClockSelection = RCC_USBCLKSOURCE_MSI ;
565
+ PeriphClkInitStruct .UsbClockSelection = RCC_USBCLKSOURCE_MSI ; /* 48 MHz */
568
566
HAL_RCCEx_PeriphCLKConfig (& PeriphClkInitStruct );
569
567
// Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers
570
568
RCC_ClkInitStruct .ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2 );
571
- RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ;
572
- RCC_ClkInitStruct .AHBCLKDivider = RCC_SYSCLK_DIV1 ;
573
- RCC_ClkInitStruct .APB1CLKDivider = RCC_HCLK_DIV1 ;
574
- RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV2 ;
569
+ RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ; /* 80 MHz */
570
+ RCC_ClkInitStruct .AHBCLKDivider = RCC_SYSCLK_DIV1 ; /* 80 MHz */
571
+ RCC_ClkInitStruct .APB1CLKDivider = RCC_HCLK_DIV1 ; /* 80 MHz */
572
+ RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV2 ; /* 40 MHz */
575
573
if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_4 ) != HAL_OK )
576
574
{
577
575
return 0 ; // FAIL
0 commit comments