Edit online

寄存器描述

3 Mar 2025
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