USER GUIDE / AUDIO SYSTEM / AUDIO INTERFACE / REGISTER DESCRIPTION

寄存器描述

AIC 配置寄存器

AICFR 包含控制 FIFO 阈值、I2S/MSB 对齐格式选择、AIC 复位、主/从选择和 AIC 启用的位。

AICFRBASE + 0x0000
Bit313029282726252423222120191817161514131211109876543210
字段rg_codec_srstReservedad2da_loopRFTHReservedTFTHReservedRST_O_STAT USRST_I_STAT USMSBSYSCKD (Reserved)ReservedDMODEICDC_TLSMPICDC_RAUSELRSTTMASTERRMASTERENB
RST00000000000000000000000000000000
位名称说明RW
31rg_codec_srst内部codec软件复位 0:不重置内部codec;
1:重置内部codec。
RW
30Reserved写入无影响,读取为零。
R
29ad2da_loop该位控制内部codec功能。
0:常规功能;
1:从 adc 直接向 dac 通路发送并行数据。
在这种模式下,I2S接口 的接收时钟与传输时钟保持同步。
RW
28:24RFTH接收FIFO中断或DMA请求阈值。
RFTH 有效值为 0~ 31。
该阈值实际值为(RFTH+ 1)*2。
当接收FIFO中的样本数量(由 AICSR.RFL指示)大于或等于此阈值时,AICSR.RFS 状态位将被置 位。
RFTH 值越大,DMA/中断请求频率越低,但接收 FIFO 溢出的风
RW
23:21Reserved写入无影响,读取为零。
R
20:16TFTH发送 FIFO 中断或 DMA 请求阈值。
TFTH 有效值为 0~31。
该阈值对应的实际值为TFTH* 2。
当发送 FIFO 中的样本数(由 AICSR.TFL 指示)小于或等于阈值时,AICSR.TFS 状态位将被置位。
TFTH 值越小,DMA/中断请求频率越低,但发送 FIFO 下溢的风险越 大。
最佳取值需根据具体系统确定。
RW
15Reserved写入无影响,读取为零。
R
14RST_O_STAT US发送 FIFO 复位状态,在设置AICFR.RST寄存器为1后,需要等待其 值恢复为0。
R
13RST_I_STAT US接收 FIFO 复位状态,在设置AICFR.RST寄存器为1后,需要等待其 值恢复为0。
R
12MSB大端格式选择。
0:回采数据采用小端格式 1:回采数据采用大端格式。
符号位位于第31位。
RW
11SYSCKD (Reserved)可以写入,但不能使用。
RW
10:9Reserved写入无影响,读取为零。
R
8DMODE该位控制 6 线模式和 4 线模式。
0:AIC 模块支持 4 线。
这意味着发送时钟和接收时钟共享,并且与 发送时钟共享同一时钟源。
1:AIC 模块支持 6 线。
这表示发送时钟和接收时钟互相独立。
注意:该功能仅在外部codec中有效。
RW
7ICDC_T放音使用CODEC选择 ICDC_T CODEC used for DAC 0 外部 CODEC 1 内部CODECR
6LSMP在 TXFIFO 下溢时,选择播放最后一个样本或零样本。
零样本表示采 样值为零。
建议在音频播放停止时更改该位。
0:当 TXFIFO 下溢时播放零采样;
1:当 TXFIFO 下溢时播放最后一个样本。
RW
5ICDC_R录音使用 CODEC 选择。
ICDC_R CODEC used for ADC 0 外部 CODEC 1 内部CODEC
RW
4AUSEL音频单元选择。
在 BIT_CLK 停止(I2SCR.STPBK =1)时更改该位。
0:保留;
1:选择 I2S/MSB 对齐格式。
RW
3RST重置 AIC。
0:向该位写 0 无效果,该位读数始终为 0;
1:重置 AIC 寄存器和 FIFO(AICFR 和 I2SDIV 寄存器除外)。
W
2TMASTERDAC通路选择AIC做主机或者从机;
0:AIC做从机,DAC BIT_CLK由外部提供;
1:AIC做主机,DAC BIT_CLK由AIC提供。
RW
1RMASTERADC通路选择AIC做主机或者从机;
0:AIC做从机,ADC BIT_CLK由外部提供;
1:AIC做主机,ADC BIT_CLK由AIC提供。
RW
0ENB启用 AIC 功能。
该位用于启用或禁用 AIC 功能。
0:禁用 AIC 控制器;
1:启用 AIC 控制器。
RW

