隔了很久 ,这篇博客解说下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 调试和设定相关推荐

  1. bes2300 tws配对_功耗仅4mA!BES恒玄推出TWS蓝牙耳机芯片BES2300

    原标题:功耗仅4mA!BES恒玄推出TWS蓝牙耳机芯片BES2300 恒玄科技近期推出了第三代真无线蓝牙耳机立体声解决方案BES恒玄BES2300,这是恒玄科技两年多来不断追求创新,致力于降低功耗和提 ...

  2. bes2300 tws配对_华为、荣耀、小米、JBL都在用,12款内置BES恒玄方案TWS耳机拆解汇总...

    继智能手机之后,要说目前最为火爆的一个市场,可能就是真无线蓝牙耳机了.特别是从和对话式的诞生开始,蓝牙耳机已经成为消费类科技行业中,目前势头最好最成熟的一个. 作为TWS蓝牙耳机行业的,BES恒玄在真 ...

  3. BES(恒玄) 平台 复杂按键 实现

    昨天 有说到 LED 的配置 ,关于UI 的三大组件  :LED .按键 .提示音.今天就说下按键部分. BES 平台里面 包含了 大部分按键代码 : 按键l类型分power .普通GPIO按键 AD ...

  4. BES(恒玄) 提示音解析

    今天,继续讲解BES平台 UI 最后模块--- 提示音. 提示音这一块比较繁琐,也很容易出问题,我们就 提示音实现机制,问题点 做个全面的讲解. BES 提示音分为两种 触发模式 ,第一种是打断的 , ...

  5. BES平台(恒玄) ANC调试笔记

    一  前言 最近比较忙,昨天更新了EQ 调试模块,今天就趁热打铁把ANC部分也写下. 主要说一些基于恒玄平台2500的ANC 环境搭配 软件设置 和 常见问题分析,个人见解,有不足之处,敬请锤教. 二 ...

  6. 恒玄BES调试笔记-BES2500 SBC和AAC

    恒玄平台SBC和AAC相关代码可以看这个文件: services\bt_app\app_bt_stream.cpp 里面会有SBC和AAC的相关内容,也可以搜索关键字A2DP_AAC_ON. conf ...

  7. 恒玄BES调试笔记-BES2500低延迟

    一般来说,客户会有低延迟的需求,恒玄平台低延迟相关代码可以看这个文件: services\bt_app\app_bt_stream.cpp 一般来说,用sbc来做低延迟游戏模式比较好,低延迟效果比较好 ...

  8. 恒玄BES调试笔记-BES2500如何制作OTA升级包

    进入工程,Shift + 鼠标右键,打开Powershell窗口,输入命令即可! PS D:\best2300a_2500i_ibrt> python .\generate_crc32_of_i ...

  9. BES EQ调试讲解

    下面简单的讲解下BES里面的EQ调试 一.代码相关的修改 这里就不对代码相关的修改进行讲解了 二.烧录软件 和正常烧录软件一样.如下图: 三.进入调EQ.DRC工具 连接上手机并且播放音乐,连接之后操 ...

最新文章

  1. MariaDB备份和恢复
  2. 体验 Orbeon form PE 版本提供的 JavaScript Embedding API
  3. SAP Spartacus PageMetaService 的单元测试
  4. 如何使用SAP APF里的过滤器
  5. MusicXML 3.0 (4) - 谱号
  6. 基于角色的访问控制'的权限管理的数据库的设计实现
  7. git 列出标签_Git标签介绍:如何在Git中列出,创建,删除和显示标签
  8. python画相关系数矩阵图_pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))...
  9. Spring MVC 接收POST表单请求,获取参数总结
  10. boost::serialization 用基类指针转存派生类(错误多多,一波三折)
  11. 男友问别人:你裙子里穿什么了?
  12. 天天生鲜社区团购运营平台
  13. Android SDK开发包 国内下载
  14. 达人评测 华为watch gt2和gt选哪个好
  15. Oracle EBS AP付款(退款)无法产生损失(LOSS)会计分录
  16. vue中使用svg矢量图
  17. Python 数据分析练习1:美国人口数据分析
  18. hotmai邮箱服务器在境外吗,服务器Hotmail邮箱pop3服务器设置方法
  19. 微信小程序:语音变声器支持多种音效与流量主
  20. uniapp ios端云打包失败,求助

热门文章

  1. 新零售发展蓝海|全球无人零售货柜与无人便利店趋势兴起
  2. 微信聊天框如何隐藏(微信教程分享)
  3. java中的跳转语句_java中的跳转语句
  4. 【C++】特殊类设计
  5. 浙江省c语言二级的笔试真题及答案,浙江省高等学校C语言二级----笔试部分真题2007-2010年.doc...
  6. 批改网破解“禁止粘贴”
  7. 笔记-深入理解计算机系统
  8. JAVA常用类之Arrays工具类
  9. 《大型数据库技术,传智播客Java百度网盘
  10. 一张画布重塑你的职业生涯