BES(恒玄)蓝牙平台EQ 调试和设定
隔了很久 ,这篇博客解说下BES平台关于EQ 调试和设定的 相关事宜。
1.EQ调试原理
说这个部分是为了同学们更好的分析解决问题
打开所使用工程的target.mk文件,修改宏PC_CMD_UART ?= 1 同时关闭DEBUG=0
Bes提供了多种滤波方式,可在target.mk中进行配置,下图是我使用的配置,具体要怎么配置,可一个根据实际的项目需求更改。
然后我们看下代码部分 在打开PC_CMD_UART ?= 1之后,在apps.cpp 中 app_init 里面有void app_cmd_open()函数;
AUDIO_SECTION_ENABLE ?=1 打开后可以直接写入flash audio区域(4k) 上电开机可以读取参数 并生效。
我们有看到EQ调试单独注册了一个任务 ,用来处理从工具端接收到的RX 数据
如果有发现工具连接 上 但是调试失败 请确认两个因素:
a.工具上选的滤波器类型和软件代码设置是否一致。
b.调试当前音频数据流是否为激活状态(是否有音乐在播放)
2. EQ 调试
a. 工具连接
设备连上手机之后,让设备处于播放音乐状态,打开工具,选择正确的com端口,点击连接按钮,当“connent”按钮变成绿色说明连接成功。工具如下图所示:
b.工具其他设置和参数保存
工具界面默认只开了iir,通过修改./cfg/test_cfg.json文件可以打开其他选项,当然也要配合固件中的配置项,比如target.mk的宏定义中使能了drc,这个就可以把drc相关的调试界面开启,如图:
b.参数导入
可以选择工具上的 按钮“write to flash”或者直接写入"tgt_hardware.c"中
选择“write to flash” 后需要没有搽除 的情况下 flash 数据优先级比较高,会覆盖本地数据
3. 多种EQ 模式
在这里使用函数“audio_eq_set_cfg”就能在播放状态下实时更新EQ 参数,下面提供实例化代码:
注意:所有的EQ 需使用同种滤波器类型。
通过手机 APP BLE 数据修改自定义 EQ :
static int app_tota_data_received_handler(ke_msg_id_t const msgid,struct ble_tota_rx_data_ind_t *param,ke_task_id_t const dest_id,ke_task_id_t const src_id)
{
#if defined(__APP_INIT__)uint8_t i;for(i=0; i<param->length; i++)TRACE(2,"[cmd: %x]\n", param->data[i]);
#if 1switch(param->data[1]){case 0xa1:appCommandProcess(param->data);break;case 0xb1:appCommandResponse(param->data);break;default:break;}
#elseapp_ble_push_rx_data(BLE_RX_DATA_SELF_TOTA, app_tota_env.connectionIndex, param->data, param->length);
#endif
#endifreturn (KE_MSG_CONSUMED);
}void appCommandProcess(uint8_t *command)
{
TRACE(1,"=====appCommandProcess====>[cmd: %x]", command[2]);switch(command[2]){case EQ_MODE_SETTING: TRACE(1, "EQ_MODE_SETTING==>:%d", command[3]);app_data_type.a2dpModeEqType = command[3];nvrecord_env->a2dpModeEqType= command[3];nv_record_env_set(nvrecord_env);switch(app_data_type.a2dpModeEqType){case DEFAULT_MODE:audio_eq_set_cfg(NULL, &audio_eq_hw_dac_iir_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;case POP_MODE:audio_eq_set_cfg(NULL, &audio_eq_hw_dac_pop_iir_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;case BASS_MODE:audio_eq_set_cfg(NULL, &audio_eq_hw_dac_bass_iir_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;case JAZZ_MODE:audio_eq_set_cfg(NULL, &audio_eq_hw_dac_jazz_iir_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;case SOFT_MODE:audio_eq_set_cfg(NULL, &audio_eq_hw_dac_soft_iir_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;case CLASSIC_MODE:audio_eq_set_cfg(NULL, &audio_eq_hw_dac_classic_iir_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;default:break;}break;case EQ_DEFINITION_SETTING:TRACE(1, "EQ_DEFINITION_SETTING==>:%d", command[3]);app_data_type.a2dpModeEqType = DEFINITION_MODE;for(eq_bank=0; eq_bank<10; eq_bank++){gain_up_down= ((command[eq_bank+3]>>4)&0x0F);gain= (command[eq_bank+3]&0x0F);if(gain_up_down>0){app_data_type.audio_def_eq_cfg.param[eq_bank].gain*=(1-gain/10);}else{app_data_type.audio_def_eq_cfg.param[eq_bank].gain*=(1+gain/10);}nvrecord_env->eq_gain[eq_bank]=app_data_type.audio_def_eq_cfg.param[eq_bank].gain;nvrecord_env->IsEqSeted = TRUE;}nv_record_env_set(nvrecord_env);audio_eq_set_cfg(NULL, &app_data_type.audio_def_eq_cfg, AUDIO_EQ_TYPE_HW_DAC_IIR);break;
}
}
4. 反相位输出问题
在“audioflinger.c”中有函数“static void af_codec_playback_post_handler(uint8_t *buf, uint32_t len, const struct af_stream_cfg_t *role)”
打开 “AUDIO_OUTPUT_INVERT_RIGHT_CHANNEL” 设定就好。
EQ 设定和讲解大概就是这些了 ,有不足之处 ,请大家指正,谢谢!
BES(恒玄)蓝牙平台EQ 调试和设定相关推荐
- bes2300 tws配对_功耗仅4mA!BES恒玄推出TWS蓝牙耳机芯片BES2300
原标题:功耗仅4mA!BES恒玄推出TWS蓝牙耳机芯片BES2300 恒玄科技近期推出了第三代真无线蓝牙耳机立体声解决方案BES恒玄BES2300,这是恒玄科技两年多来不断追求创新,致力于降低功耗和提 ...
- bes2300 tws配对_华为、荣耀、小米、JBL都在用,12款内置BES恒玄方案TWS耳机拆解汇总...
继智能手机之后,要说目前最为火爆的一个市场,可能就是真无线蓝牙耳机了.特别是从和对话式的诞生开始,蓝牙耳机已经成为消费类科技行业中,目前势头最好最成熟的一个. 作为TWS蓝牙耳机行业的,BES恒玄在真 ...
- BES(恒玄) 平台 复杂按键 实现
昨天 有说到 LED 的配置 ,关于UI 的三大组件 :LED .按键 .提示音.今天就说下按键部分. BES 平台里面 包含了 大部分按键代码 : 按键l类型分power .普通GPIO按键 AD ...
- BES(恒玄) 提示音解析
今天,继续讲解BES平台 UI 最后模块--- 提示音. 提示音这一块比较繁琐,也很容易出问题,我们就 提示音实现机制,问题点 做个全面的讲解. BES 提示音分为两种 触发模式 ,第一种是打断的 , ...
- BES平台(恒玄) ANC调试笔记
一 前言 最近比较忙,昨天更新了EQ 调试模块,今天就趁热打铁把ANC部分也写下. 主要说一些基于恒玄平台2500的ANC 环境搭配 软件设置 和 常见问题分析,个人见解,有不足之处,敬请锤教. 二 ...
- 恒玄BES调试笔记-BES2500 SBC和AAC
恒玄平台SBC和AAC相关代码可以看这个文件: services\bt_app\app_bt_stream.cpp 里面会有SBC和AAC的相关内容,也可以搜索关键字A2DP_AAC_ON. conf ...
- 恒玄BES调试笔记-BES2500低延迟
一般来说,客户会有低延迟的需求,恒玄平台低延迟相关代码可以看这个文件: services\bt_app\app_bt_stream.cpp 一般来说,用sbc来做低延迟游戏模式比较好,低延迟效果比较好 ...
- 恒玄BES调试笔记-BES2500如何制作OTA升级包
进入工程,Shift + 鼠标右键,打开Powershell窗口,输入命令即可! PS D:\best2300a_2500i_ibrt> python .\generate_crc32_of_i ...
- BES EQ调试讲解
下面简单的讲解下BES里面的EQ调试 一.代码相关的修改 这里就不对代码相关的修改进行讲解了 二.烧录软件 和正常烧录软件一样.如下图: 三.进入调EQ.DRC工具 连接上手机并且播放音乐,连接之后操 ...
最新文章
- MariaDB备份和恢复
- 体验 Orbeon form PE 版本提供的 JavaScript Embedding API
- SAP Spartacus PageMetaService 的单元测试
- 如何使用SAP APF里的过滤器
- MusicXML 3.0 (4) - 谱号
- 基于角色的访问控制'的权限管理的数据库的设计实现
- git 列出标签_Git标签介绍:如何在Git中列出,创建,删除和显示标签
- python画相关系数矩阵图_pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))...
- Spring MVC 接收POST表单请求,获取参数总结
- boost::serialization 用基类指针转存派生类(错误多多,一波三折)
- 男友问别人:你裙子里穿什么了?
- 天天生鲜社区团购运营平台
- Android SDK开发包 国内下载
- 达人评测 华为watch gt2和gt选哪个好
- Oracle EBS AP付款(退款)无法产生损失(LOSS)会计分录
- vue中使用svg矢量图
- Python 数据分析练习1:美国人口数据分析
- hotmai邮箱服务器在境外吗,服务器Hotmail邮箱pop3服务器设置方法
- 微信小程序:语音变声器支持多种音效与流量主
- uniapp ios端云打包失败,求助