自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

crow_ch的博客

一个人走的快,一群人走的远

  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_四、硬件性能测试

一、测试整机的硬件性能-密封性-自由场1. 在自由场内, 播放 80dBSPL 粉红噪声, 正常录取每个 mic 的信号;2. 分别堵上每个 mic,重复 1 的操作;3. 比较上面两次的录音结果;4. 确定每个 mic 都能录取到信号, 并且录取到的信号走势符合粉红噪声;5. 在堵与不堵的情况下, 两次录取的同一 mic 的信号差别应该> 30dB,此情况下说明 mic密封性比...

2020-01-12 16:42:01 3902

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_三、音频腔体设计

一、麦克风对于贴片 MEMS mic 来讲, 需要导音孔设计。 为避免引入额外风噪,建议将出音孔外沿做成一定的导角, 不能太锐利, 如下图。 导音管的长度越短,麦克风频宽越宽。 麦克风需要用硅胶套等材料密封。Different MEMS Mic Inner Design二、喇叭喇叭前出音面需要与背腔隔离。 一般可利用独立腔体结构和密封泡棉进行密封。 后腔容积...

2020-01-10 13:18:32 6471 1

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_二、音频器件布局

一、音频设计推荐Mic 和喇叭摆放的原则:a. 主 Mic 应该摆放在底部的中线已保证左右手握姿对语音拾取的影响。b. 副 Mic 推荐放在顶部近中线处,这样可以保证 Mic 信号的隔离度和防止副 Mic 被人手盖住。c. 副 Mic 在免提和视频电话的时候做主 Mic。这样的话底部喇叭到主 Mic 的隔离度最大化。d. 保证两个 mic 摆放尽量靠近中线来确保在多数握姿下面 F...

2020-01-10 13:12:26 3203

原创 【AUDIO音频兴趣拓展】IOT产品声学结构设计_一、音频器件选材

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

2020-01-10 00:16:11 6633 1

原创 【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍(1)TX方向麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。(2)RX方向音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。二、分析步骤1...

2020-01-08 14:18:07 4298 3

原创 【性能分析】安卓/LINUX平台如何分析CPU利用率?

1. dumpsysdumpsys [options]meminfo 显示内存信息cpuinfo 显示CPU信息account 显示accounts信息activity 显示所有的activities的信息window 显示键盘,窗口...

2020-03-15 21:00:50 769

原创 【Qualcomm高通音频】如何在使用AudioRecord API调用双麦克风进行录音时把左右声道数据分离呢?

参考链接为:https://blog.csdn.net/hlj_include/article/details/52131903https://blog.csdn.net/Snow_Ice_Yang/article/details/85000427研究中,后续更新、

2020-03-15 16:12:10 1663 1

原创 【Qualcomm高通音频】当内部Codec和外部Codec上都有麦克风输入,如何做到灵活切换内部外部Codec上的麦克风进行录音呢?

最近遇到一个项目,既用到高通PMU芯片内置的Codec接了麦克风,也通过外部I2S总线外接了两个麦克风。详细沟通后,了解到,在普通录音的使用场景中,客户要求可以通过安卓原生api任意切换内部Codec和外部Codec上的麦克风进行录音。设计思路:(1)仿照audio-record这个usecase去新增一个usecase,对应外部Codec(2)找到内部外部Codec区分点...

2020-03-15 16:09:59 3601

原创 【Qualcomm高通音频】外部Codec调试流程_ES7243E

一、 调试大纲调试正式开始之前,想办法获取以下信息:硬件设计原理图/Codec参考驱动代码/FAE联系方式。1. 从硬件设计原理图,我们要获取到Codec芯片和CPU通过什么接口连接,包括数据传输接口、控制接口、reset和power引脚。2. Codec参考驱动代码,一般正规的厂商都会提供的,至少也提供对应场景的寄存器配置。接下来开始正式调试,大致分为以下流程:a. 数据...

2020-03-15 15:55:48 6373 1

原创 【Linux驱动调试技巧】如何进行SELinux安全策略配置?

