9.9.4. 寄存器描述
9.9.4.1. 0x000 I2S_CTL
默认值:0x00060000 |
I2S控制(I2S Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:19 |
- |
- |
- |
18 |
R/W |
0x1 |
BCLK_OUT
BCLK输出输入使能
0x0: BCLK为输入信号
0x1: BCLK为输出信号
|
17 |
R/W |
0x1 |
LRCK_OUT
LRCK输出输入使能
0x0: LRCK为输入信号
0x1: LRCK为输出信号
|
16:9 |
- |
- |
- |
8 |
R/W |
0x0 |
DOUT0_EN
0x0:DOUT0关闭,高阻态
0x1:DOUT0使能
|
7 |
- |
- |
- |
6 |
R/W |
0x0 |
OUT_MUTE
输出静音使能
0x0:正常传输模式
0x1:DOUT强制输出0
|
5:4 |
R/W |
0x0 |
Mode SEL
模式选择
0x0: PCM模式(offset = 0, Long Frame模式;offset = 1, Short Frame模式)
0x1:Left Mode(offset = 0,Left Justified模式;offset = 1,I2s模式)
0x2:Right Justified模式
0x3:Reserved
|
3 |
R/W |
0x0 |
LOOP
Loop Back测试
0x0:正常工作模式
0x1:Loop Back测试模式
|
2 |
R/W |
0x0 |
TXEN
发送模块使能
0x0:发送模块禁止
0x1:发送模块使能
|
1 |
R/W |
0x0 |
RXEN
接收模块使能
0x0:接收模块禁止
0x1:接收模块使能
|
0 |
R/W |
0x0 |
GEN
全局使能
0x0:全局模块禁止
0x1:全局模块使能
|
9.9.4.2. 0x004 I2S_FMT0
默认值:0x00000033 |
I2S格式0寄存器(I2S Format 0) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31 |
- |
- |
- |
30 |
R/W |
0x0 |
LRCK_WIDTH
选择PCM long frame/short frame
0x0:Short Frame模式
0x1:Long Frame模式
|
29:20 |
- |
- |
- |
19 |
R/W |
0x0 |
LRCK_POLARITY
选择LRCK的左右通道极性
0x0:I2S模式下,LRCK低电平表示左声道;PCM模式下,LRCK下降沿
有效进行数据传输
0x1:I2S模式下,LRCK高电平表示左声道;PCM模式下,LRCK上升沿
有效进行数据传输
|
18 |
- |
- |
- |
17:8 |
R/W |
0x0 |
LRCK_PERIOD
LRCK的数据时间长度,在PCM模式下,这里是左右声道的数据时间
长度,在I2S模式下,这里是左声道或右声道的数据时间长度。
0x0:1x BCLK时间长度
0x1:2x BCLK时间长度
0x2:3x BCLK时间长度
…
0x3FF:1024x BCLK时间长度
|
7 |
R/W |
0x0 |
BCLK_POLARITY
选择BCLK的工作模式
0:正常模式,DOUT在BCLK的下降沿发送数据
1:反相模式,DOUT在BCLK的上升沿发送数据
|
6:4 |
R/W |
0x3 |
SR
Sample Resolution采样点精度配置
0x0:Reserved
0x1:8-bit
0x2:12-bit
0x3:16-bit
0x4:20-bit
0x5:24-bit
0x6:28-bit
0x7:32-bit
|
3 |
R/W |
0x0 |
EDGE_TRANSFER
DOUT和DIN收发数据边沿配置
0x0:DOUT和DIN采用不同的BCLK边沿进行收发
0x1:DOUT和DIN采用相同的BCLK边沿进行收发
|
2:0 |
R/W |
0x3 |
SW
Slot Width Select 通道位宽设定
0x0:Reserved
0x1:8-bit
0x2:12-bit
0x3:16-bit
0x4:20-bit
0x5:24-bit
0x6:28-bit
0x7:32-bit
|
9.9.4.3. 0x008 I2S_FMT1
默认值:0x00000030 |
I2S格式1寄存器(I2S Format 1) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x0 |
RX MLS
MSB/LSB First Select
0x0:最高比特MSB先接收
0x1:最低比特LSB先接收
|
6 |
R/W |
0x0 |
TX MLS
MSB/LSB First Select
0x0:最高比特MSB先发送
0x1:最低比特LSB先发送
|
5:4 |
R/W |
0x3 |
SEXT
Slot扩展方式(在SR<Slot Width的情况下)
0x0:Zeros or Audio gain padding at LSB Position
0x1:以MSB符号位填充
0x2:Reserved
0x3:以0填充
|
3:2 |
R/W |
0x0 |
RX_PDM
接收PCM数据模式
0x0:线性PCM
0x1:Reserved
0x2:8-bit u-law
0x3:8-bit A-law
|
1:0 |
R/W |
0x0 |
TX_PDM
发送PCM数据模式
0x0:线性PCM
0x1:Reserved
0x2:8-bit u-law
0x3:8-bit A-law
|
9.9.4.4. 0x00C I2S_INT_STS
默认值:0x00000010 |
I2S中断状态寄存器(I2S Interrupt Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:7 |
- |
- |
- |
6 |
R/W1C |
0x0 |
TXU_INT
TXFIFO下溢出中断
0x0:中断未产生
0x1:中断产生
|
5 |
R/W1C |
0x0 |
TXO_INT
TXFIFO上溢出中断
0x0:中断未产生
0x1:中断产生
|
4 |
R/W1C |
0x1 |
TXE_INT
TXFIFO的空中断产生(小于触发阈值TXTL)
0x0:中断未产生
0x1:中断产生
|
3 |
- |
- |
- |
2 |
R/W1C |
0x0 |
RXU_INT
RXFIFO下溢出中断产生
0x0:中断未产生
0x1:中断产生
|
1 |
R/W1C |
0x0 |
RXO_INT
RXFIFO上溢出中断产生
0x0:中断未产生
0x1:中断产生
|
0 |
R/W1C |
0x0 |
RXA_INT
RXFIFO接收到有用数据(大于触发阈值RXTL+1)中断产生
0x0:中断未产生
0x1:中断产生
|
9.9.4.5. 0x010 I2S_RXFIFO
默认值:0x00000000 |
I2S RXFIFO寄存器(I2S RXFIFO) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
R |
0x0 |
RX_DATA
RXFIFO的数据从这里读出,左通道先读,然后是右通道。
|
9.9.4.6. 0x014 I2S_FIFO_CTL
默认值:0x000400F0 |
I2S FIFO控制寄存器(I2S FIFO Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:26 |
- |
- |
- |
25 |
R/WAC |
0x0 |
FTX
清除TXFIFO,写1清除TXFIFO,自动清0
|
24 |
R/WAC |
0x0 |
FRX
清除RXFIFO,写1清除RXFIFO,自动清0
|
23:19 |
- |
- |
- |
18:12 |
R/W |
0x40 |
TXTL
TXFIFO触发阈值,在TXFIFO的数据小于TXTL,将触发中断以及DMA
请求。
|
11:10 |
- |
- |
- |
9:4 |
R/W |
0xF |
RXTL
RXFIFO触发阈值,在RXFIFO的数据大于(RXTL+1),将触发中断
以及DMA请求。
|
3 |
- |
- |
- |
2 |
R/W |
0x0 |
TXIM
TXFIFO输入模式
0x0:发送有效数据占据高位,例如TXFIFO[31:0] = {APB_WDTATA[31:12],12’h0}
0x1:发送有效数据占据低位,例如TXFIFO[31:0] = {12’h0,APB_WDTATA[19:0] }
|
1:0 |
R/W |
0x0 |
RXOM
RXFIFO输出模式
0x0:RXFIFO输出数据低位填充0
例如APB_RDATA = {RXFIFO[31:12],12’h0}
0x1:RXFIFO输出数据高位填充MSB符号位
例如APB_RDATA = {12*RXFIFO[31],RXFIFO[31:12]}
0x2:截取RXFIFO的高16-bit数据,低16位补充0
例如APB_RDATA = {RXFIFO[31:16],16’h0}
0x3:截取RXFIFO的低16-bit数据,高16位补充MSB
例如APB_RDATA = {16*RXFIFO[31],RXFIFO[31:16]}
|
9.9.4.7. 0x018 I2S_FIFO_STS
默认值:0x10800000 |
I2S FIFO状态寄存器(I2S FIFO Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:29 |
- |
- |
- |
28 |
R |
0x1 |
TXE
TX FIFO空状态
0x0:TXFIFO空间满,无空间存放新的采样点数据
0x1:TXFIFO空间未满,可以存放多于1个采样点数据(大于1word)
|
27:24 |
- |
- |
- |
23:16 |
R |
0x0 |
TXE_CNT
TX FIFO可用空间(Word)计数
|
15:9 |
- |
- |
- |
8 |
R |
0x0 |
RXA
RXFIFO接收有用数据状态
0x0:RXFIFO没有可用的数据
0x1:FIFO存在超过1个采样点数据(大于1word)
|
7 |
- |
- |
- |
6:0 |
R |
0x0 |
RXA_CNT
RXFIFO接收的有用数据(Word)计数
|
9.9.4.8. 0x01C I2S_INT_EN
默认值:0x00000000 |
I2S中断使能寄存器(I2S Interrupt Enable) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x0 |
TX_DRQ_EN
TXFIFO发送数据的DRQ请求
0x0:禁止请求
0x1:使能请求
|
6 |
R/W |
0x0 |
TXUI_EN
TXFIFO发送数据下溢出中断TXUI_INT使能
0x0:禁止中断
0x1:使能中断
|
5 |
R/W |
0x0 |
TXOI_EN
TXFIFO发送数据上溢出中断TXOI_INT使能
0x0:禁止中断
0x1:使能中断
|
4 |
R/W |
0x0 |
TXEI_EN
TXFIFO发送数据空中断TXEI_INT使能
0x0:禁止中断
0x1:使能中断
|
3 |
R/W |
0x0 |
RX_DRQ
RXFIFO接收有用数据的DRQ请求
0x0:禁止请求
0x1:使能请求
|
2 |
R/W |
0x0 |
RXUI_EN
RXFIFO接收数据下溢出中断RXUI_INT使能
0x0:禁止中断
0x1:使能中断
|
1 |
R/W |
0x0 |
RXOI_EN
RXFIFO接收数据上溢出中断RXOI_INT使能
0x0:禁止中断
0x1:使能中断
|
0 |
R/W |
0x0 |
RXAI_EN
RXFIFO接收有用数据中断RXA_INT使能
0x0:禁止中断
0x1:使能中断
|
9.9.4.9. 0x020 I2S_TXFIFO
默认值:0x00000000 |
I2S TXFIFO寄存器(I2S TXFIFO) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
W |
0x0 |
TX_DATA
TXFIFO的数据需从这里写入,左通道的数据先写,然后是右通道的数据。
|
9.9.4.10. 0x024 I2S_CLK_DIV
默认值:0x00000000 |
I2S时钟分频寄存器(I2S Clock Divide) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:9 |
- |
- |
- |
8 |
R/W |
0x0 |
MCLKO_EN
使能MCLK输出
0x0:MCLK禁止输出
0x1:MCLK使能输出
|
7:4 |
R/W |
0x0 |
BCLKDIV
BCLK的分频系数
0x0:Reserved
0x1:除1
0x2:除2
0x3:除4
0x4:除6
0x5:除8
0x6:除12
0x7:除16
0x8:除24
0x9:除32
0xA:除48
0xB:除64
0xC:除96
0xD:除128
0xE:除176
0xF:除192
|
3:0 |
R/W |
0x0 |
MCLKDIV
MCLK分频系数
0x0:Reserved
0x1:除1
0x2:除2
0x3:除4
0x4:除6
0x5:除8
0x6:除12
0x7:除16
0x8:除24
0x9:除32
0xA:除48
0xB:除64
0xC:除96
0xD:除128
0xE:除176
0xF:除192
|
9.9.4.11. 0x028 I2S_TX_CNT
默认值:0x00000000 |
I2S发送计数器寄存器(I2S Transmit Counter) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:9 |
R/W |
0x0 |
TX_CNT
TX Sample Counter,传送至TXFIFO的采样点数据的计数器。当
一个采样点写入TXFIFO,这里自增1。这里可以在任意时间写入任
意初始值。
|
9.9.4.12. 0x02C I2S_RX_CNT
默认值:0x00000000 |
I2S发送计数器寄存器(I2S Transmit Counter) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:9 |
R/W |
0x0 |
RX_CNT
RX Sample Counter,传送至RXFIFO的采样点数据的计数器。当
一个采样点写入RXFIFO,这里自增1。这里可以在任意时间写入任
意初始值。
|
9.9.4.13. 0x030 I2S_CH_CFG
默认值:0x00000000 |
I2S通道配置寄存器(I2S Channel Configure) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:10 |
- |
- |
- |
9 |
R/W |
0x0 |
TX_SLOT_HIZ
0x0:Normal mode for the last half cycle of BCLK in the slot
0x1:Turn to Hi-Z state for the last half cycle of BCLK in the slot
|
8 |
R/W |
0x0 |
TX_STATE
在不需要的Slot上发送0/设置高阻态
0x0:在不需要传输的slot上发送0
0x1:在不需要传输的slot上设置高阻态
|
7:4 |
R/W |
0x0 |
RX_SLOT_NUM
RX的TDM SLOT 数量
0x0:1x SLOT
0x1:2x SLOT
…
0xF:16x SLOT
|
3:0 |
R/W |
0x0 |
TX_SLOT_NUM
TX的TDM SLOT 数量
0x0:1x SLOT
0x1:2x SLOT
…
0xF:16x SLOT
|
9.9.4.14. 0x034 I2S_TX0CH_SEL
默认值:0x00000000 |
I2S TX0通道选择寄存器(I2S TX0 Channel Select) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:22 |
- |
- |
- |
21:20 |
R/W |
0x0 |
TX0_OFFSET
配置DATA与LRCK的偏移量,单位为BCLK
0x0:无偏移
0x1:1x BCLK偏移
0x2:2x BCLK偏移
0x3:3x BCLK偏移
|
19:16 |
R/W |
0x0 |
TX0_CHSEL
配置TX0的TDM模式通道数量
0x0:1x 通道
0x1:2x 通道
…
0xF:16x 通道
|
15:0 |
R/W |
0x0 |
TX0_CHEN
配置TX0的TDM模式通道使能,BIT[15:0]分别对应通道15~0的使能。
0x0:通道禁止
0x1:通道使能
|
9.9.4.15. 0x044 I2S_TX0CH_MAP0
默认值:0x00000000 |
I2S TX0通道映射0寄存器(I2S TX0 Channel Map0) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:28 |
R/W |
0x0 |
TX0_CH15_MAP
TX0 CH15的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
27:24 |
R/W |
0x0 |
TX0_CH14_MAP
TX0 CH14的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
23:20 |
R/W |
0x0 |
TX0_CH13_MAP
TX0 CH13的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
19:16 |
R/W |
0x0 |
TX0_CH12_MAP
TX0 CH12的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
15:12 |
R/W |
0x0 |
TX0_CH11_MAP
TX0 CH11的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
11:8 |
R/W |
0x0 |
TX0_CH10_MAP
TX0 CH10的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
7:4 |
R/W |
0x0 |
TX0_CH9_MAP
TX0 CH9的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
3:0 |
R/W |
0x0 |
TX0_CH8_MAP
TX0 CH8的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
9.9.4.16. 0x048 I2S_TX0CH_MAP1
默认值:0x00000000 |
I2S TX0通道映射1寄存器(I2S TX0 Channel Map1) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:28 |
R/W |
0x0 |
TX0_CH7_MAP
TX0 CH7的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
27:24 |
R/W |
0x0 |
TX0_CH6_MAP
TX0 CH6的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
23:20 |
R/W |
0x0 |
TX0_CH5_MAP
TX0 CH5的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
19:16 |
R/W |
0x0 |
TX0_CH4_MAP
TX0 CH4的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
15:12 |
R/W |
0x0 |
TX0_CH3_MAP
TX0 CH3的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
11:8 |
R/W |
0x0 |
TX0_CH2_MAP
TX0 CH2的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
7:4 |
R/W |
0x0 |
TX0_CH1_MAP
TX0 CH1的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
3:0 |
R/W |
0x0 |
TX0_CH0_MAP
TX0 CH0的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
9.9.4.17. 0x064 I2S_RX0CH_SEL
默认值:0x00000000 |
I2S RX0通道选择寄存器(I2S RX0 Channel Select) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:22 |
- |
- |
- |
21:20 |
R/W |
0x0 |
RX0_OFFSET
配置DATA与LRCK的偏移量,单位为BCLK
0x0:无偏移
0x1:1x BCLK偏移
0x2:2x BCLK偏移
0x3:3x BCLK偏移
|
19:16 |
R/W |
0x0 |
RX0_CHSEL
配置RX0的TDM模式通道数量
0x0:1x 通道
0x1:2x 通道
…
0xF:16x 通道
|
15:0 |
- |
- |
- |
9.9.4.18. 0x068 I2S_RX0CH_MAP0
默认值:0x00000000 |
I2S RX0通道映射0寄存器(I2S RX0 Channel Map0) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:28 |
R/W |
0x0 |
RX0_CH15_MAP
RX0 CH15的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
27:24 |
R/W |
0x0 |
RX0_CH14_MAP
RX0 CH14的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
23:20 |
R/W |
0x0 |
RX0_CH13_MAP
RX0 CH13的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
19:16 |
R/W |
0x0 |
RX0_CH12_MAP
RX0 CH12的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
15:12 |
R/W |
0x0 |
RX0_CH11_MAP
RX0 CH11的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
11:8 |
R/W |
0x0 |
RX0_CH10_MAP
RX0 CH10的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
7:4 |
R/W |
0x0 |
RX0_CH9_MAP
RX0 CH9的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
3:0 |
R/W |
0x0 |
RX0_CH8_MAP
RX0 CH8的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
9.9.4.19. 0x06C I2S_RX0CH_MAP1
默认值:0x00000000 |
I2S RX0通道映射1寄存器(I2S RX0 Channel Map1) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:28 |
R/W |
0x0 |
RX0_CH7_MAP
RX0 CH7的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
27:24 |
R/W |
0x0 |
RX0_CH6_MAP
RX0 CH6的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
23:20 |
R/W |
0x0 |
RX0_CH5_MAP
RX0 CH5的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
19:16 |
R/W |
0x0 |
RX0_CH4_MAP
RX0 CH4的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
15:12 |
R/W |
0x0 |
RX0_CH3_MAP
RX0 CH3的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
11:8 |
R/W |
0x0 |
RX0_CH2_MAP
RX0 CH2的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
7:4 |
R/W |
0x0 |
RX0_CH1_MAP
RX0 CH1的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
3:0 |
R/W |
0x0 |
RX0_CH0_MAP
RX0 CH0的通道映射
0x0:第1个采样点数据
0x1:第2个采样点数据
…
0xF:第16个采样点数据
|
9.9.4.20. 0x074 VERSION
默认值:0x00000100 |
I2S 版本号(VERSION) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:0 |
RO |
0x100 |
Version(模块版本号)
采用BCD码显示,V1.00
|