编程指南
-
对于播放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读取的第二个样点,为右声道数据
-
-
对于播放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读取的第二个样点,为右声道数据
-