SELinux(Security-Enhanced Linux)SELinux解决的是安全问题,即指定的进程只能访问特定的资源,执行特定的操作,避免越权操作引发安全性问题传统的DAC机制(Discretionary Access Control)自主访问控制,用户和其所在分组决定了该进程的用户权限 root用户具有所有的访问权限。SELinux MAC机制(Mandatory Access ...

2020-01-20 22:42:17 873

原创 【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 881

原创 【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 587

原创 【Linux驱动调试技巧】使用adb install 应用时提示失败,提示位置来源?

当通过adb install命令安装apk失败时,有时会提示未知来源。如下图所示:首先,要确认客户编译的是debug版本,user版本安装APK是必须要打开“安装未知来源”的。但有时候客户是debug版本,仍然提示安装失败,客户又没有TP,无法打开“安装未知来源”。这样的解决办法就是使用adb 来打开。命令:adb shell settings put secure install...

2020-01-20 22:31:10 736

原创 【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 581

原创 【Linux驱动调试技巧】在SElinux 如何获得对一个内核节点的访问权限?

Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问第二步:打开文...

2020-01-20 22:26:49 487

原创 【Linux驱动调试技巧】如何将串口serial与uart绑定?

在确认会加载到的dtsi文件中,添加如下配置:/ {aliases {serial0 = &blsp1_uart2;serial1 = &blsp1_uart1;};};其中 serial0 表示 /dev/ttyHSL0, serial1 表示 /dev/ttyHSL1。如果还有其他的串口,依次在别名列表中 a...

2020-01-20 22:22:16 1167

原创 【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 2095

原创 【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 1667

原创 【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 2245 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 652

原创 【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 1999

原创 【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 4330

原创 【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 3038 1

原创 【Qualcomm高通音频】调试工具QACT_如何新增一套音效

这里以新建一套麦克风音效举例。首先通过QACT软件以离线调试的方式打开任意一组音效。通过左上角菜单栏,选择Tools -----> Device Designer。先观察HANDSET_MIC的参数配置。然后点击左下角的新增按钮,仿照上述参数配置一组音效,重新命名,注意命名稍微规范一些。点击ok保存后即可使用该音效了。...

2020-01-12 18:53:54 2671

原创 【Qualcomm高通音频】调试工具QACT_如何更换音效的音频拓扑

一、 什么是音频拓扑首先通过QACT软件以离线调试的方式打开任意一组音效,比如最常用的喇叭的音效。通过左上角菜单栏,选择Tools -----> Device Designer,并找到SPKR_PHONE_SPKR_MONO音效,如下图所示。如果想要调整拓扑只需修改上述对应的位置即可。这里修改为AUDIO_RX_MONO_COPP_MBDRC_V3后保存后,重新查...

2020-01-12 18:47:15 3503

原创 【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 2740

原创 【Qualcomm高通音频】音效调试控件介绍_MBDRC

一、MBDRC多频带动态范围控制使用QACT音效调试软件打开一套参数,找到MBDRC打开之后看到的界面如下:其内部主要包含的功能模块为Multiband DRC和Limiter两部分。二、调试参数1. Makeup gain: MBDRC模块补偿增益.2. Limiter threshold: 幅值限制阀值,如果信号幅值超过该阈值,限幅器会施加负增信号幅值降至该阈值附近,输...

2020-01-12 17:22:50 3804

原创 【Qualcomm高通音频】音效调试控件介绍_DRC

一、工具打开显示的DRC界面任意打开一套音频参数找到DRC音频控件,其内部参数如下:二、 高通默认参数三、 功能介绍其内部主要功能模块为:a. Downward Compressorb. Downward Expanderc. Upward Compressor常用参数为:a. Dnward Compression Threshold: 向下压缩门限值,如果信...

2020-01-12 17:15:31 2966

原创 【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 1440

原创 【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 2451 2

原创 【Qualcomm高通音频】不同网络制式进行通话加载的音效参数是不一样的

之前的项目上遇到过这样一种bug:使用不同的SIM卡装在同一台调试设备和自己手机打电话,对方听到的声音响度不一样。这个问题就是由于不同网络制式进行通话加载的音效不一致造成的。一、为什么不一样?1.网络制式有哪些?中国移动网络制式为2G:GSM制式;3G:TD-SCDMA制式;4G:TD-LTE制式。中国联通网络制式为2G:GSM制式; 3G:WCDMA制式;4G:...

2020-01-09 23:25:54 805

原创 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?

一、使用QXDM抓取音频日志使用步骤如下:(已抓取录音日志为例)确保qxdm和qpst软件已成功安装且qxdm软件已激活成功,把设备连接电脑上。 点击左上角菜单栏Options-->Comunications...进入设备连接界面 根据设备管理器显示设备的diag口这里连接到上去。 选择抓取音频日志的audio.dmc配置文件,这样只抓音频日志的话,日志会小一些,也方便后面解...

2020-01-09 23:04:33 6821 3

原创 【Qualcomm高通音频】平板音效调试踩雷

核心问题:两台平板设备都开启免提模式进行通话,听起来声音小且不清晰,但是打第三方手机或者其中一台插着耳机音效又很好。#设备状态介绍双数字麦克风,由于是数字麦克风,因此无模拟增益可以调节。两个麦克风分别在平板中间顶部的正面和反面。如果把平板平放桌面,副麦会被遮挡住,背面比较平。正面麦克风留孔比背面大一些。双喇叭,音源左右声道混音后从CDC_HPH_R送到两个喇叭。另外两个喇叭前面还各接...

2020-01-09 10:45:25 1742 3

原创 【AUDIO音频兴趣拓展】音频信号都有哪些音频属性?

一、声功率、声强和声压二、分贝、声功率级、声强级和声压级三、声压、声功率、声强、电平声波引起空气质点的振动,使大气压产生迅速的起伏。这种起压,称为声压。所谓声压就是有声波存在时,在单位面积上大气压的变化部分。声压(p)以pa,即帕(斯卡)为单位(1pa=1N/㎡,即牛顿/平方米)。有时也用µbar,即微巴作单位,1pa=10µbar.我们听到的最弱的声音声压为2×10-...

2020-01-08 13:41:19 1275 1

原创 【ADUIO音频测试与认证】什么是耳机声压?耳机做CE要做声压测试标准是什么?

一、什么是耳机声压?测试用例?由于经常或长时间连续使用耳机,如音量过大,会对听力构成相当大的损害,有必要限制便携式声音重放设备的最大输出声压级。事实上,从2004年7月1日起, EN50332已正式作为强制性标准在欧盟范围内生效实施。EN50332标准也适用于其他带耳机的便携式电子产品,例如:手提电脑和便携式电视机。便携式视听产品出口欧盟须作声压测试。EN50332分为两个部份,EN5...

2020-01-08 13:24:29 2052

原创 【ADUIO音频测试与认证】CTS AUDIO测试项大全

以下链接介绍了CTS AUDIO测试的具体细节,此处保存下。https://source.android.com/compatibility/cts/audio-framework

2020-01-08 10:46:07 2013 2

原创 【Qualcomm高通音频】如何动态兼容多套音频参数文件?

1. 了解下音效参数组成a. 音频路由配置文件mixer_paths_xxx_platform.xmlb. 音效数据库文件Bluetooth_cal.acdbGeneral_cal.acdbGlobal_cal.acdbHandset_cal.acdbHdmi_cal.acdbHeadset_cal.acdbSpeaker_cal.acdbworkspac...

2020-01-08 10:19:21 2314 1

原创 【Qualcomm高通音频】如何配置高通设备充当蓝牙耳机的角色呢?

其实这个概念就是常规意义上的蓝牙从模式设置。一般来说,蓝牙从模式与音频相关最直接的就是HFP和A2DP,但是要知道蓝牙协议不止这两个,还包括蓝牙电话薄等功能。这里只贴上如何蓝牙hfp和a2dp协议的从模式代码配置。From 2ae2de6b2eb6df55a1804f0183ad917bddd0e884 Mon Sep 17 00:00:00 2001From: kuangjinc...

2020-01-08 01:06:12 1871

原创 【Qualcomm高通音频】如何封装音频控件?

音频代码涉及面很广,这篇文档介绍如何封装音频控件给HAL层使用。这里以AW87519芯片调试为例进行介绍封装音频控件和使用的方法。在最初接出到高通音频基础功能调试的时候,都是从tinyalsa指令/mixer_paths文件配置开始。因为单独一个音频设备的调试,都对应一条音频链路的打通。比如以下链接上高通平台基础音频输入输出设备调试:【Qualcomm音频】Speaker 调试记录http...

2020-01-08 01:00:25 1613

原创 【Qualcomm高通音频】免提和听筒两种通话模式下如何切换主副麦克风?

1. 为什么要修改?通常情况下,这种修改主要是针对,主麦克风设计时离喇叭太近,导致无法无法完全回音。2. 如何修改?先进行以下确认:1. 不同平台对应的mixer_paths_xxx.xml文件不一致,请参考以下链接进行确认。2. 不同平台对应的麦克风属性不一定一致,请参考以下链接进行确认。如果确认使用了双麦克风属性配置,请打开对应的mixer_paths_xxx.xml文...

2020-01-08 00:40:25 2084 1

audio.dmc——qxdm音频日志配置文件

抓取音频日志的qxdm dmc配置文件,在抓取qxdm日志前加载一次即可。 抓取音频日志的qxdm dmc配置文件,在抓取qxdm日志前加载一次即可。 抓取音频日志的qxdm dmc配置文件,在抓取qxdm日志前加载一次即可。

2020-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除