From d507b87178b48d888ed1c94f9334a4c32d02c687 Mon Sep 17 00:00:00 2001 From: imi415 Date: Tue, 1 Feb 2022 20:43:23 +0800 Subject: [PATCH] Re-ordered init functions. --- CMakeLists.txt | 9 +- Core/Inc/main.h | 2 + Core/Inc/stm32h7xx_hal_conf.h | 4 +- Core/Inc/stm32h7xx_it.h | 3 + Core/Src/main.c | 204 ++++++++++++++++---- Core/Src/stm32h7xx_hal_msp.c | 31 +-- Core/Src/stm32h7xx_it.c | 44 ++++- STM32H750VBTx_FLASH.ld | 6 +- STM32H750VB_DAC_CS4344_A1.ioc | 349 ++++++++++++++++++++++------------ 9 files changed, 471 insertions(+), 181 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 332fa4c..1813574 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,8 @@ enable_language(CXX) enable_language(ASM) # Extra CFlags -set(TARGET_CFLAGS_EXTRA "-Og") -set(TARGET_CXXFLAGS_EXTRA "-Og") +set(TARGET_CFLAGS_EXTRA "") +set(TARGET_CXXFLAGS_EXTRA "") set(TARGET_LDFLAGS_EXTRA "-Wl,--print-memory-usage") # Different linker scripts @@ -37,6 +37,7 @@ set(TARGET_C_SOURCES "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c" "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c" "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_qspi.c" + "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_ramecc.c" "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c" "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c" "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rng.c" @@ -104,12 +105,12 @@ set(CMAKE_ASM_FLAGS_DEBUG "-DDEBUG -Og -g") set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -O2 -flto") set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O2 -flto") set(CMAKE_ASM_FLAGS_RELEASE "-DNDEBUG -O2 -flto") -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-flto") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto") # Final compiler flags set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_CFLAGS_HARDWARE} ${TARGET_CXXFLAGS_EXTRA} -Wall -fdata-sections -ffunction-sections") -set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${TARGET_CMAKE_C_FLAGS} -x assembler-with-cpp") +set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS "-specs=nano.specs -Wl,--gc-sections -lc -lm -lnosys ${TARGET_LDFLAGS_EXTRA}") # Include sub directories here diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 7e2178f..0316488 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -57,6 +57,8 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ +#define LED_Pin GPIO_PIN_1 +#define LED_GPIO_Port GPIOA #define LED_SR_44_Pin GPIO_PIN_8 #define LED_SR_44_GPIO_Port GPIOD #define LED_SR_48_Pin GPIO_PIN_9 diff --git a/Core/Inc/stm32h7xx_hal_conf.h b/Core/Inc/stm32h7xx_hal_conf.h index 87b3861..ad6777e 100644 --- a/Core/Inc/stm32h7xx_hal_conf.h +++ b/Core/Inc/stm32h7xx_hal_conf.h @@ -65,7 +65,7 @@ /* #define HAL_LPTIM_MODULE_ENABLED */ /* #define HAL_LTDC_MODULE_ENABLED */ #define HAL_QSPI_MODULE_ENABLED -/* #define HAL_RAMECC_MODULE_ENABLED */ +#define HAL_RAMECC_MODULE_ENABLED /* #define HAL_RNG_MODULE_ENABLED */ /* #define HAL_RTC_MODULE_ENABLED */ #define HAL_SAI_MODULE_ENABLED @@ -207,7 +207,7 @@ #define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */ #define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */ #define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */ -#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */ +#define USE_HAL_SAI_REGISTER_CALLBACKS 1U /* SAI register callback enabled */ #define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */ #define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */ #define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */ diff --git a/Core/Inc/stm32h7xx_it.h b/Core/Inc/stm32h7xx_it.h index d19a4e0..3fa1200 100644 --- a/Core/Inc/stm32h7xx_it.h +++ b/Core/Inc/stm32h7xx_it.h @@ -64,6 +64,9 @@ void FPU_IRQHandler(void); void QUADSPI_IRQHandler(void); void I2C4_EV_IRQHandler(void); void I2C4_ER_IRQHandler(void); +void OTG_FS_EP1_OUT_IRQHandler(void); +void OTG_FS_EP1_IN_IRQHandler(void); +void OTG_FS_IRQHandler(void); void SAI3_IRQHandler(void); void HSEM1_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Src/main.c b/Core/Src/main.c index 5f152a8..09f7b3a 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -46,6 +46,13 @@ I2C_HandleTypeDef hi2c4; QSPI_HandleTypeDef hqspi; +RAMECC_HandleTypeDef hramecc1_m1; +RAMECC_HandleTypeDef hramecc2_m1; +RAMECC_HandleTypeDef hramecc2_m2; +RAMECC_HandleTypeDef hramecc2_m3; +RAMECC_HandleTypeDef hramecc2_m4; +RAMECC_HandleTypeDef hramecc2_m5; + SAI_HandleTypeDef hsai_BlockA3; DMA_HandleTypeDef hdma_sai3_a; @@ -59,12 +66,14 @@ PCD_HandleTypeDef hpcd_USB_OTG_FS; /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); +static void MPU_Config(void); static void MX_GPIO_Init(void); -static void MX_I2C4_Init(void); +static void MX_RAMECC_Init(void); static void MX_QUADSPI_Init(void); -static void MX_SAI3_Init(void); -static void MX_USART1_UART_Init(void); static void MX_DMA_Init(void); +static void MX_USART1_UART_Init(void); +static void MX_SAI3_Init(void); +static void MX_I2C4_Init(void); static void MX_USB_OTG_FS_PCD_Init(void); /* USER CODE BEGIN PFP */ @@ -73,15 +82,18 @@ static void MX_USB_OTG_FS_PCD_Init(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ -uint8_t da_data[1024]; +uint8_t __ALIGNED(4) da_data[1024]; -void HAL_SAI_ErrorCallback(SAI_HandleTypeDef *hsai) { - volatile uint32_t err = HAL_SAI_GetError(hsai); +void sai_error_cb(SAI_HandleTypeDef *hsai) { for(;;) { } } +void sai_cplt_cb(SAI_HandleTypeDef *hsai) { + HAL_GPIO_WritePin(LED_SR_44_GPIO_Port, LED_SR_44_Pin, GPIO_PIN_RESET); +} + /* USER CODE END 0 */ /** @@ -94,6 +106,15 @@ int main(void) /* USER CODE END 1 */ + /* MPU Configuration--------------------------------------------------------*/ + MPU_Config(); + + /* Enable I-Cache---------------------------------------------------------*/ + SCB_EnableICache(); + + /* Enable D-Cache---------------------------------------------------------*/ + SCB_EnableDCache(); + /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ @@ -112,19 +133,26 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); - MX_I2C4_Init(); + MX_RAMECC_Init(); MX_QUADSPI_Init(); - MX_SAI3_Init(); - MX_USART1_UART_Init(); MX_DMA_Init(); + MX_USART1_UART_Init(); + MX_SAI3_Init(); + MX_I2C4_Init(); MX_USB_OTG_FS_PCD_Init(); /* USER CODE BEGIN 2 */ - memset(da_data, 0xA5, sizeof(da_data)); + HAL_GPIO_WritePin(MCU_OSC_SEL_GPIO_Port, MCU_OSC_SEL_Pin, GPIO_PIN_RESET); + + memset(da_data, 0xAA, sizeof(da_data)); + + HAL_SAI_RegisterCallback(&hsai_BlockA3, HAL_SAI_ERROR_CB_ID, sai_error_cb); + HAL_SAI_RegisterCallback(&hsai_BlockA3, HAL_SAI_TX_COMPLETE_CB_ID, sai_cplt_cb); if(HAL_SAI_Transmit_DMA(&hsai_BlockA3, da_data, sizeof(da_data)) != HAL_OK) { for(;;) { - // + HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); + HAL_Delay(100); } } @@ -155,24 +183,22 @@ void SystemClock_Config(void) HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY); /** Configure the main internal regulator output voltage */ - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2); while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {} - /** Macro to configure the PLL clock source - */ - __HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE); /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_DIV1; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - RCC_OscInitStruct.PLL.PLLM = 2; - RCC_OscInitStruct.PLL.PLLN = 48; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 16; + RCC_OscInitStruct.PLL.PLLN = 60; RCC_OscInitStruct.PLL.PLLP = 2; - RCC_OscInitStruct.PLL.PLLQ = 3; + RCC_OscInitStruct.PLL.PLLQ = 10; RCC_OscInitStruct.PLL.PLLR = 25; RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2; RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE; @@ -189,8 +215,8 @@ void SystemClock_Config(void) RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1; - RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV1; + RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2; + RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2; RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2; @@ -198,9 +224,6 @@ void SystemClock_Config(void) { Error_Handler(); } - /** Enables the Clock Security System - */ - HAL_RCC_EnableCSS(); } /** @@ -219,7 +242,7 @@ static void MX_I2C4_Init(void) /* USER CODE END I2C4_Init 1 */ hi2c4.Instance = I2C4; - hi2c4.Init.Timing = 0x20303E5D; + hi2c4.Init.Timing = 0x107075B0; hi2c4.Init.OwnAddress1 = 0; hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; @@ -284,6 +307,69 @@ static void MX_QUADSPI_Init(void) } +/** + * @brief RAMECC Initialization Function + * @param None + * @retval None + */ +static void MX_RAMECC_Init(void) +{ + + /* USER CODE BEGIN RAMECC_Init 0 */ + + /* USER CODE END RAMECC_Init 0 */ + + /* USER CODE BEGIN RAMECC_Init 1 */ + + /* USER CODE END RAMECC_Init 1 */ + /** Initialize RAMECC1 M1 : AXI SRAM + */ + hramecc1_m1.Instance = RAMECC1_Monitor1; + if (HAL_RAMECC_Init(&hramecc1_m1) != HAL_OK) + { + Error_Handler(); + } + /** Initialize RAMECC2 M1 : SRAM1_0 + */ + hramecc2_m1.Instance = RAMECC2_Monitor1; + if (HAL_RAMECC_Init(&hramecc2_m1) != HAL_OK) + { + Error_Handler(); + } + /** Initialize RAMECC2 M2 SRAM1_1 + */ + hramecc2_m2.Instance = RAMECC2_Monitor2; + if (HAL_RAMECC_Init(&hramecc2_m2) != HAL_OK) + { + Error_Handler(); + } + /** Initialize RAMECC2 M3 : SRAM2_0 + */ + hramecc2_m3.Instance = RAMECC2_Monitor3; + if (HAL_RAMECC_Init(&hramecc2_m3) != HAL_OK) + { + Error_Handler(); + } + /** Initialize RAMECC2 M4 : SRAM2_1 + */ + hramecc2_m4.Instance = RAMECC2_Monitor4; + if (HAL_RAMECC_Init(&hramecc2_m4) != HAL_OK) + { + Error_Handler(); + } + /** Initialize RAMECC2 M5 : SRAM3 + */ + hramecc2_m5.Instance = RAMECC2_Monitor5; + if (HAL_RAMECC_Init(&hramecc2_m5) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN RAMECC_Init 2 */ + + /* USER CODE END RAMECC_Init 2 */ + +} + /** * @brief SAI3 Initialization Function * @param None @@ -308,7 +394,7 @@ static void MX_SAI3_Init(void) hsai_BlockA3.Init.Synchro = SAI_ASYNCHRONOUS; hsai_BlockA3.Init.OutputDrive = SAI_OUTPUTDRIVE_ENABLE; hsai_BlockA3.Init.NoDivider = SAI_MASTERDIVIDER_ENABLE; - hsai_BlockA3.Init.FIFOThreshold = SAI_FIFOTHRESHOLD_1QF; + hsai_BlockA3.Init.FIFOThreshold = SAI_FIFOTHRESHOLD_3QF; hsai_BlockA3.Init.AudioFrequency = SAI_AUDIO_FREQUENCY_48K; hsai_BlockA3.Init.SynchroExt = SAI_SYNCEXT_DISABLE; hsai_BlockA3.Init.MonoStereoMode = SAI_STEREOMODE; @@ -449,33 +535,53 @@ static void MX_GPIO_Init(void) __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOD, LED_SR_44_Pin|LED_SR_48_Pin|LED_SR_96_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOC, LED_BIT_16_Pin|LED_BIT_24_Pin|MCU_OSC_SEL_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOD, LED_SR_44_Pin|LED_SR_48_Pin|LED_SR_96_Pin, GPIO_PIN_SET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOC, LED_BIT_16_Pin|LED_BIT_24_Pin, GPIO_PIN_SET); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(MCU_OSC_SEL_GPIO_Port, MCU_OSC_SEL_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(A_AMP_UP_GPIO_Port, A_AMP_UP_Pin, GPIO_PIN_RESET); + /*Configure GPIO pin : LED_Pin */ + GPIO_InitStruct.Pin = LED_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pins : LED_SR_44_Pin LED_SR_48_Pin LED_SR_96_Pin */ GPIO_InitStruct.Pin = LED_SR_44_Pin|LED_SR_48_Pin|LED_SR_96_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - /*Configure GPIO pins : LED_BIT_16_Pin LED_BIT_24_Pin MCU_OSC_SEL_Pin */ - GPIO_InitStruct.Pin = LED_BIT_16_Pin|LED_BIT_24_Pin|MCU_OSC_SEL_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + /*Configure GPIO pins : LED_BIT_16_Pin LED_BIT_24_Pin */ + GPIO_InitStruct.Pin = LED_BIT_16_Pin|LED_BIT_24_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + /*Configure GPIO pin : MCU_OSC_SEL_Pin */ + GPIO_InitStruct.Pin = MCU_OSC_SEL_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(MCU_OSC_SEL_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : PC9 */ GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; @@ -497,6 +603,34 @@ static void MX_GPIO_Init(void) /* USER CODE END 4 */ +/* MPU Configuration */ + +void MPU_Config(void) +{ + MPU_Region_InitTypeDef MPU_InitStruct = {0}; + + /* Disables the MPU */ + HAL_MPU_Disable(); + /** Initializes and configures the Region and the memory to be protected + */ + MPU_InitStruct.Enable = MPU_REGION_ENABLE; + MPU_InitStruct.Number = MPU_REGION_NUMBER0; + MPU_InitStruct.BaseAddress = 0x0; + MPU_InitStruct.Size = MPU_REGION_SIZE_4GB; + MPU_InitStruct.SubRegionDisable = 0x0; + MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; + MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; + MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE; + MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE; + MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE; + MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE; + + HAL_MPU_ConfigRegion(&MPU_InitStruct); + /* Enables the MPU */ + HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT); + +} + /** * @brief This function is executed in case of error occurrence. * @retval None diff --git a/Core/Src/stm32h7xx_hal_msp.c b/Core/Src/stm32h7xx_hal_msp.c index a5ab127..b1991d4 100644 --- a/Core/Src/stm32h7xx_hal_msp.c +++ b/Core/Src/stm32h7xx_hal_msp.c @@ -131,9 +131,9 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) /* Peripheral clock enable */ __HAL_RCC_I2C4_CLK_ENABLE(); /* I2C4 interrupt Init */ - HAL_NVIC_SetPriority(I2C4_EV_IRQn, 1, 0); + HAL_NVIC_SetPriority(I2C4_EV_IRQn, 0, 0); HAL_NVIC_EnableIRQ(I2C4_EV_IRQn); - HAL_NVIC_SetPriority(I2C4_ER_IRQn, 1, 0); + HAL_NVIC_SetPriority(I2C4_ER_IRQn, 0, 0); HAL_NVIC_EnableIRQ(I2C4_ER_IRQn); /* USER CODE BEGIN I2C4_MspInit 1 */ @@ -412,6 +412,13 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) /* Peripheral clock enable */ __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); + /* USB_OTG_FS interrupt Init */ + HAL_NVIC_SetPriority(OTG_FS_EP1_OUT_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_FS_EP1_OUT_IRQn); + HAL_NVIC_SetPriority(OTG_FS_EP1_IN_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_FS_EP1_IN_IRQn); + HAL_NVIC_SetPriority(OTG_FS_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_FS_IRQn); /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */ /* USER CODE END USB_OTG_FS_MspInit 1 */ @@ -441,6 +448,10 @@ void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) */ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12); + /* USB_OTG_FS interrupt DeInit */ + HAL_NVIC_DisableIRQ(OTG_FS_EP1_OUT_IRQn); + HAL_NVIC_DisableIRQ(OTG_FS_EP1_IN_IRQn); + HAL_NVIC_DisableIRQ(OTG_FS_IRQn); /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */ /* USER CODE END USB_OTG_FS_MspDeInit 1 */ @@ -464,15 +475,7 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai) /** Initializes the peripherals clock */ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SAI3; - PeriphClkInitStruct.PLL2.PLL2M = 2; - PeriphClkInitStruct.PLL2.PLL2N = 43; - PeriphClkInitStruct.PLL2.PLL2P = 7; - PeriphClkInitStruct.PLL2.PLL2Q = 2; - PeriphClkInitStruct.PLL2.PLL2R = 2; - PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_2; - PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOMEDIUM; - PeriphClkInitStruct.PLL2.PLL2FRACN = 66; - PeriphClkInitStruct.Sai23ClockSelection = RCC_SAI23CLKSOURCE_PLL2; + PeriphClkInitStruct.Sai23ClockSelection = RCC_SAI23CLKSOURCE_PIN; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); @@ -483,7 +486,7 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai) __HAL_RCC_SAI3_CLK_ENABLE(); /* Peripheral interrupt init*/ - HAL_NVIC_SetPriority(SAI3_IRQn, 14, 0); + HAL_NVIC_SetPriority(SAI3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(SAI3_IRQn); } SAI3_client ++; @@ -510,8 +513,8 @@ void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai) hdma_sai3_a.Init.MemInc = DMA_MINC_ENABLE; hdma_sai3_a.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; hdma_sai3_a.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; - hdma_sai3_a.Init.Mode = DMA_CIRCULAR; - hdma_sai3_a.Init.Priority = DMA_PRIORITY_HIGH; + hdma_sai3_a.Init.Mode = DMA_NORMAL; + hdma_sai3_a.Init.Priority = DMA_PRIORITY_LOW; hdma_sai3_a.Init.FIFOMode = DMA_FIFOMODE_DISABLE; if (HAL_DMA_Init(&hdma_sai3_a) != HAL_OK) { diff --git a/Core/Src/stm32h7xx_it.c b/Core/Src/stm32h7xx_it.c index a11ca92..073eaa1 100644 --- a/Core/Src/stm32h7xx_it.c +++ b/Core/Src/stm32h7xx_it.c @@ -60,6 +60,7 @@ extern QSPI_HandleTypeDef hqspi; extern DMA_HandleTypeDef hdma_sai3_a; extern SAI_HandleTypeDef hsai_BlockA3; extern UART_HandleTypeDef huart1; +extern PCD_HandleTypeDef hpcd_USB_OTG_FS; /* USER CODE BEGIN EV */ /* USER CODE END EV */ @@ -75,7 +76,6 @@ void NMI_Handler(void) /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ - HAL_RCC_NMI_IRQHandler(); /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) { @@ -327,6 +327,48 @@ void I2C4_ER_IRQHandler(void) /* USER CODE END I2C4_ER_IRQn 1 */ } +/** + * @brief This function handles USB On The Go FS End Point 1 Out global interrupt. + */ +void OTG_FS_EP1_OUT_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_FS_EP1_OUT_IRQn 0 */ + + /* USER CODE END OTG_FS_EP1_OUT_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS); + /* USER CODE BEGIN OTG_FS_EP1_OUT_IRQn 1 */ + + /* USER CODE END OTG_FS_EP1_OUT_IRQn 1 */ +} + +/** + * @brief This function handles USB On The Go FS End Point 1 In global interrupt. + */ +void OTG_FS_EP1_IN_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_FS_EP1_IN_IRQn 0 */ + + /* USER CODE END OTG_FS_EP1_IN_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS); + /* USER CODE BEGIN OTG_FS_EP1_IN_IRQn 1 */ + + /* USER CODE END OTG_FS_EP1_IN_IRQn 1 */ +} + +/** + * @brief This function handles USB On The Go FS global interrupt. + */ +void OTG_FS_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_FS_IRQn 0 */ + + /* USER CODE END OTG_FS_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_FS); + /* USER CODE BEGIN OTG_FS_IRQn 1 */ + + /* USER CODE END OTG_FS_IRQn 1 */ +} + /** * @brief This function handles SAI3 global interrupt. */ diff --git a/STM32H750VBTx_FLASH.ld b/STM32H750VBTx_FLASH.ld index 9dc7748..8847adc 100644 --- a/STM32H750VBTx_FLASH.ld +++ b/STM32H750VBTx_FLASH.ld @@ -147,7 +147,7 @@ SECTIONS . = ALIGN(4); _edata = .; /* define a global symbol at data end */ - } >DTCMRAM AT> FLASH + } >RAM_D1 AT> FLASH /* Uninitialized data section */ @@ -164,7 +164,7 @@ SECTIONS . = ALIGN(4); _ebss = .; /* define a global symbol at bss end */ __bss_end__ = _ebss; - } >DTCMRAM + } >RAM_D1 /* User_heap_stack section, used to check that there is enough RAM left */ ._user_heap_stack : @@ -175,7 +175,7 @@ SECTIONS . = . + _Min_Heap_Size; . = . + _Min_Stack_Size; . = ALIGN(8); - } >DTCMRAM + } >RAM_D1 diff --git a/STM32H750VB_DAC_CS4344_A1.ioc b/STM32H750VB_DAC_CS4344_A1.ioc index cab514e..7f1af96 100644 --- a/STM32H750VB_DAC_CS4344_A1.ioc +++ b/STM32H750VB_DAC_CS4344_A1.ioc @@ -1,4 +1,12 @@ #MicroXplorer Configuration settings - do not modify +CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_FULL_ACCESS +CORTEX_M7.CPU_DCache=Enabled +CORTEX_M7.CPU_ICache=Enabled +CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_ENABLE +CORTEX_M7.IPParameters=MPU_Control,Enable-Cortex_Memory_Protection_Unit_Region0_Settings,Size-Cortex_Memory_Protection_Unit_Region0_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings,CPU_ICache,CPU_DCache +CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_SHAREABLE +CORTEX_M7.MPU_Control=MPU_PRIVILEGED_DEFAULT +CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_SIZE_4GB Dma.Request0=SAI3_A Dma.RequestsNb=1 Dma.SAI3_A.0.Direction=DMA_MEMORY_TO_PERIPH @@ -7,11 +15,11 @@ Dma.SAI3_A.0.FIFOMode=DMA_FIFOMODE_DISABLE Dma.SAI3_A.0.Instance=DMA1_Stream0 Dma.SAI3_A.0.MemDataAlignment=DMA_MDATAALIGN_HALFWORD Dma.SAI3_A.0.MemInc=DMA_MINC_ENABLE -Dma.SAI3_A.0.Mode=DMA_CIRCULAR +Dma.SAI3_A.0.Mode=DMA_NORMAL Dma.SAI3_A.0.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD Dma.SAI3_A.0.PeriphInc=DMA_PINC_DISABLE Dma.SAI3_A.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING -Dma.SAI3_A.0.Priority=DMA_PRIORITY_HIGH +Dma.SAI3_A.0.Priority=DMA_PRIORITY_LOW Dma.SAI3_A.0.RequestNumber=1 Dma.SAI3_A.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber Dma.SAI3_A.0.SignalID=NONE @@ -22,55 +30,63 @@ Dma.SAI3_A.0.SyncSignalID=NONE File.Version=6 GPIO.groupedBy=Group By Peripherals I2C4.IPParameters=Timing -I2C4.Timing=0x20303E5D +I2C4.Timing=0x107075B0 KeepUserPlacement=false Mcu.Family=STM32H7 Mcu.IP0=CORTEX_M7 Mcu.IP1=DEBUG -Mcu.IP10=USB_OTG_FS +Mcu.IP10=USART1 +Mcu.IP11=USB_OTG_FS Mcu.IP2=DMA Mcu.IP3=I2C4 Mcu.IP4=NVIC Mcu.IP5=QUADSPI -Mcu.IP6=RCC -Mcu.IP7=SAI3 -Mcu.IP8=SYS -Mcu.IP9=USART1 -Mcu.IPNb=11 +Mcu.IP6=RAMECC +Mcu.IP7=RCC +Mcu.IP8=SAI3 +Mcu.IP9=SYS +Mcu.IPNb=12 Mcu.Name=STM32H750VBTx Mcu.Package=LQFP100 Mcu.Pin0=PE2 Mcu.Pin1=PC14-OSC32_IN (OSC32_IN) -Mcu.Pin10=PD12 -Mcu.Pin11=PD13 -Mcu.Pin12=PD15 -Mcu.Pin13=PC6 -Mcu.Pin14=PC7 -Mcu.Pin15=PC8 -Mcu.Pin16=PC9 -Mcu.Pin17=PA9 -Mcu.Pin18=PA10 -Mcu.Pin19=PA11 +Mcu.Pin10=PD11 +Mcu.Pin11=PD12 +Mcu.Pin12=PD13 +Mcu.Pin13=PD15 +Mcu.Pin14=PC6 +Mcu.Pin15=PC7 +Mcu.Pin16=PC8 +Mcu.Pin17=PC9 +Mcu.Pin18=PA9 +Mcu.Pin19=PA10 Mcu.Pin2=PC15-OSC32_OUT (OSC32_OUT) -Mcu.Pin20=PA12 -Mcu.Pin21=PA13 (JTMS/SWDIO) -Mcu.Pin22=PA14 (JTCK/SWCLK) -Mcu.Pin23=PD0 -Mcu.Pin24=PD1 -Mcu.Pin25=PD4 -Mcu.Pin26=PB4 (NJTRST) -Mcu.Pin27=PB6 -Mcu.Pin28=PB7 -Mcu.Pin29=PB8 +Mcu.Pin20=PA11 +Mcu.Pin21=PA12 +Mcu.Pin22=PA13 (JTMS/SWDIO) +Mcu.Pin23=PA14 (JTCK/SWCLK) +Mcu.Pin24=PD0 +Mcu.Pin25=PD1 +Mcu.Pin26=PD4 +Mcu.Pin27=PB4 (NJTRST) +Mcu.Pin28=PB6 +Mcu.Pin29=PB7 Mcu.Pin3=PH0-OSC_IN (PH0) -Mcu.Pin30=VP_SYS_VS_Systick +Mcu.Pin30=PB8 +Mcu.Pin31=VP_RAMECC_VS_D1_1 +Mcu.Pin32=VP_RAMECC_VS_D2_1 +Mcu.Pin33=VP_RAMECC_VS_D2_2 +Mcu.Pin34=VP_RAMECC_VS_D2_3 +Mcu.Pin35=VP_RAMECC_VS_D2_4 +Mcu.Pin36=VP_RAMECC_VS_D2_5 +Mcu.Pin37=VP_SYS_VS_Systick Mcu.Pin4=PH1-OSC_OUT (PH1) -Mcu.Pin5=PB2 -Mcu.Pin6=PD8 -Mcu.Pin7=PD9 -Mcu.Pin8=PD10 -Mcu.Pin9=PD11 -Mcu.PinsNb=31 +Mcu.Pin5=PA1 +Mcu.Pin6=PB2 +Mcu.Pin7=PD8 +Mcu.Pin8=PD9 +Mcu.Pin9=PD10 +Mcu.PinsNb=38 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32H750VBTx @@ -80,24 +96,34 @@ NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.FLASH_IRQn=true\:0\:0\:false\:false\:true\:true\:true -NVIC.FPU_IRQn=true\:0\:0\:false\:false\:true\:true\:false +NVIC.FPU_IRQn=true\:0\:0\:true\:false\:true\:true\:false NVIC.ForceEnableDMAVector=true -NVIC.HSEM1_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.HSEM1_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false -NVIC.I2C4_ER_IRQn=true\:1\:0\:true\:false\:true\:true\:true -NVIC.I2C4_EV_IRQn=true\:1\:0\:true\:false\:true\:true\:true +NVIC.I2C4_ER_IRQn=true\:0\:0\:true\:false\:true\:true\:true +NVIC.I2C4_EV_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false -NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.OTG_FS_EP1_IN_IRQn=true\:0\:0\:true\:false\:true\:true\:true +NVIC.OTG_FS_EP1_OUT_IRQn=true\:0\:0\:true\:false\:true\:true\:true +NVIC.OTG_FS_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.PVD_AVD_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 -NVIC.QUADSPI_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.QUADSPI_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.RCC_IRQn=true\:0\:0\:false\:false\:true\:true\:false -NVIC.SAI3_IRQn=true\:14\:0\:true\:false\:true\:true\:true +NVIC.SAI3_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true -NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.USART1_IRQn=true\:0\:0\:true\:false\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PA1.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PA1.GPIO_Label=LED +PA1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PA1.GPIO_PuPd=GPIO_NOPULL +PA1.Locked=true +PA1.PinState=GPIO_PIN_SET +PA1.Signal=GPIO_Output PA10.Locked=true PA10.Mode=Asynchronous PA10.Signal=USART1_RX @@ -138,13 +164,19 @@ PC14-OSC32_IN\ (OSC32_IN).Signal=RCC_OSC32_IN PC15-OSC32_OUT\ (OSC32_OUT).Locked=true PC15-OSC32_OUT\ (OSC32_OUT).Mode=LSE-External-Oscillator PC15-OSC32_OUT\ (OSC32_OUT).Signal=RCC_OSC32_OUT -PC6.GPIOParameters=GPIO_Label +PC6.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PC6.GPIO_Label=LED_BIT_16 +PC6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PC6.GPIO_PuPd=GPIO_NOPULL PC6.Locked=true +PC6.PinState=GPIO_PIN_SET PC6.Signal=GPIO_Output -PC7.GPIOParameters=GPIO_Label +PC7.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PC7.GPIO_Label=LED_BIT_24 +PC7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PC7.GPIO_PuPd=GPIO_NOPULL PC7.Locked=true +PC7.PinState=GPIO_PIN_SET PC7.Signal=GPIO_Output PC8.GPIOParameters=GPIO_Label PC8.GPIO_Label=MCU_OSC_SEL @@ -153,15 +185,62 @@ PC8.Signal=GPIO_Output PC9.Locked=true PC9.Mode=Audio_ClockIn PC9.Signal=I2S_CKIN +PCC.Checker=true +PCC.Line=STM32H750 Value line +PCC.MCU=STM32H750VBTx +PCC.PartNumber=STM32H750VBTx +PCC.Seq0=2 +PCC.Seq0.Step0.Average_Current=87 mA +PCC.Seq0.Step0.CPU_Frequency=480 MHz +PCC.Seq0.Step0.Category=In DS Table +PCC.Seq0.Step0.DMIPS=1027.0 +PCC.Seq0.Step0.Duration=0.1 ms +PCC.Seq0.Step0.Frequency=25 MHz +PCC.Seq0.Step0.Memory=FLASH/Cache-OFF +PCC.Seq0.Step0.Mode=RUN +PCC.Seq0.Step0.Oscillator=HSE BYP PLL +PCC.Seq0.Step0.Peripherals= +PCC.Seq0.Step0.SubMode1=DRUN/CRUN +PCC.Seq0.Step0.SubMode2=DRUN +PCC.Seq0.Step0.SubMode3=DRUN +PCC.Seq0.Step0.TaMax=113.26 +PCC.Seq0.Step0.User's_Consumption=0 mA +PCC.Seq0.Step0.Vcore=VOS0\: Scale0-High +PCC.Seq0.Step0.Vdd=3.0 +PCC.Seq0.Step0.Voltage_Source=Battery +PCC.Seq0.Step1.Average_Current=150 \u00B5A +PCC.Seq0.Step1.CPU_Frequency=0 Hz +PCC.Seq0.Step1.Category=In DS Table +PCC.Seq0.Step1.DMIPS=0.0 +PCC.Seq0.Step1.Duration=0.9 ms +PCC.Seq0.Step1.Frequency=0 Hz +PCC.Seq0.Step1.Memory=NA +PCC.Seq0.Step1.Mode=STOP +PCC.Seq0.Step1.Oscillator=Flash-OFF +PCC.Seq0.Step1.Peripherals= +PCC.Seq0.Step1.SubMode1=DSTANDBY +PCC.Seq0.Step1.SubMode2=DSTANDBY +PCC.Seq0.Step1.SubMode3=DSTOP +PCC.Seq0.Step1.TaMax=124.98 +PCC.Seq0.Step1.User's_Consumption=0 mA +PCC.Seq0.Step1.Vcore=SVOS5\: System-Scale5 +PCC.Seq0.Step1.Vdd=3.0 +PCC.Seq0.Step1.Voltage_Source=Battery +PCC.Series=STM32H7 +PCC.Temperature=25 +PCC.Vdd=3.0 PD0.Locked=true PD0.Mode=SAI_A_MasterWithClock PD0.Signal=SAI3_SCK_A PD1.Locked=true PD1.Mode=SAI_A_MasterWithClock PD1.Signal=SAI3_SD_A -PD10.GPIOParameters=GPIO_Label +PD10.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PD10.GPIO_Label=LED_SR_96 +PD10.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PD10.GPIO_PuPd=GPIO_NOPULL PD10.Locked=true +PD10.PinState=GPIO_PIN_SET PD10.Signal=GPIO_Output PD11.Locked=true PD11.Mode=Single Bank 1 @@ -178,13 +257,19 @@ PD15.Signal=SAI3_MCLK_A PD4.Locked=true PD4.Mode=SAI_A_MasterWithClock PD4.Signal=SAI3_FS_A -PD8.GPIOParameters=GPIO_Label +PD8.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PD8.GPIO_Label=LED_SR_44 +PD8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PD8.GPIO_PuPd=GPIO_NOPULL PD8.Locked=true +PD8.PinState=GPIO_PIN_SET PD8.Signal=GPIO_Output -PD9.GPIOParameters=GPIO_Label +PD9.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PD9.GPIO_Label=LED_SR_48 +PD9.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD +PD9.GPIO_PuPd=GPIO_NOPULL PD9.Locked=true +PD9.PinState=GPIO_PIN_SET PD9.Signal=GPIO_Output PE2.Locked=true PE2.Mode=Single Bank 1 @@ -218,106 +303,113 @@ ProjectManager.PreviousToolchain= ProjectManager.ProjectBuild=false ProjectManager.ProjectFileName=STM32H750VB_DAC_CS4344_A1.ioc ProjectManager.ProjectName=STM32H750VB_DAC_CS4344_A1 -ProjectManager.RegisterCallBack= +ProjectManager.RegisterCallBack=SAI ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=Makefile ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_I2C4_Init-I2C4-false-HAL-true,4-MX_QUADSPI_Init-QUADSPI-false-HAL-true,5-MX_SAI3_Init-SAI3-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_DMA_Init-DMA-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true -RCC.ADCFreq_Value=24576032.36607143 -RCC.AHB12Freq_Value=96000000 -RCC.AHB4Freq_Value=96000000 -RCC.APB1Freq_Value=96000000 -RCC.APB2Freq_Value=48000000 -RCC.APB3Freq_Value=96000000 -RCC.APB4Freq_Value=48000000 -RCC.AXIClockFreq_Value=96000000 +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_RAMECC_Init-RAMECC-false-HAL-true,4-MX_QUADSPI_Init-QUADSPI-false-HAL-true,5-MX_DMA_Init-DMA-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_SAI3_Init-SAI3-false-HAL-true,8-MX_I2C4_Init-I2C4-false-HAL-true,9-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +RAMECC.IPParameters=Instance-RAMECC1_Monitor1,Instance-RAMECC2_Monitor1,Instance-RAMECC2_Monitor2,Instance-RAMECC2_Monitor3,Instance-RAMECC2_Monitor4,Instance-RAMECC2_Monitor5 +RAMECC.Instance-RAMECC1_Monitor1=RAMECC1_Monitor1 +RAMECC.Instance-RAMECC2_Monitor1=RAMECC2_Monitor1 +RAMECC.Instance-RAMECC2_Monitor2=RAMECC2_Monitor2 +RAMECC.Instance-RAMECC2_Monitor3=RAMECC2_Monitor3 +RAMECC.Instance-RAMECC2_Monitor4=RAMECC2_Monitor4 +RAMECC.Instance-RAMECC2_Monitor5=RAMECC2_Monitor5 +RCC.ADCFreq_Value=62914568.86574074 +RCC.AHB12Freq_Value=120000000 +RCC.AHB4Freq_Value=120000000 +RCC.APB1Freq_Value=60000000 +RCC.APB2Freq_Value=60000000 +RCC.APB3Freq_Value=60000000 +RCC.APB4Freq_Value=60000000 +RCC.AXIClockFreq_Value=120000000 RCC.CECFreq_Value=32000 RCC.CKPERFreq_Value=64000000 -RCC.CortexFreq_Value=96000000 -RCC.CpuClockFreq_Value=96000000 -RCC.D1CPREFreq_Value=96000000 +RCC.CortexFreq_Value=120000000 +RCC.CpuClockFreq_Value=120000000 +RCC.D1CPREFreq_Value=120000000 +RCC.D1PPRE=RCC_APB3_DIV2 +RCC.D2PPRE1=RCC_APB1_DIV2 RCC.D2PPRE2=RCC_APB2_DIV2 RCC.D3PPRE=RCC_APB4_DIV2 -RCC.DFSDMACLkFreq_Value=64000000 -RCC.DFSDMFreq_Value=48000000 -RCC.DIVM1=2 -RCC.DIVM2=2 -RCC.DIVN1=48 -RCC.DIVN2=43 -RCC.DIVP1Freq_Value=96000000 -RCC.DIVP2=7 -RCC.DIVP2Freq_Value=24576032.36607143 -RCC.DIVP3Freq_Value=16125000 -RCC.DIVQ1=3 -RCC.DIVQ1Freq_Value=64000000 -RCC.DIVQ2Freq_Value=86016113.28125 -RCC.DIVQ3Freq_Value=16125000 +RCC.DFSDMACLkFreq_Value=24000000 +RCC.DFSDMFreq_Value=60000000 +RCC.DIVM1=16 +RCC.DIVM2=6 +RCC.DIVN1=60 +RCC.DIVN2=106 +RCC.DIVP1Freq_Value=120000000 +RCC.DIVP2=18 +RCC.DIVP2Freq_Value=62914568.86574074 +RCC.DIVP3Freq_Value=129000000 +RCC.DIVQ1=10 +RCC.DIVQ1Freq_Value=24000000 +RCC.DIVQ2Freq_Value=566231119.7916666 +RCC.DIVQ3Freq_Value=129000000 RCC.DIVR1=25 -RCC.DIVR1Freq_Value=7680000 -RCC.DIVR2Freq_Value=86016113.28125 -RCC.DIVR3Freq_Value=16125000 +RCC.DIVR1Freq_Value=9600000 +RCC.DIVR2Freq_Value=566231119.7916666 +RCC.DIVR3Freq_Value=129000000 RCC.EXTERNAL_CLOCK_VALUE=24576000 -RCC.EnbaleCSS=true -RCC.FDCANFreq_Value=64000000 -RCC.FMCFreq_Value=96000000 +RCC.FDCANFreq_Value=24000000 +RCC.FMCFreq_Value=120000000 RCC.FamilyName=M -RCC.HCLK3ClockFreq_Value=96000000 -RCC.HCLKFreq_Value=96000000 -RCC.HRTIMFreq_Value=96000000 +RCC.HCLK3ClockFreq_Value=120000000 +RCC.HCLKFreq_Value=120000000 +RCC.HRTIMFreq_Value=120000000 RCC.HSE_VALUE=8000000 -RCC.I2C123Freq_Value=96000000 -RCC.I2C4Freq_Value=48000000 -RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EXTERNAL_CLOCK_VALUE,EnbaleCSS,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,PLLSourceVirtual,PWR_Regulator_Voltage_Scale,ProductRev,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23CLockSelection,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBCLockSelection,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value -RCC.LPTIM1Freq_Value=96000000 -RCC.LPTIM2Freq_Value=48000000 -RCC.LPTIM345Freq_Value=48000000 -RCC.LPUART1Freq_Value=96000000 -RCC.LTDCFreq_Value=16125000 +RCC.I2C123Freq_Value=60000000 +RCC.I2C4Freq_Value=60000000 +RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EXTERNAL_CLOCK_VALUE,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,PWR_Regulator_Voltage_Scale,ProductRev,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23CLockSelection,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBCLockSelection,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value +RCC.LPTIM1Freq_Value=60000000 +RCC.LPTIM2Freq_Value=60000000 +RCC.LPTIM345Freq_Value=60000000 +RCC.LPUART1Freq_Value=60000000 +RCC.LTDCFreq_Value=129000000 RCC.MCO1PinFreq_Value=64000000 -RCC.MCO2PinFreq_Value=96000000 -RCC.PLL2FRACN=66 +RCC.MCO2PinFreq_Value=120000000 +RCC.PLL2FRACN=1379 RCC.PLL3FRACN=0 RCC.PLLFRACN=0 -RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE -RCC.PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE3 +RCC.PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE2 RCC.ProductRev=revV -RCC.QSPIFreq_Value=96000000 +RCC.QSPIFreq_Value=120000000 RCC.RNGFreq_Value=48000000 RCC.RTCFreq_Value=32000 -RCC.SAI1Freq_Value=64000000 -RCC.SAI23CLockSelection=RCC_SAI23CLKSOURCE_PLL2 -RCC.SAI23Freq_Value=24576032.36607143 -RCC.SAI4AFreq_Value=64000000 -RCC.SAI4BFreq_Value=64000000 -RCC.SDMMCFreq_Value=64000000 -RCC.SPDIFRXFreq_Value=64000000 -RCC.SPI123Freq_Value=64000000 -RCC.SPI45Freq_Value=48000000 -RCC.SPI6Freq_Value=48000000 -RCC.SWPMI1Freq_Value=96000000 -RCC.SYSCLKFreq_VALUE=96000000 +RCC.SAI1Freq_Value=24000000 +RCC.SAI23CLockSelection=RCC_SAI23CLKSOURCE_PIN +RCC.SAI23Freq_Value=24576000 +RCC.SAI4AFreq_Value=24000000 +RCC.SAI4BFreq_Value=24000000 +RCC.SDMMCFreq_Value=24000000 +RCC.SPDIFRXFreq_Value=24000000 +RCC.SPI123Freq_Value=24000000 +RCC.SPI45Freq_Value=60000000 +RCC.SPI6Freq_Value=60000000 +RCC.SWPMI1Freq_Value=60000000 +RCC.SYSCLKFreq_VALUE=120000000 RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK -RCC.Tim1OutputFreq_Value=96000000 -RCC.Tim2OutputFreq_Value=96000000 -RCC.TraceFreq_Value=7680000 -RCC.USART16Freq_Value=48000000 -RCC.USART234578Freq_Value=96000000 +RCC.Tim1OutputFreq_Value=120000000 +RCC.Tim2OutputFreq_Value=120000000 +RCC.TraceFreq_Value=9600000 +RCC.USART16Freq_Value=60000000 +RCC.USART234578Freq_Value=60000000 RCC.USBCLockSelection=RCC_USBCLKSOURCE_HSI48 RCC.USBFreq_Value=48000000 -RCC.VCO1OutputFreq_Value=192000000 -RCC.VCO2OutputFreq_Value=172032226.5625 -RCC.VCO3OutputFreq_Value=32250000 +RCC.VCO1OutputFreq_Value=240000000 +RCC.VCO2OutputFreq_Value=1132462239.5833333 +RCC.VCO3OutputFreq_Value=258000000 RCC.VCOInput1Freq_Value=4000000 -RCC.VCOInput2Freq_Value=4000000 -RCC.VCOInput3Freq_Value=250000 +RCC.VCOInput2Freq_Value=10666666.666666666 +RCC.VCOInput3Freq_Value=2000000 SAI3.AudioFrequency-SAI_A_MasterWithClock=SAI_AUDIO_FREQUENCY_48K SAI3.ClockStrobing-SAI_A_MasterWithClock=SAI_CLOCKSTROBING_RISINGEDGE SAI3.DataSize-SAI_A_MasterWithClock=SAI_DATASIZE_16 SAI3.ErrorAudioFreq-SAI_A_MasterWithClock=0.0 % -SAI3.FIFOThreshold-SAI_A_MasterWithClock=SAI_FIFOTHRESHOLD_1QF +SAI3.FIFOThreshold-SAI_A_MasterWithClock=SAI_FIFOTHRESHOLD_3QF SAI3.FrameLength-SAI_A_MasterWithClock=32 -SAI3.IPParameters=Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MClockEnable-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock,AudioFrequency-SAI_A_MasterWithClock,FIFOThreshold-SAI_A_MasterWithClock,OutputDrive-SAI_A_MasterWithClock,NoDivider-SAI_A_MasterWithClock,FrameLength-SAI_A_MasterWithClock,DataSize-SAI_A_MasterWithClock,SlotNumber-SAI_A_MasterWithClock,VirtualSlotActive-SAI_A_MasterWithClock,SlotActive-SAI_A_MasterWithClock,ClockStrobing-SAI_A_MasterWithClock +SAI3.IPParameters=Instance-SAI_A_MasterWithClock,VirtualMode-SAI_A_MasterWithClock,MClockEnable-SAI_A_MasterWithClock,RealAudioFreq-SAI_A_MasterWithClock,ErrorAudioFreq-SAI_A_MasterWithClock,AudioFrequency-SAI_A_MasterWithClock,FIFOThreshold-SAI_A_MasterWithClock,OutputDrive-SAI_A_MasterWithClock,NoDivider-SAI_A_MasterWithClock,FrameLength-SAI_A_MasterWithClock,DataSize-SAI_A_MasterWithClock,TriState-SAI_A_MasterWithClock,SlotNumber-SAI_A_MasterWithClock,VirtualSlotActive-SAI_A_MasterWithClock,SlotActive-SAI_A_MasterWithClock,ClockStrobing-SAI_A_MasterWithClock SAI3.Instance-SAI_A_MasterWithClock=SAI$Index_Block_A SAI3.MClockEnable-SAI_A_MasterWithClock=SAI_MASTERCLOCK_ENABLE SAI3.NoDivider-SAI_A_MasterWithClock=SAI_MASTERDIVIDER_ENABLE @@ -325,12 +417,25 @@ SAI3.OutputDrive-SAI_A_MasterWithClock=SAI_OUTPUTDRIVE_ENABLE SAI3.RealAudioFreq-SAI_A_MasterWithClock=48.0 KHz SAI3.SlotActive-SAI_A_MasterWithClock=0x0000FFFF SAI3.SlotNumber-SAI_A_MasterWithClock=2 +SAI3.TriState-SAI_A_MasterWithClock=SAI_OUTPUT_NOTRELEASED SAI3.VirtualMode-SAI_A_MasterWithClock=VM_MASTER SAI3.VirtualSlotActive-SAI_A_MasterWithClock=SAI_SLOTACTIVE_ALL USART1.IPParameters=VirtualMode-Asynchronous USART1.VirtualMode-Asynchronous=VM_ASYNC USB_OTG_FS.IPParameters=VirtualMode USB_OTG_FS.VirtualMode=Device_Only +VP_RAMECC_VS_D1_1.Mode=RAMECC1_Monitor1 +VP_RAMECC_VS_D1_1.Signal=RAMECC_VS_D1_1 +VP_RAMECC_VS_D2_1.Mode=RAMECC2_Monitor1 +VP_RAMECC_VS_D2_1.Signal=RAMECC_VS_D2_1 +VP_RAMECC_VS_D2_2.Mode=RAMECC2_Monitor2 +VP_RAMECC_VS_D2_2.Signal=RAMECC_VS_D2_2 +VP_RAMECC_VS_D2_3.Mode=RAMECC2_Monitor3 +VP_RAMECC_VS_D2_3.Signal=RAMECC_VS_D2_3 +VP_RAMECC_VS_D2_4.Mode=RAMECC2_Monitor4 +VP_RAMECC_VS_D2_4.Signal=RAMECC_VS_D2_4 +VP_RAMECC_VS_D2_5.Mode=RAMECC2_Monitor5 +VP_RAMECC_VS_D2_5.Signal=RAMECC_VS_D2_5 VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick board=custom