- 博客(83)
- 资源 (1)
- 收藏
- 关注

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_四、硬件性能测试
一、测试整机的硬件性能-密封性-自由场1. 在自由场内, 播放 80dBSPL 粉红噪声, 正常录取每个 mic 的信号;2. 分别堵上每个 mic,重复 1 的操作;3. 比较上面两次的录音结果;4. 确定每个 mic 都能录取到信号, 并且录取到的信号走势符合粉红噪声;5. 在堵与不堵的情况下, 两次录取的同一 mic 的信号差别应该> 30dB,此情况下说明 mic密封性比...
2020-01-12 16:42:01
4017

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_三、音频腔体设计
一、麦克风对于贴片 MEMS mic 来讲, 需要导音孔设计。 为避免引入额外风噪,建议将出音孔外沿做成一定的导角, 不能太锐利, 如下图。 导音管的长度越短,麦克风频宽越宽。 麦克风需要用硅胶套等材料密封。Different MEMS Mic Inner Design二、喇叭喇叭前出音面需要与背腔隔离。 一般可利用独立腔体结构和密封泡棉进行密封。 后腔容积...
2020-01-10 13:18:32
6997
1

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_二、音频器件布局
一、音频设计推荐Mic 和喇叭摆放的原则:a. 主 Mic 应该摆放在底部的中线已保证左右手握姿对语音拾取的影响。b. 副 Mic 推荐放在顶部近中线处,这样可以保证 Mic 信号的隔离度和防止副 Mic 被人手盖住。c. 副 Mic 在免提和视频电话的时候做主 Mic。这样的话底部喇叭到主 Mic 的隔离度最大化。d. 保证两个 mic 摆放尽量靠近中线来确保在多数握姿下面 F...
2020-01-10 13:12:26
3442

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_一、音频器件选材
音频器件选材流程:1. 首先,确定音频的测试标准,要求高低依次为 VF/3GPP/CMCC/CTA. (另外,针对销售区域的 NB/WB 不同要求, WB 对于器件的低频部分要求更高,尤其是听筒与 MIC;2. ID 设计要确保音频结构所需的最低要求;整机堆叠要确保音频器件的优先级别。合理协调天线、电池等与音频器件之前的关系。前期评审多花精力,务求整机布局达到最佳平衡点。前期评审是一个反复...
2020-01-10 00:16:11
7175
1

原创 【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?
一、录音播放数据处理过程介绍(1)TX方向麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。(2)RX方向音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。二、分析步骤1...
2020-01-08 14:18:07
4887
3
原创 【性能分析】安卓/LINUX平台如何分析CPU利用率?
1. dumpsysdumpsys [options]meminfo 显示内存信息cpuinfo 显示CPU信息account 显示accounts信息activity 显示所有的activities的信息window 显示键盘,窗口...
2020-03-15 21:00:50
846
原创 【Qualcomm高通音频】如何在使用AudioRecord API调用双麦克风进行录音时把左右声道数据分离呢?
参考链接为:https://blog.youkuaiyun.com/hlj_include/article/details/52131903https://blog.youkuaiyun.com/Snow_Ice_Yang/article/details/85000427研究中,后续更新、
2020-03-15 16:12:10
1892
2
原创 【Qualcomm高通音频】当内部Codec和外部Codec上都有麦克风输入,如何做到灵活切换内部外部Codec上的麦克风进行录音呢?
最近遇到一个项目,既用到高通PMU芯片内置的Codec接了麦克风,也通过外部I2S总线外接了两个麦克风。详细沟通后,了解到,在普通录音的使用场景中,客户要求可以通过安卓原生api任意切换内部Codec和外部Codec上的麦克风进行录音。设计思路:(1)仿照audio-record这个usecase去新增一个usecase,对应外部Codec(2)找到内部外部Codec区分点...
2020-03-15 16:09:59
4063
原创 【Qualcomm高通音频】外部Codec调试流程_ES7243E
一、 调试大纲调试正式开始之前,想办法获取以下信息:硬件设计原理图/Codec参考驱动代码/FAE联系方式。1. 从硬件设计原理图,我们要获取到Codec芯片和CPU通过什么接口连接,包括数据传输接口、控制接口、reset和power引脚。2. Codec参考驱动代码,一般正规的厂商都会提供的,至少也提供对应场景的寄存器配置。接下来开始正式调试,大致分为以下流程:a. 数据...
2020-03-15 15:55:48
7422
1
原创 【Linux驱动调试技巧】如何进行SELinux安全策略配置?
SELinux(Security-Enhanced Linux)SELinux解决的是安全问题,即指定的进程只能访问特定的资源,执行特定的操作,避免越权操作引发安全性问题传统的DAC机制(Discretionary Access Control)自主访问控制,用户和其所在分组决定了该进程的用户权限 root用户具有所有的访问权限。SELinux MAC机制(Mandatory Access ...
2020-01-20 22:42:17
1044
原创 【Linux驱动调试技巧】gpio管脚和mpp引脚有什么区别?
gpio和mpp引脚有什么区别?问:GPIO和MPP引脚有什么区别?答:GPIO引脚速度更快,但MPP引脚功能更多。 GPIO引脚更简单,占用PMIC器件的硅片面积更小。GPIO:Digital input or digital outputSingle direction level translatorOpen-drain or CMOS outputConfigurable p...
2020-01-20 22:34:35
1033
原创 【Linux驱动调试技巧】如何弄清楚为什么在内核阶段GPIO不能被软件控制?
在目前的Qualcom平台B系列芯片组上,我们使用pinctrl框架来控制内核的gpio。无法控制gpio的问题。 需要按照下面的步骤来解释原因。1.首先添加下面的调试代码,看是否有一些未知的模块是控制gpio的,这里以gpio38作为exmaple+++ b/drivers/pinctrl/pinctrl-msm-tlmm.c @@ -400,11 +400,17 @@ static ...
2020-01-20 22:33:02
670
原创 【Linux驱动调试技巧】使用adb install 应用时提示失败,提示位置来源?
当通过adb install命令安装apk失败时,有时会提示未知来源。如下图所示:首先,要确认客户编译的是debug版本,user版本安装APK是必须要打开“安装未知来源”的。但有时候客户是debug版本,仍然提示安装失败,客户又没有TP,无法打开“安装未知来源”。这样的解决办法就是使用adb 来打开。命令:adb shell settings put secure install...
2020-01-20 22:31:10
950
原创 【Linux驱动调试技巧】如何使用wifi网络连接设备进行adb操作?
方法如下:1. 使用自己的手机开启wifi后,让中控设备和笔记本都连接到该wifi。2. 打开中控设备的设置->关于手机->状态->IP,进行上述查看后确认ip地址,类似192.168.43.1053. 在笔记本中打开cmd窗口执行以下指令adb connect 192.168.43.105adb rootadb remountadb shelladb disco...
2020-01-20 22:28:33
669
原创 【Linux驱动调试技巧】在SElinux 如何获得对一个内核节点的访问权限?
Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问第二步:打开文...
2020-01-20 22:26:49
559
原创 【Linux驱动调试技巧】如何将串口serial与uart绑定?
在确认会加载到的dtsi文件中,添加如下配置:/ {aliases {serial0 = &blsp1_uart2;serial1 = &blsp1_uart1;};};其中 serial0 表示 /dev/ttyHSL0, serial1 表示 /dev/ttyHSL1。如果还有其他的串口,依次在别名列表中 a...
2020-01-20 22:22:16
1314
原创 【Linux驱动调试技巧】Init.rc文件的妙用与如何编写开机脚本?
Init.rc妙用及语法说明参考:system\core\init\readme.txt案例1当开机启动完毕,写mpp2的寄存器,使其设置为PWM模式。#add by eliot shao 2016.11.03 for mmp2-pwm functionon property:sys.boot_completed=1write /sys/kernel/debug/spmi/sp...
2020-01-20 22:19:44
2545
原创 【Linux驱动调试技巧】如何使用adb shell来控制gpio端口?
1. 当知道GPIO num使用 /sys/class/gpio控制GPIOmsm8952_64:/sys/class/gpio # echo 899 > exportmsm8952_64:/sys/class/gpio/gpio899 # lsactive_low device direction edge power subsystem uevent value设置作为输出ec...
2020-01-20 22:15:41
1944
原创 【Qualcomm音频调试】安卓如何调整耳机安全音量等级和关闭耳机安全音量提示?
修改代码位置:frameworks/base/core/res/res/values/config.xml1. 如何调整耳机安全音量等级<integer name="config_safe_media_volume_index">10</integer>----->对应触发安全音量提示的音量等级2. 如何关闭耳机安全音量提示?<bool name=...
2020-01-20 22:10:27
2645
1
原创 【Linux驱动技巧篇】如何使用内核线程?
1. incluede头文件,声明定义一个线程#include <linux/sched.h> //wake_up_process()#include <linux/kthread.h> //kthread_create()、kthread_run()static struct task_struct *charge_led_task;2. 创建线程处理函数...
2020-01-13 16:31:44
692
原创 【Linux驱动技巧篇】如何使用延迟队列?
1. 创建延迟队列要绑定的延迟处理函数void msm8952_pa_reset_func(struct work_struct *work){ struct msm8916_asoc_mach_data *pdata = NULL; struct delayed_work *dwork; dwork = to_delayed_work(work); pdata = contain...
2020-01-12 20:28:59
2059
原创 【Linux驱动技巧篇】如何创建sysfs文件节点?
话不多说,直接上demo代码。1. 设备属性节点DEVICE_ATTR//ak4951 register settingsstatic unsigned char regReadValue = 0x00;static ssize_t ak4951_regRead_show(struct device* cd,struct device_attribute *attr, char* ...
2020-01-12 20:24:28
4496
原创 【Qualcomm高通音频】音频数据如何从文件系统送到喇叭Speaker?
一、 开门见山这里介绍下声音如何从文件系统比如sd卡送到喇叭的。示意图如下:简单引申点音频知识点。ASOC 主要部件1,alsa lib 配合 注册的snd_platform(pcm设备),把数据传到kernel. DAI(digital* audio interface) 确认cpu dai, codec dai.2, snd_soc_pla...
2020-01-12 19:32:31
3187
1
原创 【Qualcomm高通音频】调试工具QACT_如何新增一套音效
这里以新建一套麦克风音效举例。首先通过QACT软件以离线调试的方式打开任意一组音效。通过左上角菜单栏,选择Tools -----> Device Designer。先观察HANDSET_MIC的参数配置。然后点击左下角的新增按钮,仿照上述参数配置一组音效,重新命名,注意命名稍微规范一些。点击ok保存后即可使用该音效了。...
2020-01-12 18:53:54
3036
原创 【Qualcomm高通音频】调试工具QACT_如何更换音效的音频拓扑
一、 什么是音频拓扑首先通过QACT软件以离线调试的方式打开任意一组音效,比如最常用的喇叭的音效。通过左上角菜单栏,选择Tools -----> Device Designer,并找到SPKR_PHONE_SPKR_MONO音效,如下图所示。如果想要调整拓扑只需修改上述对应的位置即可。这里修改为AUDIO_RX_MONO_COPP_MBDRC_V3后保存后,重新查...
2020-01-12 18:47:15
4280
原创 【Qualcomm高通音频】如何通过上层代码修改dump音频数据流进行问题分析呢?
如何通过上层代码修改dump音频数据流我们在分析杂音等问题的时候, 只抓adb log是不够的, dump audio的数据能直观快速的判断是哪一块出了问题, 这里只针对高通平台1. 如何在Frameworks层音频数据dump//代码路径:frameworks/av/services/audioflinger/Tracks.cpp#getNextBufferstatus_t Au...
2020-01-12 18:16:39
3023
原创 【Qualcomm高通音频】音效调试控件介绍_MBDRC
一、MBDRC多频带动态范围控制使用QACT音效调试软件打开一套参数,找到MBDRC打开之后看到的界面如下:其内部主要包含的功能模块为Multiband DRC和Limiter两部分。二、调试参数1. Makeup gain: MBDRC模块补偿增益.2. Limiter threshold: 幅值限制阀值,如果信号幅值超过该阈值,限幅器会施加负增信号幅值降至该阈值附近,输...
2020-01-12 17:22:50
4568
原创 【Qualcomm高通音频】音效调试控件介绍_DRC
一、工具打开显示的DRC界面任意打开一套音频参数找到DRC音频控件,其内部参数如下:二、 高通默认参数三、 功能介绍其内部主要功能模块为:a. Downward Compressorb. Downward Expanderc. Upward Compressor常用参数为:a. Dnward Compression Threshold: 向下压缩门限值,如果信...
2020-01-12 17:15:31
3381
原创 【Qualcomm高通音频】音效调试控件介绍_FENS
一、FENS内部框图使用QACT音效调试软件打开一套参数,找到MBDRC打开之后看到的界面如下:其内部功能模块主要是:a. VADb. Noise Estimation: Stationary-noise estimation and Non-stationary noise estimationc. SNR Estimationd. Noise Suppression...
2020-01-12 17:12:41
1602
原创 【Qualcomm高通音频】在设备没有听筒时,如何强制开启免提通话模式?
由于类似平板、贩卖机、车载等产品定义上都没有听筒这种音频设备,因此会经常遇到这样一个需求:强制免提。以下是修改diff,请参考。如果只是APK修改的话,可以参考:diff --git a/packages/services/Telecomm/src/com/android/server/telecom/CallAudioManager.java b/packages/services...
2020-01-10 00:02:15
2566
2
原创 【Qualcomm高通音频】不同网络制式进行通话加载的音效参数是不一样的
之前的项目上遇到过这样一种bug:使用不同的SIM卡装在同一台调试设备和自己手机打电话,对方听到的声音响度不一样。这个问题就是由于不同网络制式进行通话加载的音效不一致造成的。一、为什么不一样?1.网络制式有哪些?中国移动网络制式为2G:GSM制式;3G:TD-SCDMA制式;4G:TD-LTE制式。中国联通网络制式为2G:GSM制式; 3G:WCDMA制式;4G:...
2020-01-09 23:25:54
887
原创 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?
一、使用QXDM抓取音频日志使用步骤如下:(已抓取录音日志为例)确保qxdm和qpst软件已成功安装且qxdm软件已激活成功,把设备连接电脑上。 点击左上角菜单栏Options-->Comunications...进入设备连接界面 根据设备管理器显示设备的diag口这里连接到上去。 选择抓取音频日志的audio.dmc配置文件,这样只抓音频日志的话,日志会小一些,也方便后面解...
2020-01-09 23:04:33
8186
3
原创 【Qualcomm高通音频】平板音效调试踩雷
核心问题:两台平板设备都开启免提模式进行通话,听起来声音小且不清晰,但是打第三方手机或者其中一台插着耳机音效又很好。#设备状态介绍双数字麦克风,由于是数字麦克风,因此无模拟增益可以调节。两个麦克风分别在平板中间顶部的正面和反面。如果把平板平放桌面,副麦会被遮挡住,背面比较平。正面麦克风留孔比背面大一些。双喇叭,音源左右声道混音后从CDC_HPH_R送到两个喇叭。另外两个喇叭前面还各接...
2020-01-09 10:45:25
2027
3
原创 【AUDIO音频兴趣拓展】音频信号都有哪些音频属性?
一、声功率、声强和声压二、分贝、声功率级、声强级和声压级三、声压、声功率、声强、电平声波引起空气质点的振动,使大气压产生迅速的起伏。这种起压,称为声压。所谓声压就是有声波存在时,在单位面积上大气压的变化部分。声压(p)以pa,即帕(斯卡)为单位(1pa=1N/㎡,即牛顿/平方米)。有时也用µbar,即微巴作单位,1pa=10µbar.我们听到的最弱的声音声压为2×10-...
2020-01-08 13:41:19
1548
1
audio.dmc——qxdm音频日志配置文件
2020-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人