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 的信号接口如下图所示。

../../_images/Audio_DAC_connection.png

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,如下图所示。

../../_images/Audio_DAC_structure.png

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
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
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

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

Public Members

WQ_AUDIO_DAC_SRC src
WQ_AUDIO_DAC_IN_FREQ_SAMPLE in_fs
int full_scale_limit
uint16_t dc_offset_dig_calibration
WQ_AUDIO_DAC_TRIGGER_SRC trigger
WQ_AUDIO_DAC_PERFORMANCE_MODE pf
WQ_AUDIO_TIMER_ID timer_id
wq_spk_dac_param_t dac_param
wq_audio_dac_pa_callback pa_cb
struct wq_audio_dac_dre_config

Public Members

WQ_AUDIO_DAC_ANALOG_GAIN analog_gain
WQ_AUDIO_DAC_GAIN_ADJUST_MODE adj_mode
WQ_AUDIO_DAC_GAIN_ADJUST_METHOD adj_method
uint16_t control_count
wq_audio_dac_gain_callback cb