音频接口
AIAO
概述
音频输入输出接口AIAO(Audio Input/Audio Output),用于和片内或片外Audio Codec对接,完成音频数据的输入和输出,以实现录音、对讲、回放等功能。芯片内置1个AIAO,包含1个AIP(Audio Input Port)和2个AOP(Audio Output Port),支持立体声输入输出。AOP0和AOP1通过MUX选择输出实现与I2S管脚、内置Codec在芯片内部对接,基本模块框图如图1所示。
图 1 芯片 AIAO 框图

注:如果需要两路AOP只能同源输出
说明:
- 图中黄色表示外置Codec相关通路部分
- 图中紫色表示内置Codec相关通路
- 图中灰色表示内部逻辑
- 图中蓝色表示AIAO_MUX_SEL寄存器
特点
AIAO接口支持I2S和PCM(Pulse Code Modulation)两种模式和外置Codec对接。
PCM模式
PCM模式有如下特点:
- 支持主模式和从模式。
- 支持Normal模式下单声道8bit/16bit PCM数据的发送和接收。
- 支持时分复用模式下2/4路8bit/16bit数据的PCM接收。
- 支持8kHz~48kHz采样率。
- PCM模式帧同步信号仅支持短脉冲同步信号(同步信号的持续时间为1个时钟周期),支持标准和自定义两种模式。
- 接收(AIP0)和发送(AOP0/AOP1)相互独立,可以单独使能或关闭。
- 接收(AIP0)和发送(AOP0/AOP1)均采用DMA操作,通过软件分配的循环缓冲区存取数据,循环缓冲区大小和水线可调。
I2S模式
I2S模式有如下特点:
- 支持主模式和从模式。
- AIP0支持Normal模式下1/2路16bit/24bit数据的接收
- AIP0支持时分复用模式下2/4路8bit/16bit数据的接收
- AOP0和AOP1支持1/2路16/24bit数据的发送。
- 支持8kHz~48kHz采样率。
- 接收(AIP0)和发送(AOP0/AOP1)相互独立,可以单独使能或关闭。
- 接收(AIP0)和发送(AOP0/AOP1)均采用DMA操作,通过软件分配的循环缓冲区存取数据,循环缓冲区大小和水线可调。
功能描述
典型应用
芯片内置1个AIP和2个AOP,其中:
- AIP0/AOP0/AOP1对接内置Audio Codec时,仅支持I2S主模式;
- AIP0支持I2S/PCM主/从模式对接外置Audio Codec;
- AOP0/AOP1支持I2S/PCM主/从模式对接外置Audio Codec。
图 1 AIP0与AOP0/AOP1通过I2S/PCM接口主/从模式对接外置ADC/DAC示意图

功能原理
AIP0通过I2S接收对接外置ADC或内置的Audio Codec进行AD(Analog-to-Digital)转换后的音频数据,存入为AIP0分配的循环缓冲区,然后由CPU取走并存储,从而完成录音功能。
AOP0/1从循环缓冲区中读取音频数据,然后按照设定的采样率,把音频数据通过I2S或PCM接口传送给外置DAC,或内置的Audio Codec进行DA(Digital-to-Analog)转换后进行声音播放。
对接外部I2S接口时,支持的I2S时序如图1。按照协议,用BCLK_TX/BCLK_RX时钟的下降沿发送数据,上升沿进行数据采样,MSB在WS_TX/WS_RX变化的下一个时钟周期有效。总是先传送MSB,后传送LSB。
图 1 I2S接口时序

PCM接口传输的数据是单声道数据,WS_TX/WS_RX标识数据的起始位置,先发送(接收)最高有效位MSB,使用时钟的上升沿发送数据,下降沿采样数据(时钟可反向)。标准模式时序中,MSB数据在WS_TX/WS_RX高电平脉冲之后一个周期有效;自定义模式时序中,MSB的位置根据PCM_OFFSET不同可调,当PCM_OFFSET为0时与WS_TX/WS_RX的高电平脉冲对齐的。
PCM接口标准模式下的时序如图2。
图 2 PCM接口标准模式时序(PCM_OFFSET =1)

PCM自定义模式时序如图3所示。
图 3 PCM接口自定义模式时序(PCM_OFFSET =0)

自定义模式时,数据与WS脉冲同拍开始发出。
I2S进行多路(2/4/路8/16bit)接收时,数据分别放于I2S时序的左右声道,如图4所示。
图 4 I2S 1/2/4路接收

注:1-channel模式仅在非时分复用时支持。
PCM模式下的多路接收,如图5所示(以上升沿为例)。支持PCM标准和自定义两种模式,AIAO可以选择数据采样时刻(上升沿或下降沿)接收。
图 5 PCM 1/2/4路接收,在256fs,offset=1时的示例