AIC 控制寄存器

AICCR 包含用于控制 DMA 模式、FIFO 刷新、中断启用、内部循环回放、回放和记录启用的位。它还控制采样大小和有符号/无符号数据传输。

AICCRBASE + 0x0004
Bit313029282726252423222120191817161514131211109876543210
字段ETFLORETFLSen2old_0PACK16excodecCHANNELETFLTLDMSOSSISSRDMSTDMSMONOCTRM2SENDSWASVTSUTFLUSHRFLUSHERORETURERFSETFSENLBFERPLEREC
RST00000001001001000000000000000000
位名称说明RW
31ETFLOR启用 TFLOR 中断。
该位用于控制 TFLOR 中断的启用或禁用。
0:禁用;
1:启用。
RW
30ETFLS启用 TFLS 中断。
该位用于控制 TFLS 中断的启用或禁用。
0:禁用;
1:启用。
RW
29en2old_0注意:正常使用时,将该值保持为 0。
复位值:0。
RW
28PACK16输出采样数据 16 位打包模式选择。
此位用于设定单个字符容纳的采样 数据数量及对齐方式。
打包模式仅支持16bit采样位数。
0:非打包数据模式。
单个字符仅包含一个16bit采样数据,采用LSB 对齐;
1:打包数据模式。
单个字符包含两个16bit采样数据。
RW
27excodec当使用回声消除功能且只记录左声道时,应设置该位;
在其他情况下, 应清除该位。
RW
26:24CHANNEL输出通道数选择。
该字段用于配置从AIC至设备的输出数据通道数。
支持的数据有 1(单声道)、2(立体声)、4、6 和 8 通道。
采样数 据在存储器/寄存器中以 LSB 对齐。
3'b000:1 个通道,单声道模式;
3'b001:2 个通道,立体声模式;
其他:保留。
RW
23ETFL启用 TFIFO LOOP 功能。
该位用于禁用或启用音频采样数据接收。
0:禁用;
1:启用。
RW
22TLDMS启用传输 FIFOLOOP DMA。
该位用于在传输音频数据时启用或禁用 DMA。
0:禁用;
1:启用。
RW
21:19OSS输出采样大小。
这些位反映了从内存或寄存器输出采样数据的大小。
支 持的数据大小有 8、16、18、20 和 24 位。
采样数据在内存/寄存器 中以 LSB 对齐。
RW
18:16ISS输入采样大小。
这些位反映了输入存储器或寄存器的采样数据大小。
支 持的数据大小有 8、16、18、20 和 24 位。
采样数据在存储器/寄存 器中以 LSB 对齐。
3'b000:8 位;
3'b001:16 位 3'b010:18 位 3'b011:20 位 3'b100:24 位 其他: 保留。
RW
15RDMS接收 DMA 启用。
该位用于在接收音频数据时启用或禁用 DMA。
0:禁用;
1:启用。
RW
14TDMS发送 DMA 启用。
该位用于在传输音频数据时启用或禁用 DMA。
0:禁用;
1:已启用。
RW
13:12MONOCTR单声道控制。
2'b00:录音时左右声道都工作;
2'b01:录音时只有右声道工作;
2'b10:录音时只有左声道工作;
2'b11:保留;
RW
11M2S单声道到立体声。
该位控制播放时是否将单声道样本扩展为立体声。
当 该位置1时,数据流中的每个输出样本数据将在左右声道同时播放。
该 位只能在双声道配置中设置。
更改后立即生效。
请在重放开始前更改。
0:不进行单声道到立体声的扩展;
1:将单声道扩展为立体声。
RW
10ENDSWEndian切换位。
该位通过交换采样数据中的高字节和低字节,控制传 出的 16 位音频样本的大小端转换。
0:不改变输出样本数据;
1:交换传出的 16 位样本数据的高字节和低字节。
RW
9ASVTSU有符号和无符号数据格式之间的音频采样值转换。
该位用于控制有符号 和无符号数据的转换。
如果该位为 1,输入及输出的音频采样数据将通 过翻转其最高有效位实现格式转换。
0:不执行音频采样值有符号与无符号格式转换;
1:进行音频采样值有符号与无符号转换。
RW
8TFLUSH传输 FIFO 清除。
0:无影响,该位始终为 0;
1:将发送 FIFO 清空。
W
7RFLUSH接收 FIFO 清除。
0:无影响,该位读数始终为 0;
1:将接收 FIFO 清空。
W
6EROR启用 ROR 中断。
该位用于控制 ROR 中断的启用或禁用。
0:禁用;
1:启用。
RW
5ETUR启用 TUR 中断。
该位用于控制 TUR 中断的启用或禁用。
0:禁用;
1:启用。
RW
4ERFS启用 RFS 中断。
该位用于控制 RFS 中断的启用或禁用。
0:禁用;
1:启用。
RW
3ETFS启用 TFS 中断。
该位用于控制 TFS 中断的启用或禁用。
0:禁用;
1:启用。
RW
2ENLBF启用 AIC 回环功能。
该位用于启用或禁用 AIC 的内部回环功能,该 功能仅用于测试。
启用 AIC 回环功能后,常规的音频播放/录音功能将 被禁用。
0:禁用 AIC 回环功能;
1:启用 AIC 循环回放功能。
RW
1ERPL启用播放功能。
该位用于禁用或启用音频采样数据发送。
0:禁用 AIC 播放功能;
1:启用 AIC 播放功能。
RW
0EREC启用录音功能。
该位用于禁用或启用音频采样数据接收。
0:禁用 AIC 录音功能;
1:启用 AIC 录音功能。
RW

