恒玄BES蓝牙耳机开发--基础ANC调试

在目前蓝牙耳机的功能开发中,ANC主动降噪技术已成为提升产品竞争力的核心配置,最近在调试带ANC主动降噪功能的蓝牙耳机,恒玄BES系列蓝牙耳机SDK凭借成熟的ANC功能与完善的调试工具, 成为了开发ANC耳机的主流选择,开发者可以快速开发设计出优越的ANC效果。本篇文章简单介绍了BES恒玄SDK中基础ANC功能的配置方法、ANC调试工具的简单使用方法,并以恒玄BES2700耳机SDK为例,演示了SDK中基础ANC功能的调试方法,不同SDK功能流程上可能有些差异,整体流程思路供参考。

ANC配置

ANC 功能配置

ANC相关功能宏定义可以在项目target.mk文件中进行配置。如下图,ANC总开关由ANC_APP宏进行配置开启。
export ANC_APP ?= 1

根据项目情况开启下面的ANC CONFIG,以下主要开启了以下功能:

  1. 前馈后馈开关开启
    export ANC_FF_ENABLED ?= 1
    export ANC_FB_ENABLED ?= 1
    分别表示ANC前馈和反馈滤波器是否开启,根据项目来填写;
  2. 硬件音乐补偿配置
    export AUDIO_ANC_FB_MC_HW ?= 1
    根据项目需要开启硬件FB的音乐补偿功能;通过MC滤波器生成一个补偿信号,抵消FB滤波器对音乐信号的干扰。
  3. FLASH音频分区配置
    export AUDIO_SECTION_SUPPT ?= 1
    表示FLASH中是否开辟一块独立的音频区,用于存储ANC系数,工具写入的ANC系数需要固定写在这个独立的音频区,因此这里需要写1。(非常重要)
    4.其他配置
    如下图还可以可根据项目需要配置ANC高级功能、辅助降噪、麦克风校准等功能,基础调试阶段可保持默认关闭。
    ANC配置

ANC MIC通道配置

在项目tgt_hardware.h 文件中配置ANC MIC通道及ANC VMIC供电的选择,这里是需要根据项目硬件原理图设计的引脚配置来匹配,填入正确的通道映射关系。
MIC通道配置

ANC调试工具使用介绍

这里不得不吐槽一下恒玄BES调试ANC的工具版本很多,不同版本的工具界面及配置都会略有差异,但其操作逻辑基本是一致的,以下工具界面为例

设置界面

ANC工具设置界面
工具打开之后首先进入的是配置界面,主要配置步骤有:

  1. 选择芯片与工具的通信连接方式:这里芯片与工具通信连接的方式主要有:uart、usb、Android以及无线spp、第三方tcspp方式等,推荐调试时使用uart的方式或Android连接的方式。
  2. programmer bin路径选择:如果使用的是有线的连接方式则需要选择programmer bin,比如使用uart连接的方式,在这种方式下需要将耳机烧录串口线引出,并在bin_file_path选项中选择芯片原厂提供的programmer bin文件,这个bin文件不是跑我们实际写的代码,而是BES提供的ANC调试功能的固件bin文件,这个文件可以在调试工具根目录下的cfg文件夹中找到。
  3. 芯片功能配置:配置所使用的chipset、flash大小、ANC前后馈功能以及配置存储ANC系数的独立音频区的地址(这些配置需要与SDK代码中target.mk里面的配置一致)。
  4. 硬件配置:有些板卡硬件设计在工作时需要拉高一些GPIO引脚才可以正常工作,这时候就需要在gpio_cfg设置项中填入需要拉高的GPIO脚;硬件配置还包括下面的麦克风供电配置(这里需要注意的是工具与耳机连接运行时会自动打开所有的VMIC)
  5. 麦克风通道配置:这里填入的通道需要与代码中target.mk里面设置的麦克风通道保持一致。

以上配置完成后则可以点击save进入调试界面了。

调试界面

进入调试界面就可以对各个通道的配置及滤波器进行调试了,工具连接上耳机之后可以实时调节FF、FB、TT、MC等通道的滤波器参数、增益、相位等,用户可以实时试听降噪效果。
调试完成可以直接点击burn将ANC COEFF参数写入到耳机配置FLASH的AUDIO_SECTION分区中;也可以不写入,点击Generate Target.c生成参数的.c文件,将里面的参数复制到代码区域中。
ANC工具调试界面
生成的参数复制到代码中,这里我们参数中配置了两个模式,可以将这两个模式的参数放到代码anc coef list数组中,这样ANC参数便准备就绪了。
SDK代码ANC系数

ANC参数调用

ANC参数调试完成之后接下去就是代码中ANC参数的调用了。
这里我们可以看到我们anc模式的枚举,这里我们定义了MODE1是降噪模式,MODE2为通透模式(也可以自定义为其他比如强降噪、弱降噪等等,与调试写入的MODE参数一致即可)。
ANC模式枚举
这里比较关键的是通过anc表单中的app_anc_coef_index_cfg设置,配置每个模式使用的滤波器和参数索引。比如下图,MODE1为降噪模式,FF和FB都打开使用且使用的是coef_mode参数0的配置;MODE2为通透模式,这里只用到了FF,配置使用参数1的配置。
ANC模式索引表
此时调用app_anc_switch()函数或app_anc_loop_switch()函数切换模式即可完成不同ANC模式的切换。
ANC模式切换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的代码里面挖呀挖呀挖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值