注:1-channel模式仅在非时分复用时支持。
工作方式
时钟门控及时钟配置
在使能AIAO进行录音或播放时,必须先打开AIAO中对应通道(AIP/AOP)的时钟门控。具体步骤如下:
- 在系统PERI_CRG10784寄存器中aiao_pll_cksel配置为0,选择2376MHz时钟源。
- 在系统PERI_CRG10784寄存器中,配置aiao_srst_req寄存器为0,解除AIAO复位,配置aiao_pll_cken、aiao_cken寄存器为1,打开时钟门控。
- 在AIAO中AIAO_MUX_SEL寄存器中,配置时钟和数据的MUX关系。
-
配置分频系数。
配置AIAO寄存器的I2S_CRG_CFG0_00、I2S_CRG_CFG1_00/I2S_CRG_CFG0_08、I2S_CRG_CFG1_08/I2S_CRG_CFG0_09、I2S_CRG_CFG1_09。选择合适的分频系数。CRG和AIP、AOP的对应关系见图1。
软复位
AIAO内部的3个通道(AIP0、AOP0、AOP1)支持独立的软复位,当复位AIAO模块时,3条通道同时复位。
录音工作流程
录音步骤如下:(假设场景为I2S模式48kHz,2声道16bit精度,假设AIAO pll源头时钟为2376M,系统控制器AIAO时钟已经使能)。
- 配置I2S_CRG_CFG0_08寄存器为0x000A9778,此时第8路时钟输出mclk频率为12.288MHz。
- 配置I2S_CRG_CFG1_08寄存器为0x00000133,此时使能第8路时钟,同时把bclk配置为mclk的4分频,fclk配置为bclk的64分频,此时fclk频率为48kHz。
- 配置AIAO_SWITCH_RX_BCLK寄存器为0x00000008,此时设置接收通路选择工作在第8路时钟上面,也即上面配置好的时钟。
- 配置RX_IF_ATTRI为0xE4800014,此时设置接收通道工作在I2S模式下,2声道,采样精度为16bit。
- 配置RX_BUFF_SADDR_LOW寄存器为分配DDR的起始地址,比如0x80000000,配置 RX_BUFF_SIZE寄存器为分配DDR_BUF的大小,比如0x0000f000,配置RX_BUFF_WPTR寄存器和RX_BUFF_RPTR寄存器为0x0,初始化读写指针。配置RX_TRANS_SIZE寄存器,比如0x00000f00。
- 根据需要,使能接收通路相应的中断位,即配置寄存器RX_INT_ENA,比如配置为0x00000001,只使能trans_int中断。
- 配置寄存器RX_DSP_CTRL为0x10000000,使能接收通道,接收通道开始工作,录音开始。
- 通过读取RX_BUFF_WPTR和RX_BUFF_RPTR的值判断循环缓冲区的空/满状态以及有效数据量;要保证在循环缓冲区满之前将数据取走,并将更新后的循环缓冲区读地址写入RX_BUFF_RPTR,否则可能会造成循环缓冲区溢出,声音不连续。
- 录音完成后,写寄存器RX_DSP_CTRL为0x00000000,查询RX_DSP_CTRL寄存器,直到其值变为0x20000000(说明接收通道已停止工作),即可退出。
须知:
启动AIP0之前,必须完成AIP0时钟的配置,以保证AIAO_BCLK_RX和AIAO_WS_RX正常。
播放工作流程
AOP0、AOP1的工作流程相同,下面以AOP0为例进行说明。
播放步骤如下:(假设场景为I2S模式48kHz,2声道16bit精度,假设AIAO pll源头时钟为2376M,系统控制器AIAO时钟已经使能):
- 配置寄存器I2S_CRG_CFG0_08为0x000A9778,此时第8路时钟输出mclk频率为12.288MHz。
- 配置寄存器I2S_CRG_CFG1_08为0x00000133,此时使能第8路时钟,同时把bclk配置为mclk的4分频,fclk配置为bclk的64分频,此时fclk频率为48kHz。
- 配置AIAO_SWITCH_TX_BCLK寄存器为0x00000008,此时设置发送通路选择工作在第8路时钟上面,也即上面配置好的时钟。
- 配置TX_IF_ATTRI寄存器为0xE4000014,即配置发送接口工作于I2S模式下,2声道,16bit采样精度。
- 配置TX_BUFF_SADDR_LOW为分配BUF的起始地址,比如0x80000000,TX_BUFF_SIZE为分配BUF的大小,初始化TX_BUFF_WPTR为0x0,TX_BUFF_RPTR为0x0,设置TX_TRANS_SIZE。(这一步配置可以参考录音工作流程)
- 根据需要,使能接收通路相应的中断位,即配置寄存器TX_INT_ENA,比如配置为0x00000001,只使能trans_int中断。
- 配置寄存器TX_DSP_CTRL为0x10000000,使能播放通道。
- 通过读取TX_BUFF_WPTR和TX_BUFF_RPTR的值判断循环缓冲区的空/满状态以及有效数据量;要保证在循环缓冲区空之前将新的音频数据填入,并将更新后的循环缓冲区写地址写入TX_BUFF_WPTR,否则可能会造成循环缓冲区下溢出,声音不连续。
- 播放结束后,配置寄存器TX_DSP_CTRL为0x00000000,停止播放通道,查询TX_DSP_CTRL寄存器,当其值变为0x20000000时(说明播放通道已停止工作),即可退出。
须知:
启动AOP0前,必须完成AOP0时钟的配置,以保证AIAO_BCLK_TX和AIAO_WS_TX正常,对AOP1有相同要求。
向AOP0的循环缓冲区写入数据以及更新TX_BUFF_WPTR时,必须保证AOP0的循环缓冲区空闲空间不小于32字节,对AOP1有相同要求。
AIAO寄存器概览
各模块的寄存器偏移地址中变量的取值范围和含义如表1所示。
表 1 各模块的寄存器偏移地址变量表
变量名称
|
取值范围
|
描述
|
m
|
0
|
发送通道号
|
n
|
0
|
接收通道号
|
AIAO寄存器概览如表2所示。
表 2 AIAO寄存器概览(基址是0x17C0_0000)
偏移地址
|
名称
|
描述
|
0x0000
|
AIAO_INT_ENA
|
AIAO模块中断使能寄存器
|
0x0004
|
AIAO_INT_STATUS
|
AIAO模块中断状态寄存器
|
0x0008
|
AIAO_INT_RAW
|
AIAO模块原始中断寄存器
|
0x0028
|
AIAO_SWITCH_RX_BCLK
|
AIAO I2S RX BCLK SWITCH 配置寄存器
|
0x002C
|
AIAO_SWITCH_TX_BCLK
|
AIAO I2S TX BCLK SWITCH 配置寄存器
|
0x0030
|
AIAO_STATUS
|
AIAO状态寄存器
|
0x006C
|
AIAO_MUX_SEL
|
I2S通路选择控制寄存器
|
0x0100
|
I2S_CRG_CFG0_00
|
I2S00 CRG 配置0号寄存器
|
0x0104
|
I2S_CRG_CFG1_00
|
I2S00 CRG 配置1号寄存器
|
0x0140
|
I2S_CRG_CFG0_08
|
I2S08 CRG 配置0号寄存器
|
0x0144
|
I2S_CRG_CFG1_08
|
I2S08 CRG 配置1号寄存器
|
0x0148
|
I2S_CRG_CFG0_09
|
I2S09 CRG 配置0号寄存器
|
0x014C
|
I2S_CRG_CFG1_09
|
I2S09 CRG 配置1号寄存器
|
0x1000+0x100×n
|
RX_IF_ATTRI
|
接收通道的接口属性设置寄存器
|
0x1004+0x100×n
|
RX_DSP_CTRL
|
接收处理通道的控制寄存器
|
0x1080+0x100×n
|
RX_BUFF_SADDR_LOW
|
接收通道的DDR缓存起始地址寄存器
|
0x1084+0x100×n
|
RX_BUFF_SIZE
|
接收通道的DDR缓存大小寄存器
|
0x1088+0x100×n
|
RX_BUFF_WPTR
|
接收通道的DDR缓存写地址寄存器
|
0x108C+0x100×n
|
RX_BUFF_RPTR
|
接收通道的DDR缓存读地址寄存器
|
0x1090+0x100×n
|
RX_BUFF_ALFULL_TH
|
接收通道的DDR缓存几乎满水线寄存器
|
0x1094+0x100×n
|
RX_TRANS_SIZE
|
接收通道的数据传输长度寄存器
|
0x1098+0x100×n
|
RX_WPTR_TMP
|
上报传输完成中断时,保存接收通道的写地址寄存器
|
0x10A0+0x100×n
|
RX_INT_ENA
|
接收通道的中断使能寄存器
|
0x10A4+0x100×n
|
RX_INT_RAW
|
接收通道的原始中断寄存器
|
0x10A8+0x100×n
|
RX_INT_STATUS
|
接收通道的中断状态寄存器
|
0x10AC+0x100×n
|
RX_INT_CLR
|
接收通道的中断清除寄存器
|
0x2000+0x100×m
|
TX_IF_ATTRI
|
发送通道的接口属性设置寄存器
|
0x2004+0x100×m
|
TX_DSP_CTRL
|
发送处理通道的控制寄存器
|
0x2020+0x100×m
|
TX_WS_CNT
|
发送处理通道的ws循环计数状态寄存器
|
0x2024+0x100×m
|
TX_BCLK_CNT
|
发送处理通道的bclk循环计数状态寄存器
|
0x2080+0x100×m
|
TX_BUFF_SADDR_LOW
|
发送通道的DDR缓存起始地址寄存器
|
0x2084+0x100×m
|
TX_BUFF_SIZE
|
发送通道的DDR缓存大小寄存器
|
0x2088+0x100×m
|
TX_BUFF_WPTR
|
发送通道的DDR缓存写地址寄存器
|
0x208C+0x100×m
|
TX_BUFF_RPTR
|
发送通道的DDR缓存读地址寄存器
|
0x2090+0x100×m
|
TX_BUFF_ALEMPTY_TH
|
发送通道的DDR缓存几乎空水线寄存器
|
0x2094+0x100×m
|
TX_TRANS_SIZE
|
发送通道的数据传输长度寄存器
|
0x2098+0x100×m
|
TX_RPTR_TMP
|
上报传输完成中断时,保存发送通道的读地址寄存器
|
0x20A0+0x100×m
|
TX_INT_ENA
|
发送通道的中断使能寄存器
|
0x20A4+0x100×m
|
TX_INT_RAW
|
发送通道的原始中断寄存器
|
0x20A8+0x100×m
|
TX_INT_STATUS
|
发送通道的中断状态寄存器
|
0x20AC+0x100×m
|
TX_INT_CLR
|
发送通道的中断清除寄存器
|
AIAO寄存器描述
说明:
寄存器描述中的BCLK是位时钟;MCLK是主时钟;FSCLK是采样时钟。
AIAO_INT_ENA
AIAO_INT_ENA为AIAO模块中断使能寄存器。
Offset Address: 0x0000 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
-
|
reserved
|
保留。
|
0x0000
|
[16]
|
RW
|
tx_ch0_int_ena
|
发送通道0的中断使能。
0:不使能;
1:使能。
|
0x0
|
[15:1]
|
-
|
reserved
|
保留。
|
0x0000
|
[0]
|
RW
|
rx_ch0_int_ena
|
接收通道0的中断使能。
0:不使能;
1:使能。
|
0x0
|
AIAO_INT_STATUS
AIAO_INT_STATUS为AIAO模块中断状态寄存器。
Offset Address: 0x0004 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
-
|
reserved
|
保留。
|
0x0000
|
[16]
|
RO
|
tx_ch0_int_status
|
发送通道0的中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[15:1]
|
-
|
reserved
|
保留。
|
0x0000
|
[0]
|
RO
|
rx_ch0_int_status
|
接收通道0的中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
AIAO_INT_RAW
AIAO_INT_RAW为AIAO模块原始中断寄存器。
Offset Address: 0x0008 Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:17]
|
-
|
reserved
|
保留。
|
0x0000
|
[16]
|
RO
|
tx_ch0_int_raw
|
发送通道0的原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[15:1]
|
-
|
reserved
|
保留。
|
0x0000
|
[0]
|
RO
|
rx_ch0_int_raw
|
接收通道0的原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
AIAO_SWITCH_RX_BCLK
AIAO_SWITCH_RX_BCLK为AIAO I2S RX BCLK SWITCH 配置寄存器。
Offset Address: 0x0028 Total Reset Value: 0x0000_0070
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x0000007
|
[3:0]
|
RW
|
inner_bclk_ws_sel_rx_00
|
内部bclk选择:
0x0:选择bclk0;
0x8:选择bclk8;
0x9:选择bclk9;
其他:保留。
|
0x0
|
AIAO_SWITCH_TX_BCLK
AIAO_SWITCH_TX_BCLK为AIAO I2S TX BCLK SWITCH 配置寄存器。
Offset Address: 0x002C Total Reset Value: 0x0000_00F8
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:4]
|
-
|
reserved
|
保留。
|
0x000000F
|
[3:0]
|
RW
|
inner_bclk_ws_sel_tx_00
|
内部bclk选择:
0x0:选择bclk0;
0x8:选择bclk8;
0x9:选择bclk9;
其他:保留。
|
0x8
|
AIAO_STATUS
AIAO_STATUS为AIAO状态寄存器。
Offset Address: 0x0030 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:1]
|
-
|
reserved
|
保留。
|
0x00000000
|
[0]
|
RO
|
srst_rdy
|
APB复位撤销指示。
0:正在复位;
1:复位完成。
|
0x1
|
AIAO_MUX_SEL
AIAO_MUX_SEL为I2S通路选择控制寄存器。
Offset Address: 0x006C Total Reset Value: 0x0003_9000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:23]
|
-
|
reserved
|
保留。
|
0x000
|
[22]
|
RW
|
crg9_mode_sel
|
crg9主模式下fsclk产生模式控制位。
0:i2s模式;
1:pcm模式;
|
0x0
|
[21:18]
|
RW
|
i2s1_tx_sd_src_sel
|
tx1_sd的source 选择。
0x0:I2S TX0
0x8:I2S RX0
0x9:I2S RX1
其他:保留。
|
0x0
|
[17:16]
|
RW
|
i2s1_tx_sd3_sel
|
tx1_sd的sd3选择。
00:sd0;
01:sd1;
10:sd2;
11:sd3。
注意:先选择通道,然后选择数据线。
|
0x3
|
[15:14]
|
RW
|
i2s1_tx_sd2_sel
|
tx1_sd的sd2选择。
00:sd0;
01:sd1;
10:sd2;
11:sd3。
注意:先选择通道,然后选择数据线。
|
0x2
|
[13:12]
|
RW
|
i2s1_tx_sd1_sel
|
tx1_sd的sd1选择。
00:sd0;
01:sd1;
10:sd2;
11:sd3。
注意:先选择通道,然后选择数据线。
|
0x1
|
[11:10]
|
RW
|
i2s1_tx_sd0_sel
|
tx1_sd的sd0选择。
00:sd0;
01:sd1;
10:sd2;
11:sd3。
注意:先选择通道,然后选择数据线。
|
0x0
|
[9:5]
|
-
|
reserved
|
保留。
|
0x00
|
[4]
|
RW
|
codec_tx_sel
|
DAC输入数据和时钟选择控制。
0:tx0_sd、crg8;
1:tx1_sd、crg9。
|
0x0
|
[3]
|
RW
|
audio_mclk_sel
|
芯片i2s接口的mclk选择控制。
0:aiao_i2s_rx_mclk,即crg0;
1:aiao_i2s_tx_mclk,即crg8或crg9,具体选crg8或者crg9要通过codec_tx_sel来配合选择
|
0x0
|
[2]
|
RW
|
rx_sd_sel
|
rx0_sd数据源选择。
0:I2S管脚;
1:内置codec_ADC的iis_sd输出。
|
0x0
|
[1]
|
RW
|
audio_rx_bclk_sel
|
内置codec_ADC的bclk/ws选择。
0:选择crg0的时钟
1:选择crg8或者crg9的时钟,这种情况下,adc和dac共时钟,具体选crg8或crg9要通过codec_tx_sel来配合选择
|
0x0
|
[0]
|
RW
|
pad_tx_en
|
iis_tx0输出管脚数据和时钟选择控制。
0:tx1_sd、crg9;
1:tx0_sd、crg8;
|
0x0
|
I2S_CRG_CFG0_00
I2S_CRG_CFG0_00为I2S00 CRG 配置0号寄存器。
Offset Address: 0x0100 Total Reset Value: 0x00AA_AAAA
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:27]
|
-
|
reserved
|
保留。
|
0x00
|
[26:0]
|
RW
|
aiao_mclk_div
|
mclk的分频时钟配置值,配置值为(MCLK/SIO时钟源频率)×2^27。
|
0x0AAAAAA
|
I2S_CRG_CFG1_00
I2S_CRG_CFG1_00为I2S00 CRG 配置1号寄存器。
Offset Address: 0x0104 Total Reset Value: 0x0000_0131
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:16]
|
-
|
reserved
|
保留。
|
0x0000
|
[15]
|
RW
|
aiao_ws_en
|
WS使能。
0:不使能;
1:使能。
|
0x0
|
[14]
|
RW
|
aiao_bclk_en
|
BCLK使能。
0:不使能;
1:使能。
|
0x0
|
[13]
|
RW
|
aiao_bclkout_pctrl
|
BCLKOUT的极性控制。
0:正向;
1:反向。
|
0x0
|
[12]
|
RW
|
aiao_bclkin_pctrl
|
BCLKIN的极性控制。
0:正向;
1:反向。
|
0x0
|
[11]
|
RW
|
aiao_bclk_sel
|
BCLK/FSCLK选择。
0:时钟从内部产生;
1:时钟从外部输入。
|
0x0
|
[10]
|
RW
|
aiao_bclk_oen
|
BCLK/FSCLK IO oen控制。
0:BCLK/FSCLK IO 为输出;
1:BCLK/FSCLK IO 为输入。
注意:需要和aiao_bclk_sel配对使用,实现I2S接口主从模式选择。
|
0x0
|
[9]
|
RW
|
aiao_srst_req
|
软复位请求。
0:撤消复位;
1:复位。
|
0x0
|
[8]
|
RW
|
aiao_cken
|
时钟状态。
0:关闭;
1:打开。
|
0x1
|
[7]
|
-
|
reserved
|
保留。
|
0x0
|
[6:4]
|
RW
|
aiao_fsclk_div
|
位时钟BCLK与采样时钟FSCLK的分频关系。
000:FSCLK是BCLK的16分频;
001:FSCLK是BCLK的32分频;
010:FSCLK是BCLK的48分频;
011:FSCLK是BCLK的64分频;
100:FSCLK是BCLK的128分频;
101:FSCLK是BCLK的256分频;
其他:FSCLK是BCLK的8分频。
|
0x3
|
[3:0]
|
RW
|
aiao_bclk_div
|
主时钟MCLK与位时钟BCLK分频关系。
0x0:BCLK是MCLK的1分频;
0x1:BCLK是MCLK的3分频;
0x2:BCLK是MCLK的2分频;
0x3:BCLK是MCLK的4分频;
0x4:BCLK是MCLK的6分频;
0x5:BCLK是MCLK的8分频;
0x6:BCLK是MCLK的12分频;
0x7:BCLK是MCLK的16分频;
0x8:BCLK是MCLK的24分频;
0x9:BCLK是MCLK的32分频;
0xA:BCLK是MCLK的48分频;
0xB:BCLK是MCLK的64分频;
其他:BCLK是MCLK的8分频。
|
0x1
|
I2S_CRG_CFG0_08
I2S_CRG_CFG0_08为I2S08 CRG 配置0号寄存器。
Offset Address: 0x0140 Total Reset Value: 0x00AA_AAAA
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:27]
|
-
|
reserved
|
保留。
|
0x00
|
[26:0]
|
RW
|
aiao_mclk_div
|
mclk的分频时钟配置值,配置值为(MCLK/SIO时钟源频率)×2^27。
|
0x0AAAAAA
|
I2S_CRG_CFG1_08
I2S_CRG_CFG1_08为I2S08 CRG 配置1号寄存器。
Offset Address: 0x0144 Total Reset Value: 0x0000_0131
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:16]
|
-
|
reserved
|
保留。
|
0x0000
|
[15]
|
RW
|
aiao_ws_en
|
WS使能。
0:不使能;
1:使能。
|
0x0
|
[14]
|
RW
|
aiao_bclk_en
|
BCLK使能。
0:不使能;
1:使能。
|
0x0
|
[13]
|
RW
|
aiao_bclkout_pctrl
|
BCLKOUT的极性控制。
0:正向;
1:反向。
|
0x0
|
[12]
|
RW
|
aiao_bclkin_pctrl
|
BCLKIN的极性控制。
0:正向;
1:反向。
|
0x0
|
[11]
|
RW
|
aiao_bclk_sel
|
BCLK/FSCLK选择。
0:时钟从内部产生;
1:时钟从外部输入。
|
0x0
|
[10]
|
RW
|
aiao_bclk_oen
|
BCLK/FSCLK IO oen控制。
0:BCLK/FSCLK IO 为输出;
1:BCLK/FSCLK IO 为输入。
注意:需要和aiao_bclk_sel配对使用,实现I2S接口主从模式选择。
|
0x0
|
[9]
|
RW
|
aiao_srst_req
|
软复位请求。
0:撤消复位;
1:复位。
|
0x0
|
[8]
|
RW
|
aiao_cken
|
时钟状态。
0:关闭;
1:打开。
|
0x1
|
[7]
|
-
|
reserved
|
保留
|
0x0
|
[6:4]
|
RW
|
aiao_fsclk_div
|
位时钟BCLK与采样时钟FSCLK的分频关系。
000:FSCLK是BCLK的16分频;
001:FSCLK是BCLK的32分频;
010:FSCLK是BCLK的48分频;
011:FSCLK是BCLK的64分频;
100:FSCLK是BCLK的128分频;
101:FSCLK是BCLK的256分频;
其他:FSCLK是BCLK的8分频。
|
0x3
|
[3:0]
|
RW
|
aiao_bclk_div
|
主时钟MCLK与位时钟BCLK分频关系。
0x0:BCLK是MCLK的1分频;
0x1:BCLK是MCLK的3分频;
0x2:BCLK是MCLK的2分频;
0x3:BCLK是MCLK的4分频;
0x4:BCLK是MCLK的6分频;
0x5:BCLK是MCLK的8分频;
0x6:BCLK是MCLK的12分频;
0x7:BCLK是MCLK的16分频;
0x8:BCLK是MCLK的24分频;
0x9:BCLK是MCLK的32分频;
0xA:BCLK是MCLK的48分频;
0xB:BCLK是MCLK的64分频;
其他:BCLK是MCLK的8分频。
|
0x1
|
I2S_CRG_CFG0_09
I2S_CRG_CFG0_09为I2S09 CRG 配置0号寄存器。
Offset Address: 0x0148 Total Reset Value: 0x00AA_AAAA
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:27]
|
-
|
reserved
|
保留。
|
0x00
|
[26:0]
|
RW
|
aiao_mclk_div
|
mclk的分频时钟配置值,配置值为(MCLK/SIO时钟源频率)×2^27。
|
0x0AAAAAA
|
I2S_CRG_CFG1_09
I2S_CRG_CFG1_09为I2S09 CRG 配置1号寄存器。
Offset Address: 0x014C Total Reset Value: 0x0000_0131
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:16]
|
-
|
reserved
|
保留。
|
0x0000
|
[15]
|
RW
|
aiao_ws_en
|
WS使能。
0:不使能;
1:使能。
|
0x0
|
[14]
|
RW
|
aiao_bclk_en
|
BCLK使能。
0:不使能;
1:使能。
|
0x0
|
[13]
|
RW
|
aiao_bclkout_pctrl
|
BCLKOUT的极性控制。
0:正向;
1:反向。
|
0x0
|
[12]
|
RW
|
aiao_bclkin_pctrl
|
BCLKIN的极性控制。
0:正向;
1:反向。
|
0x0
|
[11]
|
RW
|
aiao_bclk_sel
|
BCLK/FSCLK选择。
0:时钟从内部产生;
1:时钟从外部输入。
|
0x0
|
[10]
|
RW
|
aiao_bclk_oen
|
BCLK/FSCLK IO oen控制。
0:BCLK/FSCLK IO为输出;
1:BCLK/FSCLK IO为输入。
注意:需要和aiao_bclk_sel配对使用,实现I2S接口主从模式选择。
|
0x0
|
[9]
|
RW
|
aiao_srst_req
|
软复位请求。
0:撤消复位;
1:复位。
|
0x0
|
[8]
|
RW
|
aiao_cken
|
时钟状态。
0:关闭;
1:打开。
|
0x1
|
[7]
|
-
|
reserved
|
保留
|
0x0
|
[6:4]
|
RW
|
aiao_fsclk_div
|
位时钟BCLK与采样时钟FSCLK的分频关系。
000:FSCLK是BCLK的16分频;
001:FSCLK是BCLK的32分频;
010:FSCLK是BCLK的48分频;
011:FSCLK是BCLK的64分频;
100:FSCLK是BCLK的128分频;
101:FSCLK是BCLK的256分频;
其他:FSCLK是BCLK的8分频。
|
0x3
|
[3:0]
|
RW
|
aiao_bclk_div
|
主时钟MCLK与位时钟BCLK分频关系。
0x0:BCLK是MCLK的1分频;
0x1:BCLK是MCLK的3分频;
0x2:BCLK是MCLK的2分频;
0x3:BCLK是MCLK的4分频;
0x4:BCLK是MCLK的6分频;
0x5:BCLK是MCLK的8分频;
0x6:BCLK是MCLK的12分频;
0x7:BCLK是MCLK的16分频;
0x8:BCLK是MCLK的24分频;
0x9:BCLK是MCLK的32分频;
0xA:BCLK是MCLK的48分频;
0xB:BCLK是MCLK的64分频;
其他:BCLK是MCLK的8分频。
|
0x1
|
RX_IF_ATTRI
RX_IF_ATTRI为接收通道的接口属性设置寄存器。
Offset Address: 0x1000+0x100×n Total Reset Value: 0xE408_0004
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0xE4
|
[23:20]
|
RW
|
rx_sd_source_sel
|
sd0,sd1,sd2,sd3 source 选择。
0x0:I2S TX0
0x1:I2S TX1
…
0x7:I2S TX7
0x8:I2S RX0
0x9:I2S RX1
…
0xF:I2S RX7
|
0x0
|
[19]
|
-
|
reserved
|
保留。
|
0x1
|
[18:16]
|
RW
|
rx_trackmode
|
I2S模式下,左右声道模式控制。
000:不做处理;
001:两个声道全部为左声道声音;
010:两个声道全部为右声道声音;
011:两个声道互换;
100:左右两个声道输出为左右声道相加;
101:左声道静音,右声道播放原右声道声音;
110:右声道静音,左声道播放原左声道声音;
111:左右声道静音。
注意:单声道接收时,trackmode仍然有效。
|
0x0
|
[15:8]
|
RW
|
rx_sd_offset
|
PCM模式下,数据相对帧同步信号延迟n个BCLK周期。
0x00:0 bit clocks
0x01:1 bit clocks
0x02:2 bit clocks
…
0xFE:254 bitclocks
0xFF:255 bitclocks
|
0x00
|
[7]
|
RW
|
rx_multislot_en
|
时分复用有效指示位。
0:时分复用模式无效,属于正常模式;
1:时分复用模式有效。
|
0x0
|
[6]
|
-
|
reserved
|
保留。
|
0x0
|
[5:4]
|
RW
|
rx_ch_num
|
接收的路数选择
rx_multislot_en = 0
00:1路(ch)接收;(sd0数据线)
01:2路(ch)接收;(sd0数据线)
其他:保留;
rx_multislot_en = 1
分时复用方式下,接收的路数选择。
00:2路接收;(sd0数据线)
01:4路接收;(sd0数据线)
其他:保留
注意:多路接收时,只用第0根数据线sd0。
|
0x0
|
[3:2]
|
RW
|
rx_i2s_precision
|
数据采样精度配置位。
I2S模式。
01:16bit;
10:24bit;
其他:保留。
PCM模式。
01:16bit;
其他:保留。
|
0x1
|
[1:0]
|
RW
|
rx_mode
|
接收通道的接口模式选择。
00:I2S模式;
01:PCM模式;
其他:保留。
|
0x0
|
RX_DSP_CTRL
RX_DSP_CTRL为接收处理通道的控制寄存器。
Offset Address: 0x1004+0x100×n Total Reset Value: 0x2000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:30]
|
-
|
reserved
|
保留。
|
0x0
|
[29]
|
RO
|
rx_disable_done
|
接收通道的停止完成标识位。
0:disable未完成;
1:disable完成。
|
0x1
|
[28]
|
RW
|
rx_enable
|
接收通道的启动、停止指示位。
0:停止;
1:启动。
|
0x0
|
[27]
|
RW
|
bypass_en
|
运算处理bypass,控制功能仍然生效。
0:bypass功能关闭;
1:bypass功能打开;trackmode功能被bypass
|
0x0
|
[26:0]
|
-
|
reserved
|
保留。
|
0x0000000
|
RX_BUFF_SADDR_LOW
RX_BUFF_SADDR_LOW为接收通道的DDR缓存起始地址寄存器。
Offset Address: 0x1080+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
rx_buff_saddr_low
|
接收通道的DDR缓存起始地址,以字节为单位。
|
0x00000000
|
RX_BUFF_SIZE
RX_BUFF_SIZE为接收通道的DDR缓存大小寄存器。
Offset Address: 0x1084+0x100×n Total Reset Value: 0x0000_0032
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
rx_buff_size
|
接收通道的DDR缓存大小,以字节为单位。
注意:要求rx_buff_size是32字节的整数倍。
|
0x000032
|
RX_BUFF_WPTR
RX_BUFF_WPTR为接收通道的DDR缓存写地址寄存器。
Offset Address: 0x1088+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
rx_buff_wptr
|
接收通道的DDR缓存写地址,以字节为单位。
注意:
- 接收方向的写地址由逻辑维护,是相对于DDR缓存起始地址的偏移地址。
- 要求128×2比特对齐。软件低4bit不可用。
|
0x000000
|
RX_BUFF_RPTR
RX_BUFF_RPTR为接收通道的DDR缓存读地址寄存器。
Offset Address: 0x108C+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
rx_buff_rptr
|
接收通道的DDR缓存读地址,以字节为单位。
注意:
- 接收方向的读地址由软件维护,是相对于DDR缓存起始地址的偏移地址。
- 软件按照字节为单位,硬件内部按照32字节对齐操作。
|
0x000000
|
RX_BUFF_ALFULL_TH
RX_BUFF_ALFULL_TH为接收通道的DDR缓存几乎满水线寄存器。
Offset Address: 0x1090+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
rx_buff_alfull_th
|
接收通道的DDR缓存几乎满水线,以字节为单位。当DDR缓存可写空间小于几乎满水线时,产生几乎满原始中断。
注意:如果使用rx_alfull_int中断,要求rx_buff_alfull_th配置为16字节的整数倍,且大于或等于0x40。
|
0x000000
|
RX_TRANS_SIZE
RX_TRANS_SIZE为接收通道的数据传输长度寄存器。
Offset Address: 0x1094+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
rx_trans_size
|
接收通道,当完成rx_trans_size长度(以字节为单位)的音频数据接收时,产生传输完成中断。
|
0x000000
|
RX_WPTR_TMP
RX_WPTR_TMP为上报传输完成中断时,保存接收通道的写地址寄存器。
Offset Address: 0x1098+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RO
|
rx_wptr_tmp
|
上报传输完成中断时,保存接收通道的写地址,以字节为单位。
|
0x000000
|
RX_INT_ENA
RX_INT_ENA为接收通道的中断使能寄存器。
Offset Address: 0x10A0+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RW
|
rx_if_full_lost_int_ena
|
接收通道的接口数据满,导致数据丢失的原始中断使能。
0:不使能;
1:使能。
|
0x0
|
[6]
|
-
|
reserved
|
保留。
|
0x0
|
[5]
|
RW
|
rx_stop_int_ena
|
接收通道的停止中断使能。
0:不使能;
1:使能。
|
0x0
|
[4]
|
RW
|
rx_ififo_full_int_ena
|
接收通道的接口fifo上溢中断使能。
0:不使能;
1:使能。
|
0x0
|
[3]
|
RW
|
rx_bfifo_full_int_ena
|
接收通道的总线fifo上溢中断使能。
0:不使能;
1:使能。
|
0x0
|
[2]
|
RW
|
rx_alfull_int_ena
|
接收通道的DDR缓存几乎满中断使能。
0:不使能;
1:使能。
|
0x0
|
[1]
|
RW
|
rx_full_int_ena
|
接收通道的DDR缓存满中断使能。
0:不使能;
1:使能。
|
0x0
|
[0]
|
RW
|
rx_trans_int_ena
|
接收通道的传输完成中断使能。
0:不使能;
1:使能。
|
0x0
|
RX_INT_RAW
RX_INT_RAW为接收通道的原始中断寄存器。
Offset Address: 0x10A4+0x100×n Total Reset Value: 0x0000_0020
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RO
|
rx_if_full_lost_int_raw
|
接收通道的接口数据满,导致数据丢失的原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[6]
|
-
|
reserved
|
保留。
|
0x0
|
[5]
|
RO
|
rx_stop_int_raw
|
接收通道的停止原始中断。
0:无原始中断;
1:有原始中断。
|
0x1
|
[4]
|
-
|
reserved
|
保留。
|
0x0
|
[3]
|
RO
|
rx_fifo_full_int_raw
|
接收通道的总线fifo上溢原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[2]
|
RO
|
rx_alfull_int_raw
|
接收通道的DDR缓存几乎满原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[1]
|
RO
|
rx_full_int_raw
|
接收通道的DDR缓存满原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[0]
|
RO
|
rx_trans_int_raw
|
接收通道的传输完成原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
RX_INT_STATUS
RX_INT_STATUS为接收通道的中断状态寄存器。
Offset Address: 0x10A8+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RO
|
rx_if_full_lost_int_status
|
接收通道的接口数据满,导致数据丢失的中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[6]
|
-
|
reserved
|
保留。
|
0x0
|
[5]
|
RO
|
rx_stop_int_status
|
接收通道的停止中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[4]
|
RO
|
rx_ififo_full_int_status
|
接收通道的接口fifo上溢中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[3]
|
RO
|
rx_bfifo_full_int_status
|
接收通道的总线fifo上溢中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[2]
|
RO
|
rx_alfull_int_status
|
接收通道的DDR缓存几乎满中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[1]
|
RO
|
rx_full_int_status
|
接收通道的DDR缓存满中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[0]
|
RO
|
rx_trans_int_status
|
接收通道的传输完成中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
RX_INT_CLR
RX_INT_CLR为接收通道的中断清除寄存器。
Offset Address: 0x10AC+0x100×n Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RW
|
rx_if_full_lost_int_clear
|
接收通道的接口数据满丢失中断清除。
0:不清除;
1:清除。
|
0x0
|
[6]
|
-
|
reserved
|
保留。
|
0x0
|
[5]
|
RW
|
rx_stop_int_clear
|
接收通道的停止中断清除位。
0:不清除;
1:清除。
|
0x0
|
[4]
|
RW
|
rx_ififo_full_int_clear
|
接收通道的接口fifo上溢中断清除位。
0:不清除;
1:清除。
|
0x0
|
[3]
|
RW
|
rx_bfifo_full_int_clear
|
接收通道的总线fifo上溢中断清除位。
0:不清除;
1:清除。
|
0x0
|
[2]
|
RW
|
rx_alfull_int_clear
|
接收通道的DDR缓存几乎满中断清除位。
0:不清除;
1:清除。
|
0x0
|
[1]
|
RW
|
rx_full_int_clear
|
接收通道的DDR缓存满中断清除位。
0:不清除;
1:清除。
|
0x0
|
[0]
|
WO
|
rx_trans_int_clear
|
接收通道的传输完成中断清除位。
0:不清除;
1:清除。
|
0x0
|
TX_IF_ATTRI
TX_IF_ATTRI为发送通道的接口属性设置寄存器。
Offset Address: 0x2000+0x100×m Total Reset Value: 0xE400_0004
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:30]
|
-
|
reserved
|
保留。
|
0x3
|
[29:28]
|
-
|
reserved
|
保留。
|
0x2
|
[27:26]
|
-
|
reserved
|
保留。
|
0x1
|
[25:24]
|
-
|
reserved
|
保留。
|
0x0
|
[23:20]
|
RW
|
tx_sd_source_sel
|
sd0,sd1,sd2,sd3 source 选择。
0x0:I2S TX0
0x1:I2S TX1
…
0x7:I2S TX7
0x8:I2S RX0
0x9:I2S RX1
…
0xF:I2S RX7
|
0x0
|
[19]
|
-
|
reserved
|
保留。
|
0x0
|
[18:16]
|
RW
|
tx_trackmode
|
I2S模式下,左右声道模式控制。
000:不做处理;
001:两个声道全部为左声道声音;
010:两个声道全部为右声道声音;
011:两个声道互换;
100:左右两个声道输出为左右声道相加;
101:左声道静音,右声道播放原右声道声音;
110:右声道静音,左声道播放原左声道声音;
111:左右声道静音。
注意:单声道接收时,trackmode仍然有效。
|
0x0
|
[15:8]
|
RW
|
tx_sd_offset
|
PCM模式下,数据相对帧同步信号延迟n个BCLK周期。
0x00:0 bit clocks
0x01:1 bit clocks
0x02:2 bit clocks
…
0xFE:254 bitclocks
0xFF:255 bitclocks
|
0x00
|
[7]
|
RO
|
reserved
|
保留。
|
0x0
|
[6]
|
RO
|
reserved
|
保留。
|
0x0
|
[5:4]
|
RW
|
tx_ch_num
|
发送路数选择。
00:1路发送;
01:2路发送;
其他:保留。
|
0x0
|
[3:2]
|
RW
|
tx_i2s_precision
|
数据采样精度配置位。
I2S正常模式:
00:保留;
01:16bit;
10:24bit;
11:保留。
PCM正常模式:
01:16bit;
其他:保留。
|
0x1
|
[1:0]
|
RW
|
tx_mode
|
发送通道的接口模式选择。
00:I2S模式;
01:PCM模式;
其他:保留。
|
0x0
|
TX_DSP_CTRL
TX_DSP_CTRL为发送处理通道的控制寄存器。
Offset Address: 0x2004+0x100×m Total Reset Value: 0x2000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:30]
|
-
|
reserved
|
保留。
|
0x0
|
[29]
|
RO
|
tx_disable_done
|
发送通道的停止完成标识。
0:未完成;
1:完成。
|
0x1
|
[28]
|
RW
|
tx_enable
|
发送通道的启动、停止指示位。
0:停止;
1:启动。
|
0x0
|
[27]
|
RW
|
bypass_en
|
运算处理bypass,控制功能仍然生效。
0:bypass功能关闭;
1:bypass功能打开;音量控制,trackmode,淡入淡出,等功能被bypass。
|
0x0
|
[26:24]
|
-
|
reserved
|
保留。
|
0x0
|
[23:20]
|
RW
|
fade_out_rate
|
淡出速度。
0x0:1 个采样点改变一次;
0x1:2 个采样点改变一次;
0x2:4 个采样点改变一次;
0x3:8 个采样点改变一次;
0x4:16个采样点改变一次;
0x5:32个采样点改变一次;
0x6:64个采样点改变一次;
0x7:128个采样点改变一次;
其他:保留。
|
0x0
|
[19:16]
|
RW
|
fade_in_rate
|
淡入速度。
0x0:1 个采样点改变一次;
0x1:2 个采样点改变一次;
0x2:4 个采样点改变一次;
0x3:8 个采样点改变一次;
0x4:16个采样点改变一次;
0x5:32个采样点改变一次;
0x6:64个采样点改变一次;
0x7:128个采样点改变一次;
其他:保留。
|
0x0
|
[15]
|
-
|
reserved
|
保留。
|
0x0
|
[14:8]
|
RW
|
volume
|
音量。
0x00~0x28:静音;
0x29:–80dB;
……
0x7E:+5dB;
0x7F:+6dB。
|
0x00
|
[7:2]
|
-
|
reserved
|
保留。
|
0x00
|
[1]
|
RW
|
mute_fade_en
|
静音淡入淡出控制。
0:淡入淡出功能关闭;
1:淡入淡出功能打开。
|
0x0
|
[0]
|
RW
|
mute_en
|
静音控制。
0:静音撤销;
1:静音使能。
|
0x0
|
TX_WS_CNT
TX_WS_CNT为发送处理通道的ws循环计数状态寄存器。
Offset Address: 0x2020+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RO
|
ws_count
|
fsclk循环计数寄存器。
计数单位:fsclk。
|
0x000000
|
TX_BCLK_CNT
TX_BCLK_CNT为发送处理通道的bclk循环计数状态寄存器。
Offset Address: 0x2024+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RO
|
bclk_count
|
bclk循环计数寄存器。
计数单位:bclk。
|
0x000000
|
TX_BUFF_SADDR_LOW
TX_BUFF_SADDR_LOW为发送通道的DDR缓存起始地址寄存器。
Offset Address: 0x2080+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:0]
|
RW
|
tx_buff_saddr_low
|
发送通道的DDR缓存起始地址,以字节为单位。
注意:DDR缓存起始地址要求128×2比特对齐。
|
0x00000000
|
TX_BUFF_SIZE
TX_BUFF_SIZE为发送通道的DDR缓存大小寄存器。
Offset Address: 0x2084+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
tx_buff_size
|
发送通道的DDR缓存大小,以字节为单位。
注意:要求tx_buff_size是32字节的整数倍。
|
0x000000
|
TX_BUFF_WPTR
TX_BUFF_WPTR为发送通道的DDR缓存写地址寄存器。
Offset Address: 0x2088+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
tx_buff_wptr
|
发送通道的DDR缓存写地址。
注意:
- 发送方向的写地址由软件维护,是相对于DDR缓存起始地址的偏移地址。
- 软件必须保证TX_BUFF空闲空间不小于32字节。
- 软件按照字节为单位,硬件内部按照32字节对齐操作。
|
0x000000
|
TX_BUFF_RPTR
TX_BUFF_RPTR为发送通道的DDR缓存读地址寄存器。
Offset Address: 0x208C+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
tx_buff_rptr
|
发送通道的DDR缓存读地址。
注意:发送方向的读地址由逻辑维护,是相对于DDR缓存起始地址的偏移地址。要求128×2比特对齐。
|
0x000000
|
TX_BUFF_ALEMPTY_TH
TX_BUFF_ALEMPTY_TH为发送通道的DDR缓存几乎空水线寄存器。
Offset Address: 0x2090+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
tx_buff_alempty_th
|
发送通道的DDR缓存几乎空水线,以字节为单位。当DDR缓存可读空间小于几乎空水线时,产生几乎空原始中断。
注意:如果使用tx_alempty_int中断,要求tx_buff_alempty_th配置为16字节的整数倍,且大于或等于0x20。
|
0x000000
|
TX_TRANS_SIZE
TX_TRANS_SIZE为发送通道的数据传输长度寄存器。
Offset Address: 0x2094+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RW
|
tx_trans_size
|
发送通道,当完成tx_trans_size长度(以字节为单位)的音频数据发送时,产生传输完成中断。
|
0x000000
|
TX_RPTR_TMP
TX_RPTR_TMP为上报传输完成中断时,保存发送通道的读地址寄存器。
Offset Address: 0x2098+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:24]
|
-
|
reserved
|
保留。
|
0x00
|
[23:0]
|
RO
|
tx_rptr_tmp
|
上报传输完成中断时,保存发送通道的读地址,以字节为单位。
|
0x000000
|
TX_INT_ENA
TX_INT_ENA为发送通道的中断使能寄存器。
Offset Address: 0x20A0+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RW
|
tx_dat_break_int_ena
|
发送通道的接口数据断流中断使能。
0:不使能;
1:使能。
|
0x0
|
[6]
|
RW
|
tx_mfade_int_ena
|
发送通道的静音淡入淡出完成中断使能。
0:不使能;
1:使能。
|
0x0
|
[5]
|
RW
|
tx_stop_int_ena
|
发送通道的停止中断使能。
0:不使能;
1:使能。
|
0x0
|
[4]
|
RW
|
tx_ififo_empty_int_ena
|
发送通道的接口fifo下溢中断使能。
0:不使能;
1:使能。
|
0x0
|
[3]
|
RW
|
tx_bfifo_empty_int_ena
|
发送通道的总线fifo下溢中断使能。
0:不使能;
1:使能。
|
0x0
|
[2]
|
RW
|
tx_alempty_int_ena
|
发送通道的DDR缓存几乎空中断使能。
0:不使能;
1:使能。
|
0x0
|
[1]
|
RW
|
tx_empty_int_ena
|
发送通道的DDR缓存空中断使能。
0:不使能;
1:使能。
|
0x0
|
[0]
|
RW
|
tx_trans_int_ena
|
发送通道的传输完成中断使能。
0:不使能;
1:使能。
|
0x0
|
TX_INT_RAW
TX_INT_RAW为发送通道的原始中断寄存器。
Offset Address: 0x20A4+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RO
|
tx_dat_break_int_raw
|
发送通道的接口数据断流原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[6]
|
RO
|
tx_mfade_int_raw
|
发送通道的静音淡入淡出完成原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[5]
|
RO
|
tx_stop_int_raw
|
发送通道的停止原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[4]
|
RO
|
tx_ififo_empty_int_raw
|
发送通道的接口fifo下溢原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[3]
|
RO
|
tx_bfifo_empty_int_raw
|
发送通道的总线fifo下溢原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[2]
|
RO
|
tx_alempty_int_raw
|
发送通道的DDR缓存几乎空原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[1]
|
RO
|
tx_empty_int_raw
|
发送通道的DDR缓存空原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
[0]
|
RO
|
tx_trans_int_raw
|
发送通道的传输完成原始中断。
0:无原始中断;
1:有原始中断。
|
0x0
|
TX_INT_STATUS
TX_INT_STATUS为发送通道的中断状态寄存器。
Offset Address: 0x20A8+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RO
|
tx_dat_break_int_status
|
发送通道的接口数据断流中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[6]
|
RO
|
tx_mfade_int_status
|
发送通道的静音淡入淡出完成中断状态位。
0:无中断状态;
1:有中断状态。
|
0x0
|
[5]
|
RO
|
tx_stop_int_status
|
发送通道的停止中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[4]
|
RO
|
tx_ififo_empty_int_status
|
发送通道的接口fifo下溢中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[3]
|
RO
|
tx_bfifo_empty_int_status
|
发送通道的总线fifo下溢中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[2]
|
RO
|
tx_alempty_int_status
|
发送通道的DDR缓存几乎空中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[1]
|
RO
|
tx_empty_int_status
|
发送通道的DDR缓存空中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
[0]
|
RO
|
tx_trans_int_status
|
发送通道的传输完成中断状态。
0:无中断状态;
1:有中断状态。
|
0x0
|
TX_INT_CLR
TX_INT_CLR为发送通道的中断清除寄存器。
Offset Address: 0x20AC+0x100×m Total Reset Value: 0x0000_0000
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:8]
|
-
|
reserved
|
保留。
|
0x000000
|
[7]
|
RW
|
tx_dat_break_int_clear
|
发送通道的接口数据断流中断清除。
0:不清除;
1:清除。
|
0x0
|
[6]
|
RW
|
tx_mfade_int_clear
|
发送通道的静音淡入淡出完成中断清除位。
0:不清除;
1:清除。
|
0x0
|
[5]
|
RW
|
tx_stop_int_clear
|
发送通道的停止中断清除位。
0:不清除;
1:清除。
|
0x0
|
[4]
|
RW
|
tx_ififo_empty_int_clear
|
发送通道的接口fifo下溢中断清除位。
0:不清除;
1:清除。
|
0x0
|
[3]
|
RW
|
tx_bfifo_empty_int_clear
|
发送通道的总线fifo下溢中断清除位。
0:不清除;
1:清除。
|
0x0
|
[2]
|
RW
|
tx_alempty_int_clear
|
发送通道的DDR缓存几乎空中断清除位。
0:不清除;
1:清除。
|
0x0
|
[1]
|
RW
|
tx_empty_int_clear
|
发送通道的DDR缓存空中断清除位。
0:不清除;
1:清除。
|
0x0
|
[0]
|
RW
|
tx_trans_int_clear
|
发送通道的传输完成中断清除位。
0:不清除;
1:清除。
|
0x0
|
Audio Codec
概述
芯片集成高性能的Audio Codec,包括高品质回放DAC(90dB DR A-Weighted),支持1路单端lineout输出;高品质录音ADC(90dB DR A-Weighted),支持2路差分/单端输入,麦克风输入支持0~30dB,2dB 步长的增益控制,另外一档Boost gain为20dB。I2S数据接口,支持8kHz到48kHz的标准采样率。
特点
Audio Codec模块有如下特点:
- 90dBA DR DAC, 支持1路单端lineout输出
- DAC数字音量控制范围:-121dB~6dB,1dB步长
- 90dBA DR ADC, 支持2路差分/单端输入
- ADC通路模拟音量控制范围:0~30dB,2dB 步长,另外一档Boost gain为20dB
- 提供内部麦克风偏置
- 音频采样率:支持48kHz、44.1kHz、32kHz三个系列的采样率。其中各系列采样率情况如下:
- 32kHz系列采样率包括8kHz、16kHz、32kHz
- 44.1kHz系列采样率包括11.025kHz、22.05kHz、44.1kHz
- 48kHz系列采样率包括12kHz、24kHz、48kHz
Audio Codec寄存器概览
Audio Codec寄存器概览如表1所示。
表 1 Audio Codec寄存器概览(基址是0x17C4_0000)
偏移地址
|
名称
|
描述
|
0x0000
|
AUDIO_ANA_CTRL_0
|
Audio Codec模拟控制寄存器0
|
0x0004
|
AUDIO_ANA_CTRL_1
|
Audio Codec模拟控制寄存器1
|
0x0008
|
AUDIO_ANA_CTRL_2
|
Audio Codec模拟控制寄存器2
|
0x000C
|
AUDIO_ANA_CTRL_3
|
Audio Codec模拟控制寄存器3
|
0x00CC
|
AUDIO_CTRL_REG_1
|
Audio Codec DIG控制寄存器0
|
0x00D0
|
AUDIO_DAC_REG_0
|
Audio Codec DIG控制寄存器1
|
0x00D4
|
AUDIO_DAC_REG_1
|
Audio Codec DIG控制寄存器2
|
0x00D8
|
AUDIO_ADC_REG_0
|
Audio Codec DIG控制寄存器3
|
Audio Codec寄存器描述
AUDIO_ANA_CTRL_0
AUDIO_ANA_CTRL_0为Audio Codec模拟控制寄存器0。
Offset Address: 0x0000 Total Reset Value: 0x3434_DFFF
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:27]
|
RW
|
LINEIN_R_GAIN
|
右通路输入PGA增益控制。
0x0:0dB;
0x1:2dB;
…
0xF:30dB。
|
0x06
|
[26:24]
|
RW
|
LINEIN_R_SEL
|
右通路输入PGA输入通道选择。
000:MIC差分输入;
001:MIC_R单端输入;
010:MIC_L单端输入;
011:LINEIN_L单端输入;
100:LINEIN_R单端输入;
101:LINEIN差分输入;
其他:保留。
|
0x4
|
[23:19]
|
RW
|
LINEIN_L_GAIN
|
左通路输入PGA增益控制。
0x00:0dB;
0x01:2dB;
… …
0x0F:30dB。
|
0x06
|
[18:16]
|
RW
|
LINEIN_L_SEL
|
左通路输入PGA输入通道选择。
000:MIC差分输入;
001:MIC_L单端输入;
010:MIC_R单端输入;
011:LINEIN_R单端输入;
100:LINEIN_L单端输入;
101:LINEIN差分输入;
其他:保留。
|
0x4
|
[15]
|
RW
|
PD_MICBIAS1
|
MICBIAS1上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[14]
|
-
|
reserved
|
保留。
|
0x1
|
[13]
|
RW
|
EN_LDO
|
LDO上下电控制。
0:下电;
1:上电。
|
0x0
|
[12]
|
RW
|
PD_DAC_VREF
|
DAC_VREF上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[11]
|
RW
|
PD_CTCM_TX
|
TX通路CTCM_BUFFER的上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[10]
|
RW
|
PD_CTCM_RX
|
RX通路CTCM_BUFFER的上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[9]
|
RW
|
PD_IBIAS
|
偏置电流产生电路上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[8]
|
RW
|
PD_VREF
|
VREF上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[7]
|
RW
|
PD_LINEOUTL
|
左通路LINEOUT上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[6]
|
RW
|
PD_LINEOUTR
|
右通路LINEOUT上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[5]
|
RW
|
PD_ADCL
|
左通路ADC上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[4]
|
RW
|
PD_ADCR
|
右通路ADC上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[3]
|
RW
|
PD_LINEIN_L
|
左通路输入PGA上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[2]
|
RW
|
PD_LINEIN_R
|
右通路输入PGA上下电控制。
0:正常工作;
1:下电。
|
0x1
|
[1]
|
RW
|
MUTE_LINEIN_L
|
左通路输入PGA静音控制。
0:正常工作;
1:静音。
|
0x1
|
[0]
|
RW
|
MUTE_LINEIN_R
|
右通路输入PGA静音控制。
0:正常工作;
1:静音。
|
0x1
|
AUDIO_ANA_CTRL_1
AUDIO_ANA_CTRL_1为Audio Codec模拟控制寄存器1。
Offset Address: 0x0004 Total Reset Value: 0xDF60_5E65
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:20]
|
-
|
reserved
|
保留。
|
0xDF6
|
[19]
|
RW
|
MODE_ADCL
|
左通路ADC模式选择信号。
0:6.144MHz采样率(48kHz系列);
1:4.096MHz采样率(32kHz系列)。
|
0x0
|
[18]
|
RW
|
MODE_ADCR
|
右通路ADC模式选择信号。
0:6.144MHz采样率(48kHz系列);
1:4.096MHz采样率(32kHz系列)。
|
0x0
|
[17]
|
RW
|
BOOST_ADCL
|
左通路ADC Boost开关控制。
0:不开Boost;
1:打开Boost=20dB。
|
0x0
|
[16]
|
RW
|
BOOST_ADCR
|
右通路ADC Boost开关控制。
0:不开Boost;
1:打开Boost=20dB。
|
0x0
|
[15:2]
|
-
|
reserved
|
保留。
|
0x1799
|
[1]
|
RW
|
EN_RCTUNE
|
ADC的RC系数校正电路使能控制。
0:不使能;
1:正常工作。
此寄存器为一上升沿触发信号,需要RC校正电路工作时应先配置0,再配置1,系统检测到一个上升沿之后触发RC校正电路工作。
|
0x0
|
[0]
|
RW
|
PD_RCTUNE
|
ADC的RC系数校正电路上下电控制。
0:正常工作;
1:下电。
|
0x1
|
AUDIO_ANA_CTRL_2
AUDIO_ANA_CTRL_2为Audio Codec模拟控制寄存器2。
Offset Address: 0x0008 Total Reset Value: 0x0025_5548
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:30]
|
-
|
reserved
|
保留。
|
0x0
|
[29:27]
|
RW
|
MICBIAS_ADJ
|
MICBIAS的输出电压选择。
000:2.1V;
001:2.2V;
……
111:2.8V。
|
0x0
|
[26:1]
|
-
|
reserved
|
保留。
|
0x12AAA4
|
[0]
|
RW
|
ANA_LOOP
|
模拟环回使能控制。
0:DAC的输入由数字部分提供;
1:ADC到DAC模拟内部环回。
|
0x0
|
AUDIO_ANA_CTRL_3
AUDIO_ANA_CTRL_3为Audio Codec模拟控制寄存器3。
Offset Address: 0x000C Total Reset Value: 0x0429_3B50
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31:10]
|
-
|
reserved
|
保留。
|
0x010A4E
|
[9]
|
RW
|
MUTE_DACL
|
左通路DAC静音控制。
0:正常工作;
1:通路静音。
|
0x1
|
[8]
|
RW
|
MUTE_DACR
|
右通路DAC静音控制。
0:正常工作;
1:静音。
|
0x1
|
[7:0]
|
-
|
reserved
|
保留。
|
0x50
|
AUDIO_CTRL_REG_1
AUDIO_CTRL_REG_1为Audio Codec DIG控制寄存器0。
Offset Address: 0x00CC Total Reset Value: 0x00F3_5A4A
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31]
|
RW
|
dacl_rst_n
|
DACL复位信号。
0:复位有效;
1:复位无效。
|
0x0
|
[30]
|
RW
|
dacr_rst_n
|
DACR复位信号。
0:复位有效;
1:复位无效。
|
0x0
|
[29]
|
RW
|
adcl_rst_n
|
ADCL复位信号。
0:复位有效;
1:复位无效。
|
0x0
|
[28]
|
RW
|
adcr_rst_n
|
ADCR复位信号。
0:复位有效;
1:复位无效。
|
0x0
|
[27]
|
RW
|
dacl_en
|
DACL使能信号。
0:不使能;
1:使能。
|
0x0
|
[26]
|
RW
|
dacr_en
|
DACR使能信号。
0:不使能;
1:使能。
|
0x0
|
[25]
|
RW
|
adcl_en
|
ADCL使能信号。
0:不使能;
1:使能。
|
0x0
|
[24]
|
RW
|
adcr_en
|
ADCR使能信号。
0:不使能;
1:使能。
|
0x0
|
[23:18]
|
RO
|
reserved
|
保留。
|
0x3C
|
[17:13]
|
RW
|
i2s1_fs_sel
|
I2S通道采样率选择。
0x18:mclk/512/2;
0x19:mclk/256/2;
0x1A:mclk/128/2;
0x1B:mclk/64/2;
0x1C~0x1F:mclk/32/2。
其他:保留。
|
0x1A
|
[12:0]
|
RO
|
reserved
|
保留。
|
0x1A4A
|
AUDIO_DAC_REG_0
AUDIO_DAC_REG_0为Audio Codec DIG控制寄存器1。
Offset Address: 0x00D0 Total Reset Value: 0x0000_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31]
|
RW
|
smutel
|
DACL soft-mute控制位。
0:关闭soft-mute;
1:开启soft-mute。
|
0x0
|
[30]
|
RW
|
smuter
|
DACR soft-mute控制位。
0:关闭soft-mute;
1:开启soft-mute。
|
0x0
|
[29]
|
RW
|
sunmutel
|
DACL soft-unmute控制位。
0:关闭soft-unmute;
1:开启soft-unmute。
|
0x0
|
[28]
|
RW
|
sunmuter
|
DACR soft-unmute控制位。
0:关闭soft-unmute;
1:开启soft-unmute。
|
0x0
|
[27]
|
RW
|
dacvu
|
DAC音量更新控制位。
0:不更新音量;
1:更新音量。
|
0x0
|
[26:25]
|
RW
|
mutel_rate
|
DACL soft-mute速率控制位。
00:fs/2;
01:fs/8;
10:fs/32;
11:fs/64。
|
0x0
|
[24:23]
|
RW
|
muter_rate
|
DACR soft-mute速率控制位。
00:fs/2;
01:fs/8;
10:fs/32;
11:fs/64。
|
0x0
|
[22:0]
|
RO
|
reserved
|
保留。
|
0x000001
|
AUDIO_DAC_REG_1
AUDIO_DAC_REG_1为Audio Codec DIG控制寄存器2。
Offset Address: 0x00D4 Total Reset Value: 0x0606_2424
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31]
|
RW
|
dacl_mute
|
DACL数字静音控制。
0:正常工作;
1:静音。
|
0x0
|
[30:24]
|
RW
|
dacl_vol
|
DACL数字音量控制。
计算公式为:(6-dacl_vol*1)dB。
当dacl_vol为0x7F时,DACL数字静音。
0x00:6dB;
0x01:5dB;
0x02:4dB;
…
0x7E:-120dB;
0x7F:mute。
|
0x06
|
[23]
|
RW
|
dacr_mute
|
DACR数字静音控制。
0:正常工作;
1:静音。
|
0x0
|
[22:16]
|
RW
|
dacr_vol
|
DACR数字音量控制。
计算公式为:(6-dacr_vol*1)dB。
当dacr_vol为0x7F时,DACR数字静音。
0x00:6dB;
0x01:5dB;
0x02:4dB;
…
0x7E:-120dB;
0x7F:mute。
|
0x06
|
[15:0]
|
RO
|
reserved
|
保留。
|
0x2424
|
AUDIO_ADC_REG_0
AUDIO_ADC_REG_0为Audio Codec DIG控制寄存器3。
Offset Address: 0x00D8 Total Reset Value: 0x1E1E_0001
Bits
|
Access
|
Name
|
Description
|
Reset
|
[31]
|
RW
|
adcl_mute
|
ADCL数字静音控制位。
0:ADCL unmute;
1:ADCL mute。
|
0x0
|
[30:24]
|
RW
|
adcl_vol
|
ADCL 音量控制位。
计算公式:(30-adcl_vol*1)dB。
0x00:30dB
0x01:29dB
0x02:28dB
…
0x7E:-96dB
0x7F:-97dB
|
0x1E
|
[23]
|
RW
|
adcr_mute
|
ADCR数字静音控制位。
0:ADCR不静音;
1:ADCR静音。
|
0x0
|
[22:16]
|
RW
|
adcr_vol
|
ADCR 音量控制位。
计算公式:(30-adcr_vol*1)dB。
0x00:30dB
0x01:29dB
0x02:28dB
…
0x7E:-96dB
0x7F:-97dB
|
0x1E
|
[15]
|
RW
|
adcl_hpf_en
|
ADCL高通滤波器使能控制。
0:关闭高通滤波器;
1:使能高通滤波器。
|
0x0
|
[14]
|
RW
|
adcr_hpf_en
|
ADCR高通滤波器使能控制。
0:关闭高通滤波器;
1:使能高通滤波器。
|
0x0
|
[13:0]
|
-
|
reserved
|
保留。
|
0x0001
|