AIC I2S/MSB-对齐控制寄存器

当 AICFR[4]=1 时,I2SCR 包含用于选择 I2S 格式或 MSB 对齐格式的控制位。它仅在 I2S/MSB-justified 格式(AICFR[4]=1)下有效。

I2SCRBASE + 0x0010
Bit313029282726252423222120191817161514131211109876543210
字段firstchn_is_le ftReservedRFIRSTSWLHReservedAMSL
RST00000000000000000000000000000000
位名称说明RW
31firstchn_is_le ft将录音的左声道标记为: 0:右声道;
1:左声道。
R
30:18Reserved写入无影响,读取为零。
R
17RFIRST在立体声模式下先发送 R 声道。
该位只能在双声道配置中设置。
用 于定义LR或RL格式的音频帧顺序。
更改该位后立即生效,请在重 放开始前更改。
0:先发送 L 频道(LR);
1:先发送 R 信道(RL)。
RW
16SWLH在 16 位打包立体声模式下切换 LR 通道。
该位控制低地址数据是 L 还是 R。
该位只能在双通道配置和 16 位 打包模式下设置。
也就是说,它只能在打包模式(PACK16=1)且 双 通道(CHANNEL=0x1)下有效。
该位更改后立即生效。
请在重放开始前更改。
RW
15:1Reserved写入无影响,读取为零。
R
0AMSL指定备用操作模式(I2S 或 MSB-Justified)。
0: 选择 I2S 操作模式;
1: 选择 MSB 对齐操作模式。
RW

AIC FIFO 状态寄存器

AICSR 包含反映 FIFO 状态的位。除了两个可写入 0 的位之外,大多数位都是只读的。

