一.C6748支持的音频数据格式
1.首先是TDM格式.其中可以通过寄存器设置slot的数量以及延时的位数,
2.另一种是标准的i2S格式,如下图,在配置寄存器的时候,如果把slot数量配置成2,那么C6748的时钟就会相应的变成下图的格式.(如高亮部分说明)
二.C6748和音频ADC连接时需要注意的问题
我们的C6748在连接音频ADC的时候,有三个时钟管脚,分别是AHCLKR,ACLKR,AFSR.我们的ADC也有三个与时钟相关的管脚,分别是MCKI,BICK,LRCK,在连接的时候,我们的ADC一般都是用的从模式,也就是由我们的C6748给ADC提供相应的时钟,C6748的AHCLKR和ADC的MCKI都连接到晶振上面,然后ACLKR连接到ADC的BICK上面给ADC提供位时钟,,AFSR连接到LRCK上面给ADC提供帧时钟,其中C6748的ACLKR由AHCLKR经过分频得到,AFSR又是经过ACLKR分频得到.
我们的ADC一般都是用BCLK作为参考时钟,计算方式就是BCLK=采样率*通道数*每个通道的宽度=16000*4*32,一般是这样的.
下面说一下C6748和音频ADC连接时两个需要注意的问题.以下两个问题已经经过代码进行试验验证.
1.帧时钟问题,
在前面介绍C6748的TDM的格式的时候我们看到帧时钟显示高电平,然后是低电平,而如果我们的额音频ADC设置成下图Figure29的格式,也就是帧时钟先低后高的模式,那么这样连接时候也是能够采集到ADC的声音的,只不过这时候采集的顺序是R1,L2,R2,L1,相当于顺序乱了,这样通道的对应关系就乱了,
2.延时一位的问题
如果我们的C6748配置的TDM格式是延时一位的,也就是相对于帧时钟延时一个位时钟之后才传输数据,而我们的ADC配置的模式Figure28的模式,也就是数据相对于帧时钟没有延时,那么这个时候同样也是能够采集到音频数据的,只不过这时候采集的音频数据相对于真实数据最高位错了,这样导致的后果就是音量比实际音量大或小.