博文 | Biu~笔记:高通蓝牙ADK(36)--第三类mic

bui~ le audio完整协议公布了,可喜可贺,可喜可贺。那么这篇我们就,还是没什么可聊的→_→。目前adk相关完整版本还没发布,source也没有可用的,所以,先放着吧。
这篇我们来聊聊第三者,从前我们的mic基本上都是用模拟的或是数字的。有些厂商不满足当前mic的功能(说人话就是不满足cvc的功能),因此他们会叫外卖——加外置的dsp,去新增自己想要的音频处理。外置dsp输出方式大部分都是用i2s接口,而代码并没有接纳这第三种接口,基本上都要自己修改代码去实现。_(:з)∠)_ 随着时间的推进,现实总得要接受的。在新的芯片系列中,引进了骨传导的cvc,而对应的骨传导音频接口的实现代码也被加入到adk中,另外这部分代码也被同步到304x系列的adk中了⁄(⁄⁄•⁄ω⁄•⁄⁄)⁄。虽然默认代码是用pcm接口,但是稍微修改下就可以适配其他类型的音频接口。下面就带大家怎么去使用起来。
首先,默认的接口是用include_lis25ba_accelerometer这个宏定义,搜索这个宏定义就知道他使用了什么东西了。其中我们先看这里面mic的配置
这里面框出来的mic type相对于以前的analog和digital,只是多加了个pcm。如果你不是pcm接口的话,可以自己添加一个定义,然后修改对应的处理,这里小编比较懒,直接用这个pcm,然后修改他的处理(建议大家勤奋点,多加一个定义)。后面两个参数instance和channel我就不多说了,懂的都懂。
接着就是要修改对应配置的处理代码,在获取source的时候,pcm的类型是获取pcm的source的,如果是别的音频接口就需要修改getaudiosource这里
我是用i2s接口,就换成audio_hardware_i2s,后面的instance和channel就是沿用上面的配置。获取到source之后,对source的配置也需要跟着修改。因为不同类型的source,对应的配置key是不一样的,这个要在audiopcmcommonconfiguresource中修改
(可以看到,直接修改看起来比较乱也不好管理(#^.^#),所以大家选择添加的方式)
另外这里面用到两个callback的函数,一个是获取配置的,一个是初始化的。接下来我们就要说说这些callback函数怎么弄。
在earbudinit_startinitialisation函数中有个audiopcmcommonregisteruser(&peripherals_lis25baregistry),这个语句就是用来注册callback函数的,参数peripherals_lis25baregistry中,我们只关注其中的callback有哪些。
audiopcmcommongetpcminterfacesetting:这个是用来获取config的函数,这里是pcm参数的配置。如果不是pcm,可以不用,直接在代码中固定,或者修改,或者添加别的参数格式。
audiopcmcommoninitializei2cinterface:这是控制接口的初始化,有些ic需要额外控制接口去写指令,这里就需要事先把这接口初始化,还可以把外部ic也初始化。虽然变量名写的是i2c,但是实际使用时,根据情况可以换成spi,uart等别的控制接口,或者不用也可以。
audiopcmcommonenabledevice和audiopcmcommondisabledevice:这两个函数就是用来打开和关闭外部ic的,通过上面初始化的接口,给ic发送控制指令。注册完这些函数之后,系统就会在通话建立时,自动初始化、配置、使能外部ic,在通话结束时,关闭外部ic。
除此之外,当外部ic的输入采样率和系统通话时用的不一样的时候,例如,输入是48k,而通话只需要16k。还可以对其进行重采样,这个在默认代码kymera_connectuserwithmic函数中也有实现的,这里输入采样率固定为16k,如果系统不是用16k就进行重采样。
好了,以上是本期博文的全部内容,如有疑问就别在博文下方评论留言了,有什么疑问或想了解的当面和我说(如果你知道我是谁的话ヽ( ̄▽ ̄)و),我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。

定制段码液晶屏在开模前需要确认哪些参数
关于英特尔的新设备的性能分析和介绍
过压保护压缩机控制电路原理图
新手必看!FPGA的系统性学习
uboot和内核里phy的初始化_内核里的双网络配置及phy的初始化
博文 | Biu~笔记:高通蓝牙ADK(36)--第三类mic
华为5G折叠屏手机在巴黎旗舰店售卖 分析机构预计2020年华为智能手机出货量下降20%
PC打印机端口控制数据记录器
中国5G用户数已接近2亿,占全球比重达85%
比亚迪收10亿新能源补贴 新能源车占了比亚迪的半壁江山
3D打印呼吸机原型设计七天可完成
癌症终结者Bionaut Labs微型机器人将在2023年问世
华虹半导体Q3财报:销售收入5.685亿美元,同比下降9.7%
三相内控电能表
安普德WF61模块—5GHz WiFi应用于视频物联网设备
一文带你了解以FPGA为控制核心的程控滤波器设计
PCB检测的几种常见方法
使用网络实例比较FPGA RTL与HLS C/C++的区别
低成本低功耗蓝牙芯片MS1656—智能窗帘应用解决方案
索尼确认:PS 5发布时将不支持SSD存储扩展