AICSRBASE + 0x0014
Bit313029282726252423222120191817161514131211109876543210
字段ReservedRFLReservedTFLLTFLReservedRORTURRFSTFSTFLORTFLSReserved
RST00000000000000000000000000000000
位名称说明RW
31:30Reserved写入无影响,读取为零。
R
30:24RFL接收 FIFO 数据量。
该位指示接收 FIFO 中有效 PCM 数据的数量。
RFL 值 说明 0x00~ 0x40 RFL 接收 FIFO 中的有效 PCM 数据量。
0x41~ 0x7F 保留。
R
23:21Reserved写入无影响,读取为零。
R
20:15TFLL发送 FIFO 循环数据量。
该位指示发送 FIFOLOOP 中的有效 PCM 数据 量。
TFL 值 说明 0x00~ 0x20 TFL 发送 FIFO 循环中的有效 PCM 数据
R
14:8TFL发送 FIFO 数据量。
该位指示传输 FIFO 中有效 PCM 数据的数量。
TFL值 说明 0x00~ 0x40 TFL 发送 FIFO 中的有效 PCM 数据。
R
7Reserved写入无影响,读取为零。
R
6ROR接收 FIFO 上溢标志位。
该位指示接收 FIFO 是否发生超限。
ROR 说明 读取时,表示未发现上溢。
0 写入时自行清除。
读取时,表示数据已写入完整的接收 FIFO。
1 写入时,无影响。
RW
5TUR传输 FIFO 下溢标志位。
该位指示发送 FIFO 是否发生欠运行。
TUR 说明 读取时,表示未发现下溢。
0 写入时,自行清除。
读取时,表示已从空发送 FIFO 中读取数据。
1 写入时,不起作用。
RW
4RFS接收 FIFO 服务请求。
该位指示接收 FIFO 数据量是否低于接收 FIFO 阈 值,该阈值由 AICFR.RFTH 控制。
RFS 为 1 时,根据中断使能和DMA设 置,可能会触发中断或DMA请求。
RFS 说明 0 接收 FIFO 数据量低于 RFL 阈值。
1 接收 FIFO 数据量等于或高于 RFL 阈值。
R
3TFS发送 FIFO 服务请求。
该位表示发送 FIFO 数据量低于发送 FIFO 阈值,该 阈值由 AICFR.TFTH 控制。
当 TFS 为 1 时,根据中断使能和DMA设置, 可能会触发中断或DMA请求。
TFS 说明 0 传输 FIFO 电平超过 TFL 阈值。
1 传输 FIFO 电平处于或低于 TFL 阈值。
R
2TFLOR发送 FIFOLOOP 上溢标志位。
该位指示发送 FIFOLOOP 是否发生过超限 运行。
TFLOR 说明 读取时,表示未发现上溢。
0 写入时自行清除。
读取时,表示已从空发送 FIFOLOOP 读取数据。
1 写入时,不起作用。
RW
1TFLS发送 FIFO LOOP 服务请求。
该位指示发送 FIFOLOOP有效数据量是否低 于发送 FIFOLOOP阈值,发送 FIFOLOOP阈值由 AICSR.TFLL 控制。
当 TFLS 为 1 时,根据中断使能及DMA设置,可能会触发中断或DMA请求。
RFS 说明 0 发送 FIFO LOOP有效数据量低于 TFLL 阈 值。
1 发送 FIFO LOOP 有效数据量等于或高于 TFLS 阈值。
R
0Reserved写入无影响,读取为零。
R

AIC I2S/MSB-对齐状态寄存器

I2SSR 用于反映 I2S/MSB的 AIC 状态。它是一个只读寄存器。

I2SSRBASE + 0x001C
Bit313029282726252423222120191817161514131211109876543210
字段ReservedCHBSYTBSYRBSYBSYReserved
RST00000000000000000000000000000000
位名称说明RW
31:6Reserved写入无影响,读取为零。
R
5CHBSYAIC发送器在I2S/MSB对齐格式下处于忙碌状态(多通道状态) 0:AIC发送器部分空闲或已禁用;
1:AIC发送器部分当前正在发送或接收一帧数据。
R
4TBSYAIC发送器在I2S/MSB对齐格式下的忙状态指示。
0:表示AIC发送器部分处于空闲或禁用状态;
1:表示AIC发送器部分当前正在发送或接收一个数据帧。
R
3RBSYAIC接收器在I2S/MSB对齐格式下繁忙标志。
0:AIC接收器部分空闲或已禁用;
1:AIC接收器部分当前正在传输或接收一帧数据。
R
2BSYAIC I2S/MSB对齐格式忙标志位。
0:AIC控制器空闲或已禁用;
R
1:0Reserved写入无影响,读取为零。
R

AIC I2S/MSB-对齐时钟分频寄存器

