Audio DAC
概述
Audio DAC 是 Audio DAC DFE(或 Audio TXDFE)的简称。包括左右两个声道,分别用 DAC0 和 DAC1 表示。
Audio DAC 主要处理包括高通滤波、插值滤波、SDM 和动态元素匹配(Dynamic Element Matching,DEM)等。
工作原理
Audio DAC 将低采样率多比特的数字信号通过插值滤波处理转换成高采样率的数字信号,再通过 Sigma-Delta-Modulator(简称 SDM)将高速数字信号的比特数压缩,最后通过 DAC Converter 实现数字音频信号到模拟音频信号的转换。
Audio DAC 的输入数据来自于 ASRC 模块,经过内部的调音量 volume 模块之后,数据到达 ANC 模块,处理完之后再返回 Audio DAC 模块进行插值滤波、DC calibration 和 noise gating 以及 SDM 变换等处理,得到 6 比特数字信号,通过 ADI 接口到 DEM 模块,最后输出给 DAC 模块。
Audio DAC 的输入采样率由 ASRC 模块决定,Audio DAC 的典型输出采样率为 4 MHz,工作时钟为 16 MHz,通过 valid 标识信号有效性。
Audio DAC 的信号接口如下图所示。
Audio DAC 的信号接口工作原理图
功能特性
Audio DAC 支持:
输入数据位宽为 24 比特;
输出到 DAC Converter 的信号位宽为 32 比特
输入信号的典型采样率为 800 kHz、400 kHz 和 200 kHz
输出信号的典型采样率为 4 MHz(工作时钟的 1/4)
支持输出信号功率的数字控制;
支持小信号输出的硬件主动降噪处理;
支持 polling 模式读取数据;
支持 FIFO 空满标志输出和软件复位;
支持动态范围增强(DRE)功能:
支持 HPF(高通滤波器),默认 bypass。
结构图
Audio DAC 由两大部分组成,分别位于 D die 和 A die,如下图所示。
Audio DAC 结构图
参考示例
examples/unity_test/acore/components/test_case/test_audio_adc_anc_dac.c
API 介绍
Enums
-
enum _WQ_AUDIO_DAC_GAIN_MODULE
Values:
-
enumerator WQ_AUDIO_DAC_GAIN_MODULE_SPK
-
enumerator WQ_AUDIO_DAC_GAIN_MODULE_MAX
-
enumerator WQ_AUDIO_DAC_GAIN_MODULE_SPK
-
enum _WQ_AUDIO_DAC_GAIN_STATE
Values:
-
enumerator WQ_AUDIO_DAC_GAIN_STATE_INIT
-
enumerator WQ_AUDIO_DAC_GAIN_STATE_WAIT
-
enumerator WQ_AUDIO_DAC_GAIN_STATE_IDLE
-
enumerator WQ_AUDIO_DAC_GAIN_STATE_INIT
-
enum WQ_AUDIO_DAC_DRE_MONITOR_STATE
Values:
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_NO_WORK
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_ADJUSTING_GAIN_DURING_DRE_ON
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_ON
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_ADJUSTING_GAIN_DURING_DRE_OFF
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_OFF
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_IGNORE
-
enumerator WQ_AUDIO_DAC_DRE_MONITOR_STATE_NO_WORK
Functions
-
WQ_RET wq_audio_dac_get_dre_monitor_state(WQ_AUDIO_DAC_CHANNEL chn, WQ_AUDIO_DAC_DRE_MONITOR_STATE *state)
get dre monitor state
- 参数:
chn -- dac channel
state -- to obtain the dre monitor status pointer
- 返回:
WQ_RET_OK - success, other - failed
-
struct wq_audio_dac_config
-
struct wq_audio_dac_dre_config