5.6. 应用示例¶
5.6.1. 12M时钟来源选择¶
gx_clk_src_set_12m(0); //来自芯片内部RC12M
gx_clk_src_set_12m(1); //来自管脚输入
5.6.2. DTO计算¶
DTO输出频率必须小于等于其输入频率
dto = (输出频率 * (1 << 25) / + 输入频率/2) / 输入频率
5.6.3. DTO配置¶
以配置UART0 DTO输出24.576MHz为例, 以下两种方法二选一即可
unsigned int dto =(unsigned int)(((unsigned long long) pll_freq * (1<<25) + pll_freq/2) / pll_freq);
gx_clk_mod_set_dto(GX_CLK_MOD_UART0, dto, 1);
gx_clk_mod_set_dto_out(GX_CLK_MOD_UART0, 24760000, 1);
5.6.5. GATE配置¶
以配置UART0 开关时钟gate为例
gx_clk_mod_set_gate(GX_CLK_MOD_UART0, 0);// 关闭Gate
gx_clk_mod_set_gate(GX_CLK_MOD_UART0, 1);// 开启Gate
5.6.6. MUX配置¶
以配置UART0 时钟选择来源为例
gx_hal_clk_mod_set_src(GX_CLK_MOD_UART0, GX_HAL_CLK_MOD_SRC_12M);// 选择时钟源为12M
gx_hal_clk_mod_set_src(GX_CLK_MOD_UART0, GX_HAL_CLK_MOD_SRC_PLL);// 选择时钟源为PLL
Audio模块有更多的时钟来源选择
GX_CLK_MOD_AUD_SYS_DTO_OUT0
GX_CLK_MOD_AUD_SYS_DTO_OUT1
GX_CLK_MOD_AUD_SYS_I2S_MCLK
GX_CLK_MOD_AUD_SYS_PDM