I2SDIV 用于设置时钟分频器,以从SYS_CLK(系统时钟)生成I2S/MSB-justified格式所需的BIT_CLK(位时钟)。

I2SDIVBASE + 0x0030
Bit313029282726252423222120191817161514131211109876543210
字段ReservedIDVReservedDVReserved
RST00000000000001000000000000000100
位名称说明RW
31:25Reserved写入无影响,读取为零。
R
24:17IDV音频 IBIT_CLK 时钟分频值减去 1。
I2SDIV.IDV 用于控制 通过对 SYS_CLK分频来生成IBIT_CLK。
分频值可以是偶数或奇数, I2SDIV.IDV 应设置为分频值减去 1。
在 AIC 中,IBIT_CLK 频率固定 为 64fS,其中 fS 为音频采样频率。
I2SDIV.IDV 取决于 SYS_CLK 频率 fSYS_CLK,该频率根据内部 CODEC 的要求和内部 PLL 频率 进行选择。
更多说明请参阅 1.4.10 串行音频时钟和采样频率。
RW
16:9Reserved写入无影响,读取为零。
R
8:1DV音频 BIT_CLK 时钟分频值减去 1。
I2SDIV.DV 用于控制 通过对 SYS_CLK 分频来生成 BIT_CLK。
分频值可以是偶数或奇数, I2SDIV.IDV 应设置为分频值减去 1。
在 AIC 中,BIT_CLK 频率固定 为 64fS,其中 fS 为音频采样频率。
I2SDIV.DV 取决于 SYS_CLK 频 率 fSYS_CLK,该频率根据内部 CODEC 的要求和内部 PLL 频率进 行选择。
更多说明请参阅 1.4.10 串行音频时钟和采样频率。
RW
0Reserved写入无影响,读取为零。
R

AIC FIFO 数据端口寄存器

AICDR 在写入时充当发送 FIFO 的数据输入端口,在读取时充当接收 FIFO 的数据输出端口,每次操作一个音频采样。FIFO 的宽度为 24 位。小于 24 位的音频采样大小 N 位于 最低有效位(LSB) 的N 个比特中。在 I2S/MSB-justified 时,采样大小由 I2SCR.WL 指定。在 I2S/MSB-justified 中,左声道样本优先于右声道样本。

需要注意,在执行程序读写操作时,应监控状态寄存器以确保 FIFO 中有足够的空间容纳数据。此过程在 DMA 模式下会自动处理。

AICDRBASE + 0x0034
Bit313029282726252423222120191817161514131211109876543210
字段ReservedDATA
RST00000000000000000000000000000000
位名称说明RW
31:24Reserved写入无影响,读取为零。
R
23:0DATAFIFO 端口。
写入时,数据被推送到发送 FIFO。
读取时,数据从接 收 FIFO 中弹出。
RW

AIC Loop 数据寄存器

AICLR 在读取时充当从TFIFOLOOP弹出数据的端口。

AICLRBASE + 0x0038
Bit313029282726252423222120191817161514131211109876543210
字段ReservedLOOP_DATA
RST????????????????????????????????
位名称说明RW
31:24Reserved写入无影响,读取为零。
R
23:0LOOP_DATAFIFO 端口。
从该端口读取数据时,数据会从 TFIFO_LOOP 中弹出。
R

AIC TFIFO LOOP 寄存器

AICTFLR 用于控制 TFIFO LOOP 阈值。

AICTFLRBASE + 0x003C
Bit313029282726252423222120191817161514131211109876543210
字段ReservedTFLTH
RST00000000000000000000000000001000
位名称说明RW
31:4Reserved写入无影响,读取为零。
R
3:0TFLTHTFIFOLOOP 阈值(用于中断或DMA请求)。
TFLTH 有效值为 0~ 15。
该值代表 (TFLTH+1) *2 的阈值。
当 AICSR.TFLL 所指示的发送 FIFOLOOP中的样本数大于或等于阈值时,AICSR.TFLS 将被置位。
TFLTH 值越大,DMA/中断请求频率越低,但 TFIFOLOOP 溢出的 风险越大。
最佳值取决于具体系统。
RW