1+ #if defined(ARDUINO_PHOQUE2 )
2+
3+ #include "pins_arduino.h"
4+ #include <stm32g4xx_hal.h>
5+
6+ __weak void SystemClock_Config (void )
7+ {
8+ RCC_OscInitTypeDef RCC_OscInitStruct = {0 };
9+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0 };
10+
11+ /** Configure the main internal regulator output voltage
12+ */
13+ HAL_PWREx_ControlVoltageScaling (PWR_REGULATOR_VOLTAGE_SCALE1_BOOST );
14+
15+ /** Initializes the RCC Oscillators according to the specified parameters
16+ * in the RCC_OscInitTypeDef structure.
17+ */
18+ RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_HSI |RCC_OSCILLATORTYPE_HSI48 |RCC_OSCILLATORTYPE_HSE ;
19+ RCC_OscInitStruct .HSIState = RCC_HSI_ON ;
20+ RCC_OscInitStruct .HSEState = RCC_HSE_ON ;
21+ RCC_OscInitStruct .HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT ;
22+ RCC_OscInitStruct .HSI48State = RCC_HSI48_ON ;
23+ RCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
24+ #if 0
25+ RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSI ;
26+ RCC_OscInitStruct .PLL .PLLM = RCC_PLLM_DIV4 ;
27+ #else
28+ RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSE ;
29+ RCC_OscInitStruct .PLL .PLLM = RCC_PLLM_DIV2 ;
30+ #endif
31+ RCC_OscInitStruct .PLL .PLLN = 85 ;
32+ RCC_OscInitStruct .PLL .PLLP = RCC_PLLP_DIV2 ;
33+ RCC_OscInitStruct .PLL .PLLQ = RCC_PLLQ_DIV2 ;
34+ RCC_OscInitStruct .PLL .PLLR = RCC_PLLR_DIV2 ;
35+ if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
36+ {
37+ Error_Handler ();
38+ }
39+
40+ /** Initializes the CPU, AHB and APB buses clocks
41+ */
42+ RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_HCLK |RCC_CLOCKTYPE_SYSCLK
43+ |RCC_CLOCKTYPE_PCLK1 |RCC_CLOCKTYPE_PCLK2 ;
44+ RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ;
45+ RCC_ClkInitStruct .AHBCLKDivider = RCC_SYSCLK_DIV1 ;
46+ RCC_ClkInitStruct .APB1CLKDivider = RCC_HCLK_DIV1 ;
47+ RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV1 ;
48+
49+ if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_4 ) != HAL_OK )
50+ {
51+ Error_Handler ();
52+ }
53+
54+ #if 1
55+ RCC_PeriphCLKInitTypeDef PeriphClkInit ;
56+ PeriphClkInit .PeriphClockSelection = RCC_PERIPHCLK_FDCAN | RCC_PERIPHCLK_USB | RCC_PERIPHCLK_RNG | RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_I2C1 ;
57+ PeriphClkInit .Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1 ;
58+ PeriphClkInit .FdcanClockSelection = RCC_FDCANCLKSOURCE_PLL ; //CAN will run at 170MHz (PLLQ)
59+ PeriphClkInit .I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1 ; //I2C1 at 170MHz
60+ PeriphClkInit .UsbClockSelection = RCC_USBCLKSOURCE_HSI48 ;
61+ PeriphClkInit .RngClockSelection = RCC_RNGCLKSOURCE_HSI48 ;
62+ if (HAL_RCCEx_PeriphCLKConfig (& PeriphClkInit ) != HAL_OK )
63+ {
64+ Error_Handler ();
65+ }
66+ //__HAL_RCC_RNG_CLK_ENABLE();
67+ #endif
68+ HAL_SYSCFG_EnableVREFBUF ();
69+ }
70+ #endif
0 commit comments