对目前工作中遇到的mic录音遇到的一系列问题做个相关总结。
在mid项目中,对于audio codec来说,有3个需要调试,speaker,headphone,micphone。
在这里把micphone中的问题做一个总结。
1 mic录音没有数据
这个问题得从以下几个方面来查找原因:
1)I2S的MCLK, BCLK, LRCLK, I2S_IN的pinmux是否配置正确,即这几个pin的信号是否正常,这个可以用示波器看一下波形。
2)mic硬件通路是否正常,是否有元器件没有焊接。之前在项目调试过程中就遇到一个mic_bias的电容没有焊接,导致录到文件全是静音。
3)mic 的 audio codec 驱动的audio path是否正常。
2 mic录音能录到数据,但是都是静音。
目前遇到的原因有以下两个方面
1)mic_bias没有,这样mic没有偏置电压,mic无法正常录到有效波形。
2)audio codec的输入增益太小,即mic pga的增益和volume
3 mic录到的数据噪音比较大。
目前遇到的情况有以下几种:
1) mic增益调的太大,尤其是PGA gain。
2) cpu 的BCLK和audio codec的工作方式不一致,如下图,是rt5616的两种模式。一个是在BCLK的下降沿开始采集数据,一个是在上升沿采集数据。在machine层调用snd_soc_dai_set_fmt的时候要注意一下
3) LCD 背光clock的影响,我们人耳能听到的声音是20-20kHZ,当时LCD的BL_PWM频率是1Khz,因此录音的时候总会有这个干扰,
把这个频率调到20khz就可以了
4) 直接用apk录音效果很好,但是camera录像效果很差,这个当时查找了各个方面的原因,才发现是camera的排线压到mic线,产生了干扰。
当时的解决方法是把mic线做成双绞线,并且避开camera的排线。
4 mic录音声音小的问题。
这个是经常会遇到的问题,在这里我们不能单单的增加mic增益,因为增加mic增益的同时也会增加底噪。感觉mic录音小有2个方面,一方面可能mic
增益是很小,另一方面还和speaker的音量有关。
******************************欢迎各位交流指正**********************************