Edit online

寄存器描述

11 Apr 2024
Read time: 17 minute(s)

0x000 I2S_CTL

默认值:0x00060000 I2S 控制(I2S Control)
位域 类型 默认值 描述
31:19 - - -
18 R/W 0x1 BCLK_OUTBCLK
输出输入使能
  • 0x0:BCLK 为输入信号
  • 0x1:BCLK 为输出信号
17 R/W 0x1 LRCK_OUTLRCK
输出输入使能
  • 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:全局模块使能

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

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

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:中断产生

0x010 I2S_RXFIFO

默认值:0x00000000 I2S RXFIFO 寄存器(I2S RXFIFO)
位域 类型 默认值 描述
31:0 R 0x0 RX_DATA

RXFIFO 的数据从这里读出,左通道先读,然后是右通道。

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 TXIMTXFIFO 输入模式
  • 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]}

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)计数

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 发送数据下溢出中断 INT 使能
  • 0x0:禁止中断
  • 0x1:使能中断
5 R/W 0x0 TXOI_EN
TXFIFO 发送数据上溢出中断 INT 使能
  • 0x0:禁止中断
  • 0x1:使能中断
4 R/W 0x0 TXEI_EN
TXFIFO 发送数据空中断 INT 使能
  • 0x0:禁止中断
  • 0x1:使能中断
3 R/W 0x0 RX_DRQ
RXFIFO 接收有用数据的 DRQ 请求
  • 0x0:禁止请求
  • 0x1:使能请求
2 R/W 0x0 RXUI_EN
RXFIFO 接收数据下溢出中断 INT 使能
  • 0x0:禁止中断
  • 0x1:使能中断
1 R/W 0x0 RXOI_EN
RXFIFO 接收数据上溢出中断 INT 使能
  • 0x0:禁止中断
  • 0x1:使能中断
0 R/W 0x0 RXAI_EN
RXFIFO 接收有用数据中断 INT 使能
  • 0x0:禁止中断
  • 0x1:使能中断

0x020 I2S_TXFIFO

默认值:0x00000000 I2S TXFIFO 寄存器(I2S TXFIFO)
位域 类型 默认值 描述
31:0 W 0x0 TX_DATA

TXFIFO 的数据需从这里写入,左通道的数据先写,然后是右通道的数据。

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

0x028 I2S_TX_CNT

默认值:0x00000000 I2S 发送计数器寄存器(I2S Transmit Counter)
位域 类型 默认值 描述
31:9 R/W 0x0 TX_CNT

TX Sample Counter,传送至 TXFIFO 的采样点数据的计数器。当一个采样点写入 TXFIFO,这里自增 1。这里可以在任意时间写入任意初始值。

0x02C I2S_RX_CNT

默认值:0x00000000 I2S 发送计数器寄存器(I2S Transmit Counter)
位域 类型 默认值 描述
31:9 R/W 0x0 RX_CNT

RX Sample Counter,传送至 RXFIFO 的采样点数据的计数器。当一个采样点写入 RXFIFO,这里自增 1。这里可以在任意时间写入任意初始值。

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_NUMRX 的 SLOT 数量
  • 0x0:1x SLOT
  • 0x1:2x SLOT
  • 0xF:16x SLOT
3:0 R/W 0x0 TX_SLOT_NUMTX 的 SLOT 数量
  • 0x0:1x SLOT
  • 0x1:2x SLOT
  • 0xF:16x SLOT

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:通道使能

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 个采样点数据

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 个采样点数据

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

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 个采样点数据

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_MA
PRX0 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 个采样点数据

0x074 VERSION

默认值:0x00000100 I2S 版本号(VERSION)
位域 类型 默认值 描述
31:0 RO 0x00000100 Version (模块版本号)

采用 BCD 码显示,V1.0