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

MTK6577+Android之音频(audio)移植相关推荐

  1. mtk+android+之mt6577驱动笔记,MTK6577+Android之音频(audio)移植

    MTK6577+Android之音频(audio)移植 备注:audio PA音频功放(power amplifier) 先借用<Y1MT6577 design notice V0.1>关 ...

  2. Android 音频(Audio)架构

    一.概述 Android 的音频硬件抽象层 (HAL) 可将 android.media 中特定于音频的较高级别的框架 API 连接到底层音频驱动程序和硬件.本部分介绍了有关提升性能的实现说明和提示. ...

  3. Android下音频tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)--------mark详细

    Android下音频tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo) 2017年05月29日 10:02:03 songze_lee 阅读数:10224更多 ...

  4. 【Android 高性能音频】Oboe 音频流打开后 耳机 / 音箱 插拔事件处理 ( 动态注册广播接收者监听耳机插拔事件 | 重新打开 Oboe 音频流 )

    文章目录 一.动态注册广播接收者监听耳机插拔事件 二.jni 层的 Oboe 播放器代码 ( 重新打开 Oboe 音频流 ) 三.相关资料 基于 [Android 高性能音频]Oboe 开发流程 ( ...

  5. 【Android 高性能音频】Oboe 开发流程 ( Oboe 音频帧简介 | AudioStreamCallback 中的数据帧说明 )

    文章目录 一.音频帧概念 二.AudioStreamCallback 中的音频数据帧说明 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Started ② ...

  6. 【Android 高性能音频】Oboe 播放器开发 ( 为 OpenSL ES 配置参数以获得最佳延迟 | Oboe 音频流 | Oboe 音频设备 )

    文章目录 一.获得最佳延迟 二.Oboe 音频流 三.Oboe 音频设备 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Started ② Oboe 全指 ...

  7. 【Android 高性能音频】Oboe 开发流程 ( Oboe 完整代码示例 )

    文章目录 一.GitHub 地址 二.Oboe C++ 代码 三.日志封装 四.Activity 代码 五.AndroidManifest.xml 配置文件 六.CMakeLists.txt 构建脚本 ...

  8. 【Android 高性能音频】Oboe 开发流程 ( 检查 Oboe 音频流属性 | 开始播放 | 停止播放 | 关闭 Oboe 音频流 | 重新配置 Oboe 音频流属性 )

    文章目录 一.检查 Oboe 音频流属性 二.开始播放 三.停止播放 四.关闭音频流 五.重新配置 Oboe 音频流属性 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : G ...

  9. 【Android 高性能音频】Oboe 开发流程 ( 创建并设置 AudioStreamCallback 对象 | 打开 Oboe 音频流 | 日志封装 logging_macros.h )

    文章目录 一.创建并设置 AudioStreamCallback 对象 二.打开 Oboe 音频流 三.日志封装 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getti ...

  10. 【Android 高性能音频】Oboe 开发流程 ( 包含头 Oboe 头文件 | 创建音频流 | 设置音频流 | 音频流回调类 AudioStreamCallback )

    文章目录 一.包含头 Oboe 头文件 二.音频流构建器 AudioStreamBuilder 三.音频流回调 AudioStreamCallback Oboe GitHub 主页 : GitHub/ ...

最新文章

  1. modlesim使用
  2. CoordinatorLayout 之深入理解
  3. 2018年聊天机器人状态报告
  4. 大写的服!用耳朵也能写代码?盲人程序员自学编程成为全栈工程师
  5. Edit Control读取与写入踩坑实例与使用方法
  6. NetBpm 组织架构(4)
  7. 257. 二叉树的所有路径 golang
  8. SAP License:SAP问题二则
  9. C# DataSet和DataTable详解
  10. 又联考了一场,感觉自己好菜啊,T1没写出来,后来花了一个早上调试。QAQ。最后发现是个-1还有取模没打。。。TAT。。。难受极了!!!...
  11. 200 行 C 代码实现插件式 NOSQL 存储服务器(一)
  12. 带你玩转Visual Studio——带你高效开发
  13. 1.4 Documents,Fields和Schema设计--目录
  14. Possible missing firmware
  15. iOS 截屏 长图 拼图
  16. 爬虫python下载电影_python爬虫--爬取某网站电影下载地址
  17. vue打包项目及Failed to load resource: net::ERR_FILE_NOT_FOU 或者 static/css/chunk-elementUI.d199d944.
  18. wps ppt word 双屏幕同时浏览技巧
  19. Mapgis技巧篇1
  20. 查看电脑安装的Office是32位还是64位的

热门文章

  1. 方正飞鸿ES2007SOA工作流开发平台视频演示材料目录
  2. android怎么更换播放器,android 播放器切换 出错
  3. 通过HOOK获取QQ游戏登录密码
  4. java版12306抢票_GitHub - a1647517212/J12306: 12306抢票程序JAVA版
  5. 【洛谷】P3537 [POI2012]SZA-Cloakroom
  6. 【Python】从堆糖爬取图片Demo
  7. vue+element 下载or批量下载.mp3文件
  8. [Hulu] 数组最大价值
  9. android nexus 10 刷机,谷歌Nexus 10 recovery卡刷rom 刷机教程
  10. Linux redhat 5.7 安装 Teamviewer7