9.5.2. 功能描述

9.5.2.1. Audio Codec时钟

../../../_images/clk.png

图 9.42 Audio Codec时钟框图

Audio Codec的时钟框图如上图所示,APBCLK用于控制寄存器以及FIFO,AUD_CLK(24.576MHz/22.5792MHz由CMU分频所得)则控制TX(播放)部分。

TX部分通过寄存器FS_OUT配置了TX的采样频率,那么相应的过采样率128倍的时钟则提供MIX、DVC、Interpolation Filter、Fade模块,过采样率512倍的时钟则提供Sigma-Delta Modulation、PWM模块。

9.5.2.2. Audio Codec信号通路

../../../_images/signal.png

图 9.43 Audio Codec信号通路

上图为Audio Codec的信号通路示意图。

通过TXFIFO_CH0_EN/ TXFIFO_CH1_EN,分别控制TXFIFO中的左/右声道的数据,如若需要交叉OUT0通路和OUT1通路的数据,可以通过MIX0、MIX1的寄存器配置,实现OUT0/1通路的数据交换。

9.5.2.3. 数字音量控制(DVC)

在每个TX、RX通路上均有设计独立的DVC模块,可以通过DVC_EN使能,如若未使能,则旁通输入信号到下一个模块。DVC的可调范围为-119.25dB to 71.25dB,步进0.75dB。

9.5.2.4. 插值滤波器

插值滤波器(Interpolation Filter)实现128倍的上采样,实现抽值滤波器的相反功能,依次采用半带滤波、CIC补偿滤波和CIC插值滤波,实现的上采样倍数分别为2、2、32。经过插值滤波器,得到高采样率的数字信号。

9.5.2.5. Sigma-Delta Modulation

经过插值滤波后,进行数字Sigma-Delta算法,获得PDM信号。其中,Sigma-Delta调制采用2阶-1bit结构。

9.5.2.6. PWM

PWM模块用于对PDM进行调制,调制方式为0代表25%占空比的时钟信号,1代表75%占空比的时钟信号,时钟频率为PDM的采样时钟频率,即128 * FS_OUT。另外,PWM支持差分模式,若PWM0使能差分模式,那么SPK_OUT0则输出PWM0,SPK_OUT1则输出反相PWM0。此时PWM1应配置为关闭状态。

9.5.2.7. 中断

../../../_images/irq2.png

图 9.44 中断信号

由上图所示可看出Audio Codec的中断信号,各信号的具体如下:

AUDOUT_IRQ_STA为TXFIFO数据空间充足(即TXFIFO的剩余的数据空间多于TXFIFO_TH)时产生的中断信号,此时也会相应的产生AUDOUT _DRQ信号;

AUDOUT_OVRN_IRQ_STA为DMIC的RXFIFO出现上溢出中断;

AUDOUT _UDRN_IRQ_STA为DMIC的RXFIFO出现下溢出中断。

9.5.3. 编程指南

9.5.3.1. 常用场景参数配置

  1. 使用双通道播放,主时钟为24.576MHz,采样频率为48kHz ,过采样率为128

    • TX MIXER控制寄存器

      TX_MIXER_CTL[31:30] = 0x0 //不使能混音功能,通路配置为AUD_OUT

      TX_MIXER_CTL[12:8] = 0x2 //通路配置为AUD_OUT_R

      TX_MIXER_CTL[4:0] = 0x1 //通路配置为AUD_OUT_L

    • TX DVC3&4控制寄存器

      TX_DVC3&4_CTL[31:24] = 0xA0 //DVC4数字音量控制模块,根据需求配置

      TX_DVC3&4_CTL[23:16] = 0xA0 //DVC3数字音量控制模块,根据需求配置

      TX_DVC3&4_CTL[1:0] = 0x3 //使能两路DVC

    • TX Playback控制寄存器

      TX_PLAYBACK_CTL[14:12] = 0x0 //延时输出功能,根据需求配置

      TX_PLAYBACK_CTL[10:8] = 0x3 //滤波输出Shift比特数配置为默认值13比特(推荐使用默认值)

      TX_PLAYBACK_CTL[6:4] = 0x7 //插值滤波器使能

      TX_PLAYBACK_CTL[3:0] = 0x0 //主时钟配置24.576MHz,采样频率配置48kHz

    • TX SDM控制寄存器

      TX_SDM_CTL[31:8] = 0x11011 //SDM增益默认值配置(推荐使用默认值)

      TX_SDM_CTL[1:0] = 0x3 //SDM使能

    • TX PWM控制寄存器

      TX_PWM_CTL[6:0] = 0x11 //PWM使能并配置为输出PWM调制信号

    • TX FIFO控制寄存器

      TXFIFO_CTL[2:0] = 0x3 //使能TXFIFO通道,下溢出时发送0