【音频系列】——MTK6735模块耳机通道外接功放的处理
一、MTK6735如何使用外部功放
使用外部功放(MTK6735内部有自带功放,一般为D类功放,根据代码显示,可以配置成A、B类)一般推荐外接cpu的AU_HPL或AU_HPR上,中间通过33nF的电容即可。这两个引脚是耳机的输出接口,如果接到SPKP/N上实际接到了MTK内部功放输出上,这样也可以正常使用,只是增益被两个功放放大了,音量增益上有所变化,可能引起不适。
二、耳机通道外接功放(接在扬声器通道上不用修改),需要修改以下三个部分:
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模块,模块含方案商自己设计的外围电路处理)
上一篇: 电信IPTV直播源抓取
下一篇: 服务注册发现-Eureka