Skip to content

Commit 7965dce

Browse files
authored
Merge pull request #345 from facchinm/portenta_pdm_use_pll3
Portenta: PDM: use PLL3 to clock SAI
2 parents f07a484 + 6822f71 commit 7965dce

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

Diff for: libraries/PDM/src/stm32/audio.c

+18-18
Original file line numberDiff line numberDiff line change
@@ -148,29 +148,29 @@ int py_audio_init(size_t channels, uint32_t frequency, int gain_db, float highpa
148148
if((frequency == AUDIO_FREQUENCY_11K) || (frequency == AUDIO_FREQUENCY_22K) || (frequency == AUDIO_FREQUENCY_44K))
149149
{
150150
/* SAI clock config:
151-
PLL2_VCO Input = HSE_VALUE/PLL2M = 1 Mhz
152-
PLL2_VCO Output = PLL2_VCO Input * PLL2N = 429 Mhz
153-
SAI_CLK_x = PLL2_VCO Output/PLL2P = 429/38 = 11.289 Mhz */
151+
PLL3_VCO Input = HSE_VALUE/PLL3M = 1 Mhz
152+
PLL3_VCO Output = PLL3_VCO Input * PLL3N = 429 Mhz
153+
SAI_CLK_x = PLL3_VCO Output/PLL3P = 429/38 = 11.289 Mhz */
154154
rcc_ex_clk_init_struct.PeriphClockSelection = RCC_PERIPHCLK_SAI4A;
155-
rcc_ex_clk_init_struct.Sai4AClockSelection = RCC_SAI4ACLKSOURCE_PLL2;
156-
rcc_ex_clk_init_struct.PLL2.PLL2P = 38;
157-
rcc_ex_clk_init_struct.PLL2.PLL2Q = 1;
158-
rcc_ex_clk_init_struct.PLL2.PLL2R = 1;
159-
rcc_ex_clk_init_struct.PLL2.PLL2N = 429;
160-
rcc_ex_clk_init_struct.PLL2.PLL2M = isBoardRev2() ? 25 : 27;
155+
rcc_ex_clk_init_struct.Sai4AClockSelection = RCC_SAI4ACLKSOURCE_PLL3;
156+
rcc_ex_clk_init_struct.PLL3.PLL3P = 38;
157+
rcc_ex_clk_init_struct.PLL3.PLL3Q = 1;
158+
rcc_ex_clk_init_struct.PLL3.PLL3R = 1;
159+
rcc_ex_clk_init_struct.PLL3.PLL3N = 429;
160+
rcc_ex_clk_init_struct.PLL3.PLL3M = isBoardRev2() ? 25 : 27;
161161

162162
} else {
163163
/* SAI clock config:
164-
PLL2_VCO Input = HSE_VALUE/PLL2M = 1 Mhz
165-
PLL2_VCO Output = PLL2_VCO Input * PLL2N = 344 Mhz
166-
sai_x_ker_ck = PLL2_VCO Output/PLL2P = 344/7 = 49.142 Mhz */
164+
PLL3_VCO Input = HSE_VALUE/PLL3M = 1 Mhz
165+
PLL3_VCO Output = PLL3_VCO Input * PLL3N = 344 Mhz
166+
sai_x_ker_ck = PLL3_VCO Output/PLL3P = 344/7 = 49.142 Mhz */
167167
rcc_ex_clk_init_struct.PeriphClockSelection = RCC_PERIPHCLK_SAI4A;
168-
rcc_ex_clk_init_struct.Sai4AClockSelection = RCC_SAI4ACLKSOURCE_PLL2;
169-
rcc_ex_clk_init_struct.PLL2.PLL2P = 7;
170-
rcc_ex_clk_init_struct.PLL2.PLL2Q = 1;
171-
rcc_ex_clk_init_struct.PLL2.PLL2R = 1;
172-
rcc_ex_clk_init_struct.PLL2.PLL2N = 344;
173-
rcc_ex_clk_init_struct.PLL2.PLL2M = isBoardRev2() ? 25 : 27;
168+
rcc_ex_clk_init_struct.Sai4AClockSelection = RCC_SAI4ACLKSOURCE_PLL3;
169+
rcc_ex_clk_init_struct.PLL3.PLL3P = 7;
170+
rcc_ex_clk_init_struct.PLL3.PLL3Q = 1;
171+
rcc_ex_clk_init_struct.PLL3.PLL3R = 2;
172+
rcc_ex_clk_init_struct.PLL3.PLL3N = 344;
173+
rcc_ex_clk_init_struct.PLL3.PLL3M = isBoardRev2() ? 25 : 27;
174174
}
175175

176176
HAL_RCCEx_PeriphCLKConfig(&rcc_ex_clk_init_struct);

0 commit comments

Comments
 (0)