MTK6577+Android之音频(audio)移植
备注:audio PA音频功放(power amplifier)
先借用《Y1MT6577 design notice V0.1》关于MT6577系统框图:
图1
可知speaker是由MT6329(PMIC)来控制的
1. 硬件设计
1.1 喇叭
图2
这里采用了audio通道2和speaker通道2,HPRP(模拟GPIO引脚)是MTK6577的Earphone receiver signal for AUDIO_JACK_R(audio jack理解为耳机插座),
|
引脚 |
功能 |
MT6577 |
HPRP |
Earphone receiver signal for AUDIO_JACK_R |
MT6329 |
VBAT_SPK2 |
Speaker通道2的VBAT端 |
MT6329 |
SPK2_P |
Speaker通道2差分输出正极 |
MT6329 |
SPK2_N |
Speaker通道2差分输出负极 |
1.2 Mcrophone(麦克风)原理图设计
图3
|
引脚 |
功能 |
MT6577 |
VMIC |
麦克风偏置电压1.9V |
MIC头 |
MICP |
MIC头的正极 |
MIC头 |
MICN |
MIC头的负极 |
MT6577 |
AU_VIN0_P ---MICP0 |
Audio 0 in P for microphone |
MT6577 |
AU_VIN0_N--- MICN0 |
Audio 0 in N for microphone |
1.3 Handsetreceiver(手机接收器)
图4
|
引脚 |
功能 |
MT6577 |
HSP |
AUDIO_OUT_P for handset receiver |
MT6577 |
HSN |
AUDIO_OUT_N for handset receiver |
MT6329 |
VBI_P |
声音差分输入正极 |
MT6329 |
VBI_N |
声音差分输入负极 |
这是手机应用示例图,但目前我们设备没有引出音频插头,所以这里没有用到:
图5
为了更好理解音频这部分,借用《Y1MT6577 design notice V0.1》音频部分的一张图:
图6
1.4 总结
先给出上面MT6577和MT6329用到的音频接口引脚:
|
引脚 |
功能 |
MT6577 |
HPLP(输出) |
Earphone receiver signal for AUDIO_JACK_L(输出给耳机的左声道声音) |
MT6577 |
HPRP(输出) |
Earphone receiver signal for AUDIO_JACK_R |
MT6577 |
HSP(输出) |
AUDIO_OUT_P for handset receiver |
MT6577 |
HSN(输出) |
AUDIO_OUT_N for handset receiver |
MT6329 |
VBI_P(输入) |
Voice differential input(positive) |
MT6329 |
VBI_N(输入) |
Voice differential input(negative) |
1.4.1 MT6329音频部分框图
图7
Voice input:对应VBI_P和VBI_N部分。
Audio_L input:对应AUD1_P和AUD1_N
Audio_R input:对应AUD2_P和AUD2_N
SPKL:对应SPK1_P和SPK1_N
SPKR:对应SPK2_P和SPK2_N
Input MUX:可以选择MT6577的HSP、HSN;或是HPRP;或是HPLP作为输入,SPK1或是SPK2作为输出,为了更好理解,下面给出2in1 speaker应用的示例图,这里的2是指HSP与HSN作为音频输入;或是HPRP/HPLP作为音频输入,1是指1个喇叭。
图8
那么我们的产品应该设置CUSTOM_KERNEL_SOUND= amp_6329pmic_2in1_spk
1.4.2 MT6577音频部分
图9
立体声在录音时就是用两只话筒按左右声道录制的双声道音迹。在播放时也要严格的按左右声道分别放音,使录音时左声道录入的声音进入听者的左耳,右声道录入的声音进入右耳,这样,听者就会产生身临其境的感受,也就是产生了立体感。好的立体声,听者能辩别出声源的方位,和声源移动的过程。如果将耳机戴反了,耳朵可以听到声音,但立体声就辩别不出来了。所以戴耳机时要按左右声道戴,以取得听觉的立体声效果。
2. 软件实现
2.1 修改及编译
(1) 修改\mediatek\config\prj\ ProjectConfig.mk
MTK_SOUNDRECORDER_APP=no
改为MTK_SOUNDRECORDER_APP=yes
但这环境变量的值和喇叭是否能够发出声音无管,目前暂时还是设置为no。
CUSTOM_KERNEL_SOUND=amp_yad改为:
CUSTOM_KERNEL_SOUND=amp_6329pmic_2in1_spk
这里要根据实际的设计来选择,amp_yad是用外部PA的,amp_6329pmic_2in1_spk是采用PMIC MT6329的PA(内部PA),这个根据实际的设计来选择,这里的2in1可理解为听筒和免提一体,这部分可参考图8。
我这边有别人开发好的镜像文件,在我的系统基础上,我只更新音频可以正常发出声音的boot.img就能够正常了,但是我根据上面的修改之后经过下面一些尝试都还是没有声音:
1) ./mk rk,然后./mk bootimage,更新boot.img,还是没有声音。
2) ./mk rk--->./mk systemimage,更新system.img、secro.img、recovery.img和boot.img,还是没有声音
3) ./mk rub,更新uboot.bin,还是没有声音。
4) ./mk rpl,更新preloader.bin,还是没有声音。
后来实在没有思路了,就直接./mk r,然后更新所有生成的镜像文件,就OK了,很奇怪,先记录下来。
参考:
《Y1MT6577 design notice V0.1》
MTK Android 之MT6577驱动笔记
http://blog.csdn.net/cbk861110/article/details/9385439
MTK Android Driver:sound
http://blog.csdn.net/cbk861110/article/details/37054133