Clock

概述

CLOCK 模块提供 API 设置 clock 组合模式,以及模式与 clock 查询。

用法流程

  • 设置组合模式 wq_clock_set_mode()

  • 重置 clock 到 16MHz wq_clock_reset_state()

  • 根据模式查询 clock 值 wq_clock_get_core_clock_by_mode()

  • 设置 Audio 系统 clock wq_clock_set_audio_clock()

  • 获取 Audio 系统 clock wq_clock_get_audio_clock()

API 介绍

Enums

enum WQ_CLOCK_AUDIO

Values:

enumerator WQ_CLOCK_AUDIO_16M
enumerator WQ_CLOCK_AUDIO_32M
enumerator WQ_CLOCK_AUDIO_15P36M
enumerator WQ_CLOCK_AUDIO_14P112M
enumerator WQ_CLOCK_AUDIO_12P288M
enumerator WQ_CLOCK_AUDIO_MAX
enum WQ_CLOCK_I2S_SEL

Values:

enumerator WQ_CLOCK_I2S_SEL_XTAL
enumerator WQ_CLOCK_I2S_SEL_APLL
enumerator WQ_CLOCK_I2S_SEL_EXTERNAL
enumerator WQ_CLOCK_I2S_SEL_SOC
enum WQ_CLOCK_MCLK_SEL

Values:

enumerator WQ_CLOCK_MCLK_SEL_XTAL
enumerator WQ_CLOCK_MCLK_SEL_AUD_CLK
enumerator WQ_CLOCK_MCLK_SEL_APLL
enumerator WQ_CLOCK_MCLK_SEL_SOC

Functions

WQ_RET wq_clock_init(void)

Main clock init.

参见

WQ_RET

返回:

WQ_RET

WQ_RET wq_clock_set_cores_clock(const uint16_t clks[WQ_CORES_MAX])

Dynamic Frequency Scaling.

参见

WQ_RET

参数:

clks -- [in] Array for all cores clock

返回:

WQ_RET

uint16_t wq_clock_get_core_clock_mhz(WQ_CORES core)

Get all cores frequency.

参数:

core -- [in] Frequency of the core

返回:

Frequency @Mhz

void wq_clock_get_cores_clock(uint16_t clks[WQ_CORES_MAX])

Get all cores frequency.

参数:

clks -- [in] Array for all cores clock

WQ_RET wq_clock_set_audio_clock(WQ_CLOCK_AUDIO clk)

Set AUDIO system to run in the specified clock.

参数:

clk -- [in] The AUDIO clock.

返回值:
  • WQ_RET_OK -- Everything is ok, setting success.

  • WQ_RET_NOSUPP -- Try to use 32M audio clock on 16M xtal

  • WQ_RET_INVAL -- The system is not working at the dependent frequency

uint32_t wq_clock_get_audio_clock(void)

Get audio clock.

返回:

uint32_t audio clock

uint32_t wq_clock_get_systick_clock(void)

Get systick clock.

返回:

uint32_t systick clock

void wq_clock_set_i2s(bool is_tx_mode, WQ_CLOCK_I2S_SEL sel)
void wq_clock_set_mclk(bool is_tx_mode, WQ_CLOCK_MCLK_SEL sel, uint8_t div)