欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【音频系列】——MTK6735模块耳机通道外接功放的处理

程序员文章站 2022-06-19 11:30:36
...

一、MTK6735如何使用外部功放

      使用外部功放(MTK6735内部有自带功放,一般为D类功放,根据代码显示,可以配置成A、B类)一般推荐外接cpu的AU_HPL或AU_HPR上,中间通过33nF的电容即可。这两个引脚是耳机的输出接口,如果接到SPKP/N上实际接到了MTK内部功放输出上,这样也可以正常使用,只是增益被两个功放放大了,音量增益上有所变化,可能引起不适。

【音频系列】——MTK6735模块耳机通道外接功放的处理

二、耳机通道外接功放(接在扬声器通道上不用修改),需要修改以下三个部分:

    1、 kernel config中,屏蔽掉CONFIG_MTK_SPEAKER,该定义即内部MTK功放的定义

    2、vendor/mediatek/proprietary/custom /xxxx(自己的项目)/ hal/audioflinger/audio/audio_custom_exp.h 

        该文件中的#define USING_CLASSD_AMP 修改成 USING_EXTAMP_HP  : 即将D类内部功放修改成外部功放

    3、要在dws 里面添加自己的功放控制引脚,将下述代码中的引脚号改为控制外部功放的实际引脚号(如果功放控制脚不由CPU控制,也可以不修改该处)

        AUD_pins_extamp_high: audexamphigh {

                pins_cmd_dat {

                        pins = <PINMUX_GPIO64__FUNC_GPIO64>;

                                slew-rate = <1>;

                                output-high;

                };

        };

        AUD_pins_extamp_low: audexamplow {

                pins_cmd_dat {

                        pins = <PINMUX_GPIO64__FUNC_GPIO64>;

                                slew-rate = <1>;

                                output-low;

                };

        };

        AUD_pins_extamp2_high: audexam2phigh {

                pins_cmd_dat {

                        pins = <PINMUX_GPIO64__FUNC_GPIO64>;

                                slew-rate = <1>;

                                output-high;

                };

        };

        AUD_pins_extamp2_low: audexamp2low {

                pins_cmd_dat {

                        pins = <PINMUX_GPIO64__FUNC_GPIO64>;

                                slew-rate = <1>;

三、所用MTK6735模块的特殊处理

     理论上扬声器与耳机的切换由系统自动识别:耳机插入自动切换到耳机,但是在本平台上,本SDK上,需要进行二、中几步的处理,声音才能从cpu的耳机接口出来,并且扬声器接口无声音输出(cpu上的接口,不是指扬声器,如果扬声器接在耳机通道上,也是可以有声音的)。这点可能因为我们所用的SDK有特殊处理或者模块电路上有处理(方案商提供的MT6735模块,模块含方案商自己设计的外围电路处理)