杰理701N可视化SDK之ANC配置和代码浅析

杰理701N可视化SDK之ANC配置和代码浅析

杰理701N可视化SDK支持在可视化工具中打开ANC的功能, 并配置ANC功能的类型, 本篇文章跟随SDK代码浅析ANC代码的流程

ANC的配置

在杰理可视化工具的"音频配置"->"ANC配置"选项中配置ANC的基础硬件的配置
ANC的配置
如上图设定使用的HYBRID FF FB双馈ANC, 并设定使用的ANC MIC的硬件配置
除此之外还需要设置蓝牙通话里面的ADC配置
蓝牙通话配置
在ADC配置里面选择各个MIC的模式, 供电端口 增益等设置
ADC配置

ANC相关代码浅析

开机启动的时候调用了do_platform_initcall()的时候会初始化platform相关内容, 调用了audio_init()对音频初始化, 并在音频初始化的时候做了anc_init()初始化的动作
audio_init函数
audio_init()函数
audio_init函数2
anc_init()内就做了好多初始化的操作, 包括anc参数的初始化, anc在线调试等初始化, 开启”anc”任务, 并对一些anc的参数变量做了赋值
anc初始化
开机在这里读取了调试好的滤波器参数
开机读取滤波器参数
滤波器参数coeff和gain参数以bin文件方式保存, 保存位置在SDK根目录下的 SDK/cpu/br28/tools路径中
anc参数bin文件
开机时候根据配置id获取不同的anc配置(是读取anc_coeff参数还是gains参数)
并将读取到的滤波器参数存放在anc_hdl->param对应的成员变量中
开机读取滤波器参数2
这里我们在按键情景配置里面设定了一个按键动作, 按键动作发生时打开ANC log中看到是发生了按键动作执行了情景配置音频UUID [24]的action [2]的时候打开ANC
打开ANC的log
audio_action_table, 可视化工具配置的音频执行列表
audio action
所以在可视化工具的情景匹配上ANC事件是打开ANC进入audio_action_anc_mode_anc_on()函数
anc on函数
进入anc_mode_switch()函数, 并播报ANC TONE提示音, 由ANC_TONE_END_MODE_SW这个宏定义来控制是否需要ANC播放提示音结束之后再进行ANC模式切换
ANC TONE PLAY
进入anc_play_tone()函数, 立体声耳机直接播放ANC提示音, TWS耳机只需要主耳播放提示音
anc_play_tone()函数
提示音播报完成, 最终会进入进入anc_tone_play_cb()函数
ANC提示音播报完成
当真正收到播放结束的事件的时候, 才会去做ANC切换处理, 真正进入anc切换处理的是anc_mode_switch_deal()函数
ANC提示音播报完成2
打开模式, ANC的真正处理是在anc线程里面, 这里发送ANC_MSG_RUN的消息给到anc任务去处理
anc_mode_switch_deal()
进入到anc_task() 接收到ANC_MSG_RUN消息的时候处理真正打开ANC
anc_task()函数
从这里看出做anc_task在做anc模式切换的时候主要有以下操作:
发送当前模式的消息通过MSG_FROM_AUDIO给到app_core任务, 打开或关闭MIC及MIC电源的操作, 最后将参数通过audio_anc_run()给到底层anc模块
ANC最终处理

ANC调试工具的使用

可视化工具中打开FW编辑, 在线调音功能
推荐选择通信方式蓝牙的通信方式, 是蓝牙SPP发送接收命令的方式, 减少飞线对ANC调试造成干扰
打开在线调音
打开ANC在线调试工具 ANC DESIGNER
使用笔记本电脑的蓝牙连接目标板蓝牙, 输入密码123456
ANC工具
进入界面, 当滤波器参数和增益参数都调试好了之后点击保存样机参数, 可以分别保存为文件anc_coeff.bin和anc_gains.bin文件, 将这两个文件替换掉SDK路径中的这两个文件即可, 后续编译下载时就会自带有调试好的滤波器和增益参数了
ANC调试

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

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

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

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

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

打赏作者

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

抵扣说明:

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

余额充值