ASRC
概述
ASRC(Asynchronous Sample Rate Converter,异步采样速率转换器)通过改变离散信号的采样率以获得基础连续信号的新离散表示。
功能特性
ASRC 模块支持:
支持 4 个 ASRC 模块。
支持上行模式或下行模式,下行模式支持 ASRC 经过硬件混音 mixer 模块输出, mixer 模块共 2 个。
上行模式时与其他模块的连接关系图如下所示。
ASRC rx 模式与其它模块连接示意图
硬件混音流程如下, mixer 输入由 data 和 tone 构成, data 来自 music 或者 voice, tone 来自提示音, data 和 tone 的混合比例可调, data 和 tone 可单独播放。
mixer 模块使用示意图
下行模式时与其他模块的连接关系图如下所示。
ASRC tx 模式与其它模块连接示意图
输入数据位宽为 32 bit,支持低 24 bit、低 16 bit、双 16 bit 和高 24 bit 有效
支持对输入数字音频信号进行增益控制,调整精度为 0.1875 dB,范围为 -95.8125 dB ~+ 95.8125 dB。
典型输入采样率: 8 kHz、16 kHz、32 kHz、44.1 kHz、48 kHz、96 kHz 和最大 192 kHz 等多种配置。
典型输出采样率: 192 kHz、200 kHz、384 kHz、400 kHz、768 kHz 和 800 kHz 等多种配置。
支持 PPM 调整,控制数据传输速率。
ASRC0、ASRC1 支持硬件 stream EQ,可以增强或者削弱特定频率范围内信号能量。
单个 EQ 模块支持最大 32 个 biqaud filter, 1 个 DRC。 单个 EQ 模块支持两组参数切换。 单个 EQ 模块支持对输入放大 2^N 倍, N=1~8,支持对输入缩小 2^M 倍, M=1~8。 单个 EQ 模块支持对输出缩小 2^M 倍, M=1~8。 支持典型输入采样率: 8 kHz、16 kHz、32 kHz、44.1 kHz、48 kHz、96 kHz 和 192 kHz 等多种配置。
STREAM EQ 与其他模块的连接关系图如下所示。
STREAM EQ与其它模块连接示意图
结构图
单个 ASRC 的内部结构如下图所示。
ASRC 结构图
单个 STREAM EQ 的内部结构如下图所示。
STREAM EQ 结构图
API 介绍
Defines
-
WQ_ASRC_AUX_OFFSET
Enums
-
struct wq_asrc_config
Public Members
-
void *irq_param
asrc interrupt callback function input parameter
-
wq_asrc_int_hook irq_cb
asrc interrupt callback function
-
WQ_ASRC_INT_TYPE irq_type
asrc interrupt type
-
uint32_t freq_in
-
uint32_t freq_out
-
int32_t ppm
-
WQ_ASRC_MODE mode
-
WQ_ASRC_LATCH_SRC latch
-
WQ_ASRC_TRIGGER_SRC trigger
-
WQ_ASRC_BIT_FORMAT format
-
WQ_AUDIO_TIMER_ID timer_id
-
int8_t left_shift
-
bool mixer_en
-
bool asrc_drv_by_i2stx_en
not support, must be false
-
void *irq_param