Skip to content

Commit cb22301

Browse files
authored
Merge pull request #2898 from hathach/update-h5-bsp
correct clock setting for h563 nucleo
2 parents ed4b1a9 + 6cc2c98 commit cb22301

File tree

8 files changed

+60
-46
lines changed

8 files changed

+60
-46
lines changed

.idea/cmake.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/stlink.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

hw/bsp/stm32h5/boards/stm32h503nucleo/board.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ set(JLINK_DEVICE stm32h503rb)
44
function(update_board TARGET)
55
target_compile_definitions(${TARGET} PUBLIC
66
STM32H503xx
7+
HSE_VALUE=24000000
78
)
89
endfunction()
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
MCU_VARIANT = stm32h503xx
22

33
CFLAGS += \
4-
-DSTM32H503xx
4+
-DSTM32H503xx \
5+
-DHSE_VALUE=24000000 \
56

67
# For flash-jlink target
78
JLINK_DEVICE = stm32h503rb

hw/bsp/stm32h5/boards/stm32h563nucleo/board.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ set(JLINK_DEVICE stm32h563zi)
44
function(update_board TARGET)
55
target_compile_definitions(${TARGET} PUBLIC
66
STM32H563xx
7+
HSE_VALUE=8000000
78
)
89
endfunction()

