@@ -144,33 +144,47 @@ void ifx_set_samplerate(struct rt_audio_configure audio_config)
144144 {
145145 switch (audio_config .samplerate )
146146 {
147- case 16000 :
148- Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 15U , 0U );
149- break ;
147+ case 16000 :
148+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 24U , 0U );
149+ break ;
150+ case 24000 :
151+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 16U , 0U );
152+ break ;
153+ case 48000 :
154+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 8U , 0U );
155+ break ;
156+ case 96000 :
157+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 2U , 0U );
158+ break ;
159+ default :
160+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 24U , 0U );
161+ break ;
150162 }
151163 }
152164 else
153165 {
154166 switch (audio_config .samplerate )
155167 {
156- case 16000 :
157- Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 11U , 0U );
158- break ;
159- case 24000 :
160- Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 7U , 0U );
161- break ;
162- case 48000 :
163- Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 3U , 0U );
164- break ;
165- case 96000 :
166- Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 1U , 0U );
167- break ;
168- default :
169- Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 11U , 0U );
170- break ;
168+ case 16000 :
169+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 11U , 0U );
170+ break ;
171+ case 24000 :
172+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 7U , 0U );
173+ break ;
174+ case 48000 :
175+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 3U , 0U );
176+ break ;
177+ case 96000 :
178+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 1U , 0U );
179+ break ;
180+ default :
181+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 11U , 0U );
182+ break ;
171183 }
172184 }
173-
185+ #if defined(BSP_USING_XiaoZhi )
186+ Cy_SysClk_PeriPclkSetFracDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U , 15U , 0U );
187+ #endif
174188 Cy_SysClk_PeriPclkEnableDivider ((en_clk_dst_t )CYBSP_TDM_CONTROLLER_0_CLK_DIV_GRP_NUM , CY_SYSCLK_DIV_16_5_BIT , 0U );
175189}
176190
@@ -758,7 +772,7 @@ void i2s_playback_task(void *arg)
758772 while (audio -> replay -> queue .is_empty == 1 )
759773 {
760774 rt_thread_mdelay (1 );
761- #if !defined(BSP_USING_XiaoZhi )
775+ #if defined( PKG_USING_WAVPLAYER ) && !defined(BSP_USING_XiaoZhi )
762776 if (count >=50 ){
763777 rt_completion_done (& audio -> replay -> cmp );
764778 count = 0 ;
0 commit comments