Edit online

编程指南

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

    接口信号配置:

    • I2S_CTL寄存器

      bclk_out = 1; // BCLK为输出信号

      lrck_out = 1; //LRCK为输出信号

      dout0_en = 1; //DOUT0输出使能

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

      mode_sel = 0x1; //I2S模式

    • I2S_FMT0寄存器

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

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

      bclk_polarity = 0x0; //DOUT在BCLK的下降沿发送数据

      sr = 0x3; //采样点的数据精度为16bit

      sw = 0x7; //通道位宽设定为32bit,配置与lrck_period一致

    • I2S_FMT1寄存器

      tx_mls = 0x0; //最高比特MSB先发送

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

      tx_pdm = 0x0; //线性PCM数据

    • I2S_TX0CHSEL寄存器

      tx0_offset = 0x1; //1x BCLK偏移,实现I2S格式

      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读取的第二个样点,为右声道数据

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

    接口信号配置:

    • I2S_CTL寄存器

      bclk_out = 1; // BCLK为输出信号

      lrck_out = 1; //LRCK为输出信号

      dout0_en = 1; //DOUT0输出使能

    格式配置,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读取的第二个样点,为右声道数据