hw/bsp/stm32h5/boards/stm32h563nucleo/board.h

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,8 @@ static inline void SystemClock_Config(void) {
6767
/** Initializes the RCC Oscillators according to the specified parameters
6868
* in the RCC_OscInitTypeDef structure.
6969
*/
70-
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE;
71-
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DIGITAL;
72-
RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
70+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
71+
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
7372
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
7473
RCC_OscInitStruct.PLL.PLLSource = RCC_PLL1_SOURCE_HSE;
7574
RCC_OscInitStruct.PLL.PLLM = 4;
@@ -88,8 +87,8 @@ static inline void SystemClock_Config(void) {
8887
/** Initializes the CPU, AHB and APB buses clocks
8988
*/
9089
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
91-
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
92-
|RCC_CLOCKTYPE_PCLK3;
90+
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
91+
|RCC_CLOCKTYPE_PCLK3;
9392
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
9493
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
9594
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
@@ -101,25 +100,27 @@ static inline void SystemClock_Config(void) {
101100
Error_Handler();
102101
}
103102

104-
// Configure CRS clock source
105-
__HAL_RCC_CRS_CLK_ENABLE();
106-
RCC_CRSInitTypeDef RCC_CRSInitStruct = {0};
107-
RCC_CRSInitStruct.Prescaler = RCC_CRS_SYNC_DIV1;
108-
RCC_CRSInitStruct.Source = RCC_CRS_SYNC_SOURCE_USB;
109-
RCC_CRSInitStruct.Polarity = RCC_CRS_SYNC_POLARITY_RISING;
110-
RCC_CRSInitStruct.ReloadValue = __HAL_RCC_CRS_RELOADVALUE_CALCULATE(48000000, 1000);
111-
RCC_CRSInitStruct.ErrorLimitValue = 34;
112-
RCC_CRSInitStruct.HSI48CalibrationValue = 32;
113-
HAL_RCCEx_CRSConfig(&RCC_CRSInitStruct);
114-
115-
/* Select HSI48 as USB clock source */
116-
RCC_PeriphCLKInitTypeDef usb_clk = {0 };
117-
usb_clk.PeriphClockSelection = RCC_PERIPHCLK_USB;
118-
usb_clk.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
119-
HAL_RCCEx_PeriphCLKConfig(&usb_clk);
120-
121-
/* Peripheral clock enable */
122-
__HAL_RCC_USB_CLK_ENABLE();
103+
/** Configure the programming delay
104+
*/
105+
__HAL_FLASH_SET_PROGRAM_DELAY(FLASH_PROGRAMMING_DELAY_2);
106+
107+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
108+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
109+
PeriphClkInitStruct.PLL3.PLL3Source = RCC_PLL3_SOURCE_HSE;
110+
PeriphClkInitStruct.PLL3.PLL3M = 1;
111+
PeriphClkInitStruct.PLL3.PLL3N = 18;
112+
PeriphClkInitStruct.PLL3.PLL3P = 2;
113+
PeriphClkInitStruct.PLL3.PLL3Q = 3;
114+
PeriphClkInitStruct.PLL3.PLL3R = 2;
115+
PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3_VCIRANGE_1;
116+
PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3_VCORANGE_WIDE;
117+
PeriphClkInitStruct.PLL3.PLL3FRACN = 0.0;
118+
PeriphClkInitStruct.PLL3.PLL3ClockOut = RCC_PLL3_DIVQ;
119+
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL3Q;
120+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
121+
{
122+
Error_Handler();
123+
}
123124
}
124125

125126
#ifdef __cplusplus
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
MCU_VARIANT = stm32h563xx
22

33
CFLAGS += \
4-
-DSTM32H563xx
4+
-DSTM32H563xx \
5+
-DHSE_VALUE=8000000 \
56

67
# For flash-jlink target
78
JLINK_DEVICE = stm32h563zi

hw/bsp/stm32h5/boards/stm32h563nucleo/cubemx/stm32h563nucleo.ioc

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
BOOTPATH.BootPathName=LEGACY
33
BOOTPATH.IPParameters=BootPathName
44
BOOTPATH.UserSelectedBootPath=LEGACY
5+
BSP_IP_NAME=NUCLEO-H563ZI
56
CAD.formats=
67
CAD.pinconfig=
78
CAD.provider=
@@ -16,6 +17,7 @@ Mcu.ContextProject=TrustZoneDisabled
1617
Mcu.Family=STM32H5
1718
Mcu.IP0=BOOTPATH
1819
Mcu.IP1=CORTEX_M33_NS
20+
Mcu.IP10=NUCLEO-H563ZI
1921
Mcu.IP2=DEBUG
2022
Mcu.IP3=ICACHE
2123
Mcu.IP4=MEMORYMAP
@@ -24,7 +26,7 @@ Mcu.IP6=PWR
2426
Mcu.IP7=RCC
2527
Mcu.IP8=SYS
2628
Mcu.IP9=USB
27-
Mcu.IPNb=10
29+
Mcu.IPNb=11
2830
Mcu.Name=STM32H563ZITx
2931
Mcu.Package=LQFP144
3032
Mcu.Pin0=PE2
@@ -74,8 +76,8 @@ Mcu.PinsNb=43
7476
Mcu.ThirdPartyNb=0
7577
Mcu.UserConstants=
7678
Mcu.UserName=STM32H563ZITx
77-
MxCube.Version=6.10.0
78-
MxDb.Version=DB.6.0.100
79+
MxCube.Version=6.12.1
80+
MxDb.Version=DB.6.0.121
7981
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
8082
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
8183
NVIC.EXTI13_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
@@ -267,7 +269,7 @@ ProjectManager.CustomerFirmwarePackage=
267269
ProjectManager.DefaultFWLocation=true
268270
ProjectManager.DeletePrevious=true
269271
ProjectManager.DeviceId=STM32H563ZITx
270-
ProjectManager.FirmwarePackage=STM32Cube FW_H5 V1.1.1
272+
ProjectManager.FirmwarePackage=STM32Cube FW_H5 V1.3.0
271273
ProjectManager.FreePins=false
272274
ProjectManager.HalAssertFull=false
273275
ProjectManager.HeapSize=0x200
@@ -317,7 +319,7 @@ RCC.I2C2Freq_Value=250000000
317319
RCC.I2C3Freq_Value=250000000
318320
RCC.I2C4Freq_Value=250000000
319321
RCC.I3C1Freq_Value=250000000
320-
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,CECFreq_Value,CKPERFreq_Value,CRSFreq_Value,CSI_VALUE,CortexFreq_Value,DACFreq_Value,EPOD_VALUE,ETHFreq_Value,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSIDiv,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I3C1Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPTIM4Freq_Value,LPTIM5Freq_Value,LPTIM6Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSIRC_VALUE,MCO1PinFreq_Value,MCO2PinFreq_Value,OCTOSPIMFreq_Value,PLL2PoutputFreq_Value,PLL2QoutputFreq_Value,PLL2RoutputFreq_Value,PLL3PoutputFreq_Value,PLL3QoutputFreq_Value,PLL3RoutputFreq_Value,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMC1Freq_Value,SDMMC2Freq_Value,SPI1Freq_Value,SPI2Freq_Value,SPI3Freq_Value,SPI4Freq_Value,SPI5Freq_Value,SPI6Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART12Freq_Value,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,UART9Freq_Value,UCPD1outputFreq_Value,USART10Freq_Value,USART11Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOPLL2OutputFreq_Value,VCOPLL3OutputFreq_Value
322+
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,CECFreq_Value,CKPERFreq_Value,CRSFreq_Value,CSI_VALUE,CortexFreq_Value,DACFreq_Value,EPOD_VALUE,ETHFreq_Value,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSIDiv,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I3C1Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPTIM4Freq_Value,LPTIM5Freq_Value,LPTIM6Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSIRC_VALUE,MCO1PinFreq_Value,MCO2PinFreq_Value,OCTOSPIMFreq_Value,PLL2PoutputFreq_Value,PLL2QoutputFreq_Value,PLL2RoutputFreq_Value,PLL2Source,PLL3FRACN,PLL3N,PLL3PoutputFreq_Value,PLL3Q,PLL3QoutputFreq_Value,PLL3RoutputFreq_Value,PLL3Source,PLLFRACN,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMC1Freq_Value,SDMMC2Freq_Value,SPI1Freq_Value,SPI2Freq_Value,SPI3Freq_Value,SPI4Freq_Value,SPI5Freq_Value,SPI6Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART12Freq_Value,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,UART9Freq_Value,UCPD1outputFreq_Value,USART10Freq_Value,USART11Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBCLockSelection,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOPLL2OutputFreq_Value,VCOPLL3OutputFreq_Value
321323
RCC.LPTIM1Freq_Value=250000000
322324
RCC.LPTIM2Freq_Value=250000000
323325
RCC.LPTIM3Freq_Value=250000000
@@ -330,21 +332,27 @@ RCC.LSIRC_VALUE=32000
330332
RCC.MCO1PinFreq_Value=64000000
331333
RCC.MCO2PinFreq_Value=250000000
332334
RCC.OCTOSPIMFreq_Value=250000000
333-
RCC.PLL2PoutputFreq_Value=258000000
334-
RCC.PLL2QoutputFreq_Value=258000000
335-
RCC.PLL2RoutputFreq_Value=258000000
336-
RCC.PLL3PoutputFreq_Value=258000000
337-
RCC.PLL3QoutputFreq_Value=258000000
338-
RCC.PLL3RoutputFreq_Value=258000000
335+
RCC.PLL2PoutputFreq_Value=516000000
336+
RCC.PLL2QoutputFreq_Value=516000000
337+
RCC.PLL2RoutputFreq_Value=516000000
338+
RCC.PLL2Source=RCC_PLL2_SOURCE_HSE
339+
RCC.PLL3FRACN=0
340+
RCC.PLL3N=18
341+
RCC.PLL3PoutputFreq_Value=72000000
342+
RCC.PLL3Q=3
343+
RCC.PLL3QoutputFreq_Value=48000000
344+
RCC.PLL3RoutputFreq_Value=72000000
345+
RCC.PLL3Source=RCC_PLL3_SOURCE_HSE
346+
RCC.PLLFRACN=0
339347
RCC.PLLM=4
340348
RCC.PLLN=250
341349
RCC.PLLPoutputFreq_Value=250000000
342350
RCC.PLLQoutputFreq_Value=250000000
343351
RCC.PLLSourceVirtual=RCC_PLL1_SOURCE_HSE
344352
RCC.PWRFreq_Value=250000000
345353
RCC.RNGFreq_Value=48000000
346-
RCC.SAI1Freq_Value=258000000
347-
RCC.SAI2Freq_Value=258000000
354+
RCC.SAI1Freq_Value=516000000
355+
RCC.SAI2Freq_Value=516000000
348356
RCC.SDMMC1Freq_Value=250000000
349357
RCC.SDMMC2Freq_Value=250000000
350358
RCC.SPI1Freq_Value=250000000
@@ -368,13 +376,14 @@ RCC.USART1Freq_Value=250000000
368376
RCC.USART2Freq_Value=250000000
369377
RCC.USART3Freq_Value=250000000
370378
RCC.USART6Freq_Value=250000000
379+
RCC.USBCLockSelection=RCC_USBCLKSOURCE_PLL3Q
371380
RCC.USBFreq_Value=48000000
372-
RCC.VCOInput2Freq_Value=4000000
373-
RCC.VCOInput3Freq_Value=4000000
381+
RCC.VCOInput2Freq_Value=8000000
382+
RCC.VCOInput3Freq_Value=8000000
374383
RCC.VCOInputFreq_Value=2000000
375384
RCC.VCOOutputFreq_Value=500000000
376-
RCC.VCOPLL2OutputFreq_Value=516000000
377-
RCC.VCOPLL3OutputFreq_Value=516000000
385+
RCC.VCOPLL2OutputFreq_Value=1032000000
386+
RCC.VCOPLL3OutputFreq_Value=144000000
378387
SH.ADCx_INP18.0=ADC1_INP18
379388
SH.ADCx_INP18.ConfNb=1
380389
SH.GPXTI13.0=GPIO_EXTI13

0 commit comments

Comments
 (0)