Skip to content

Commit c29eaf0

Browse files
committed
bsp/nucleo-f7xx: Add configuration for I2S
Settings for PLLI2S that can be used for audio. I2S clock is suitable for 48 kHz sample rate. Code also enables I2S in ST HAL config by defining HAL_I2S_MODULE_ENABLE Signed-off-by: Jerzy Kasenberg <[email protected]>
1 parent 39ef94e commit c29eaf0

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

hw/bsp/nucleo-f746zg/include/bsp/stm32f7xx_hal_conf.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
#define HAL_NOR_MODULE_ENABLED
6666
#define HAL_SDRAM_MODULE_ENABLED
6767
#define HAL_HASH_MODULE_ENABLED
68-
#define HAL_I2S_MODULE_ENABLED
6968
#define HAL_IRDA_MODULE_ENABLED
7069
#define HAL_SMARTCARD_MODULE_ENABLED
7170
#define HAL_DFSDM_MODULE_ENABLED
@@ -87,6 +86,7 @@
8786
#define HAL_SRAM_MODULE_ENABLED
8887
#define HAL_GPIO_MODULE_ENABLED
8988
#define HAL_I2C_MODULE_ENABLED
89+
#define HAL_I2S_MODULE_ENABLED
9090
#define HAL_IWDG_MODULE_ENABLED
9191
#define HAL_LPTIM_MODULE_ENABLED
9292
#define HAL_PWR_MODULE_ENABLED

hw/bsp/nucleo-f746zg/syscfg.yml

+11
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,21 @@ syscfg.vals:
3737
STM32_CLOCK_HSI: 0
3838
STM32_CLOCK_HSE: 1
3939
STM32_CLOCK_HSE_BYPASS: 1
40+
# Input clock for all PLLs 8MHz / 8 = 1 MHz
4041
STM32_CLOCK_PLL_PLLM: 8
42+
# VCO = 1MHz * 432 = 432 MHz
4143
STM32_CLOCK_PLL_PLLN: 432
44+
# PLLP - PLLCLK = VCO / 2 = 216
4245
STM32_CLOCK_PLL_PLLP: 2
46+
# PLLQ - PLL48CLK = VCO / 9 = 48
4347
STM32_CLOCK_PLL_PLLQ: 9
48+
STM32_CLOCK_PLLI2S_PLLN: 384
49+
# PLLI2SP - SPDIFRX = 48 MHz
50+
STM32_CLOCK_PLLI2S_PLLP: 8
51+
# PLLI2SQ - SAICLK = 192 MHz
52+
STM32_CLOCK_PLLI2S_PLLQ: 2
53+
# PLLI2SR - I2SCLK = 192 MHz
54+
STM32_CLOCK_PLLI2S_PLLR: 2
4455
STM32_CLOCK_ENABLE_OVERDRIVE: 0
4556
STM32_CLOCK_AHB_DIVIDER: 'RCC_SYSCLK_DIV1'
4657
STM32_CLOCK_APB1_DIVIDER: 'RCC_HCLK_DIV4'

hw/bsp/nucleo-f767zi/include/bsp/stm32f7xx_hal_conf.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
#define HAL_NOR_MODULE_ENABLED
6666
#define HAL_SDRAM_MODULE_ENABLED
6767
#define HAL_HASH_MODULE_ENABLED
68-
#define HAL_I2S_MODULE_ENABLED
6968
#define HAL_DFSDM_MODULE_ENABLED
7069
#define HAL_DSI_MODULE_ENABLED
7170
#define HAL_JPEG_MODULE_ENABLED
@@ -85,6 +84,7 @@
8584
#define HAL_SRAM_MODULE_ENABLED
8685
#define HAL_GPIO_MODULE_ENABLED
8786
#define HAL_I2C_MODULE_ENABLED
87+
#define HAL_I2S_MODULE_ENABLED
8888
#define HAL_IWDG_MODULE_ENABLED
8989
#define HAL_LPTIM_MODULE_ENABLED
9090
#define HAL_PWR_MODULE_ENABLED

hw/bsp/nucleo-f767zi/syscfg.yml

+12
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,23 @@ syscfg.vals:
3737
STM32_CLOCK_HSI: 0
3838
STM32_CLOCK_HSE: 1
3939
STM32_CLOCK_HSE_BYPASS: 1
40+
# Input clock for all PLLs 8MHz / 8 = 1 MHz
4041
STM32_CLOCK_PLL_PLLM: 8
42+
# VCO = 1MHz * 432 = 432 MHz
4143
STM32_CLOCK_PLL_PLLN: 432
44+
# PLLP - PLLCLK = VCO / 2 = 216
4245
STM32_CLOCK_PLL_PLLP: 2
46+
# PLLQ - PLL48CLK = VCO / 9 = 48
4347
STM32_CLOCK_PLL_PLLQ: 9
48+
# PLLR - PLLDSICLK = VCO / 7 = 30.85 MHz
4449
STM32_CLOCK_PLL_PLLR: 7
50+
STM32_CLOCK_PLLI2S_PLLN: 384
51+
# PLLI2SP - SPDIFRX = 48 MHz
52+
STM32_CLOCK_PLLI2S_PLLP: 8
53+
# PLLI2SQ - SAICLK = 192 MHz
54+
STM32_CLOCK_PLLI2S_PLLQ: 2
55+
# PLLI2SR - I2SCLK = 192 MHz
56+
STM32_CLOCK_PLLI2S_PLLR: 2
4557
STM32_CLOCK_ENABLE_OVERDRIVE: 0
4658
STM32_CLOCK_AHB_DIVIDER: 'RCC_SYSCLK_DIV1'
4759
STM32_CLOCK_APB1_DIVIDER: 'RCC_HCLK_DIV4'

0 commit comments

Comments
 (0)