Edit online

编程指南

9 Oct 2023
Read time: 3 minute(s)
对于播放 48 KHz、16bit 的音源数据,采用 S 格式进行传输,初始化配置如下:
  1. 接口信号配置,I2S_CTL 寄存器相关参数值及描述如下:

    • bclk_out = 1, BCLK 为输出信号。

    • lrck_out = 1,LRCK 为输出信号。

    • dout0_en = 1,DOUT0 输出使能。

  2. 格式配置,I2S 格式:
    • I2S_CTL 寄存器

      mode_sel = 0x1,I2S 模式。

    • I2S_FMT0 寄存器

      lrck_polarity = 0x0,LRCK 低电平为左声道,高电平为右声道。

      lrck_period = 0x1f ,在 S 模式下,左/右声道的数据时间长度,这里配置为 32 * BCLK。

      bclk_polarity = 0x0,DOUT 在 BCLK 的下降沿发送数据。

      sr = 0x3,采样点的数据精度为 16bit。

      sw = 0x7,通道位宽设定为 32bit,配置与 period 一致。

    • I2S_FMT1 寄存器

      tx_mls = 0x0,最高比特 MSB 先发送。

      sext = 0x0,在 sr < sw 的情况下,在低位补 0。

      tx_pdm = 0x0,线性 PCM 数据。

    • I2S_TX0CHSEL 寄存器

      tx0_offset = 0x1,1x BCLK 偏移,实现 S 格式。

      tx0_chsel = 0x1, TDM 采用 2x 通道,1 路通道作为左声道,1 路通道作为右声道。

      tx0_chen = 0x3,TDM 使能通道 0 和通道 1。

    • I2S_TX0MAP1 寄存器

      tx0_ch0_map = 0x0,通道 0 映射 FIFO 读取的第一个采样点,为左声道数据。

      tx0_ch1_map = 0x1,通道 0 映射 FIFO 读取的第二个样点,为右声道数据。

对于播放 48 KHz、16bit 的音源数据,采用 PCM 格式 Short Frame 进行传输,初始化配置如下:

  1. 接口信号配置,I2S_CTL 寄存器相关参数值及描述如下:

    • bclk_out = 1, BCLK 为输出信号。

    • lrck_out = 1,LRCK 为输出信号。

    • dout0_en = 1,DOUT0 输出使能。

  2. PCM Short Frame 格式配置:
    • I2S_CTL 寄存器

      mode_sel = 0x0,PCM 模式

    • I2S_FMT0 寄存器

      pcm_fmt = 0x0,Short Frame 模式。

      lrck_polarity = 0x0,short Frame 模式下对应 LRCK 的下降沿触发数据传输。

      lrck_period = 0x3F,总的数据长度为 64x BCLK。

      bclk_polarity = 0x0,DOUT 在 BCLK 的下降沿发送数据。

      sr = 0x3,采样点的数据精度为 16bit。

      sw = 0x7,通道位宽设定为 32bit。

    • I2S_FMT1 寄存器

      tx_mls = 0x0,最高比特 MSB 先发送。

      sext = 0x0,在 sr < sw 的情况下,在低位补 0。

      tx_pdm = 0x0,线性 PCM 数据。

    • I2S_TX0CHSEL 寄存器

      tx0_offset = 0x1,1x BCLK 偏移。

      tx0_chsel = 0x1, TDM 采用 2x 通道,1 路通道作为左声道,1 路通道作为右声道。

      tx0_chen = 0x3,TDM 使能通道 0 和通道 1。

    • I2S_TX0MAP1 寄存器

      tx0_ch0_map = 0x0,通道 0 映射 FIFO 读取的第一个采样点,为左声道数据。

      tx0_ch1_map = 0x1,通道 0 映射 FIFO 读取的第二个样点,为右声道数据。