记WM8962芯片声音调试,默认speaker音量太小

首先说wm8962芯片就是Ultra-Low Power Stereo CODEC with Audio Enhancement
DSP, 1W Stereo Class D Speaker Drivers and Ground
Referenced Headphone Drivers

驱动力不大

但是看wm8962芯片手册里有说它自带一个D类功放在单声道模式下

关键字:BTL

搜索文档BTL

找到接法

然后找到

以及

找这个东西注意关键字  class D Speaker

然后我们来看音频芯片的代码,

芯片代码分两部分

一部分在

sound/soc/fsl/imx-wm8962.c

一部分在

sound/soc/codecs/wm8962.c

我们要看的为

codec下的wm8962.c

搜索R49

正好看到
{ 49, 0x0010 },   /* R49    - Class D Control 1 */

 { 51, 0x0003 },   /* R51    - Class D Control 2 */

参照我们之前的那两张图,将他们的值修改为一下

 { 49, 0x00D0 },   /* R49    - Class D Control 1 */

 { 51, 0x0007 },   /* R51    - Class D Control 2 */

这就配置好了D类功放,然后我们就要寻找如何打开单声道模式了

搜索mono

突然发现有个wm8962_set_pdata_from_of内有句

    if (of_property_read_bool(np, "spk-mono"))
        pdata->spk_mono = true;
 

很显然,这是从设备树节点中判断是否该打开单声道模式

我们在设备树wm8962节点中加入spk-mono属性

编译,烧写,speaker声音明显变大

测试录音常见步骤:

拔掉mic开始录音,看是否有杂音(如果有杂音,考虑mux和硬体)

单声道如果不纯净,看codec的配置和mic偏置(bias)

最后才去看filter

猜你喜欢

转载自my.oschina.net/u/3142241/blog/861562