蓝牙在线调eq说明
📎 原始文档:https://www.kdocs.cn/l/cegW41C0AfHf 蓝牙在线调eq说明
sdk-蓝牙eq补丁下载链接(点击下载)
↑↑↑(≧∇≦)ノ 补丁文件下载链接↑↑↑
一、编写目的:
本文档的编写目的在于协助用户添加蓝牙调eq功能,原本sdk提供了usb、uart调eq两种方式,但对于手表项目来说均需要拆机,接线,才能够进行在线eq调试,对eq的调试造成了一定不便,故新增整机调eq的方式,也就是使用蓝牙spp调eq,支持手表本地音乐实时调试和电脑音频播放实时调试。
*本补丁基于sdk211进行修改,所有修改只涉及到应用层,不需要修改底层,其他版本sdk也同样适用,用户可移植到自己的工程上,只需可以通过搜索TCFG_SPP_COMM、USER_SUPPORT_PROFILE_SPP、APP_ONLINE_DEBUG和SMART_BOX_EN将对应修改同步到工程即可。但需要注意的是,不建议将调试eq的固件版本作为发布版本,这是因为在进行蓝牙在线调试eq时会将某些功能关闭,以防止一些功能出现冲突,所以客户在调eq结束,保留对应的eq文件(eq_cfg_hw.bin),需要把一些宏还原回原本的设置(详情请见下文)。
二、流程说明:
蓝牙调试eq与usb和uart调eq相似,使用的工具也相同,大体流程如下图所示:
修改板级文件 需要打开对应的宏,固件支持在线调试功能,同时需要关闭rscp的宏,防止冲突,由于关闭了部分宏,此时固件的功能可能是不完整的,但对调试eq是没有影响的,最终的目的是输出eq音效文件;
电脑连接手表蓝牙&调试eq
带有蓝牙模块的电脑可以直接连接手表蓝牙,而没有蓝牙模块的可以通过蓝牙适配器(dongle)去连接手表蓝牙,电脑端的eq工具通过spp与固件通信,从而实现蓝牙调eq的目的;输出eq_cfg_hw.bin 调eq结束后,工具里面选择保存音效文件,会生成eq_cfg_hw.bin,而这个文件也就是我们需要的eq文件,将这个文件通过批处理打包并下载后,eq才会正式生效;
还原板级文件 当获取到需要的eq_cfg_hw.bin后就可以把在线调试相关的功能关闭了,以及把因使用该功能而关闭的功能复原。
三、调试步骤:
在进行这一章节的操作时,请确保已经打上补丁(见文档顶部)!!!
- 配置相关的宏 *注意:调试步骤的所有配置默认已经包含在补丁(见文档顶部)里,已经打上补丁的用户只需要核对和确保以下配置与说明一致即可,该章节的目的在于说明相关配置宏的作用,以及提醒已经打上补丁的用户如何开启和关闭蓝牙在线调eq功能。
a.板级文件
这里以board_701n_demo_cfg.h为例,用户需要在自己使用的板级文件里面进行相同的操作:
#define TCFG_EQ_ENABLE 1 //支持EQ功能,EQ总使能
eq总使能置一,使用到eq时需要将TCFG_EQ_ENABLE打开,调试eq结束后也不能清零,一方面是开启这个这个宏,eq文件才能够生效,另一方面是只有保留了TCFG_EQ_ENABLE打开的状态,用户才知道自己调的是真eq。

#define TCFG_EFFECT_TOOL_ENABLE ENABLE//DISABLE //是否支持在线音效调试,使能该项还需使能EQ总使能TCFG_EQ_ENABL,
#define TCFG_COMM_TYPE TCFG_SPP_COMM//TCFG_USB_COMM //通信方式选择
TCFG_EFFECT_TOOL_ENABLE置一,以及选择蓝牙SPP通信,其中调eq结束后可以把TCFG_EFFECT_TOOL_ENABLE清零。

#define APP_ONLINE_DEBUG 1//在线APP调试,发布默认不开
#if APP_ONLINE_DEBUG //开启在线调试后需要配置的功能
#undef USER_SUPPORT_PROFILE_SPP
#define USER_SUPPORT_PROFILE_SPP 1
#undef TCFG_USER_EMITTER_ENABLE
#define TCFG_USER_EMITTER_ENABLE 0
#undef TCFG_USER_BLE_CTRL_BREDR_EN
#define TCFG_USER_BLE_CTRL_BREDR_EN 0
#undef TCFG_BLE_BRIDGE_EDR_ENALBE
#define TCFG_BLE_BRIDGE_EDR_ENALBE 0
#undef DOUBLE_BT_SAME_MAC
#define DOUBLE_BT_SAME_MAC 0
#endif //APP_ONLINE_DEBUG
APP_ONLINE_DEBUG置一,打开在线APP调试,板级文件中打开APP_ONLINE_DEBUG后,USER_SUPPORT_PROFILE_SPP也会被打开,需要确保APP_ONLINE_DEBUG和USER_SUPPORT_PROFILE_SPP同时为1,调试eq结束后,需要把APP_ONLINE_DEBUG和USER_SUPPORT_PROFILE_SPP还原;

#define SMART_BOX_EN 0
关闭rcsp功能,防止功能冲突,调试eq结束后,需要将SMART_BOX_EN还原;

#define TCFG_USER_EMITTER_ENABLE 0//1 //emitter功能使能
根据需求打开TCFG_USER_EMITTER_ENABLE,为1时电脑不会连接手表a2dp,此时手表只能调本地音乐(如sd卡中的音乐)的eq,为0时电脑可以连接手表a2dp,故可以在电脑端打开音频,并将音频输出到手表,并且调eq。
b.macro_default.h文件

#define APP_PROTOCOL_READ_CFG_EN 1//0
打开APP_PROTOCOL_READ_CFG_EN,调eq结束后需要将其复原,到目前为止,软件配置完毕。
- 电脑连接手表蓝牙 接下来以WIN11为例演示连接蓝牙步骤,WIN10连接步骤基本一致,在此不再赘述。
右下角点击蓝牙图标,跳转蓝牙设置界面;
点击添加设备,找到自己的设备并且连接,连接成功后如上图的②显示,点击显示更多设备,进入下一个界面;
点击更多蓝牙设置;
记录传出的端口,这里为COM10;
打开新eq工具;
选择传出的端口,这里为COM10,由于COM10为蓝牙链接上的串行标准,工具里会自动选择蓝牙,此时点击打开;
通信成功,双击musicEQ,进入eq调试界面;
到这里,用户就可以播放音乐调eq了,调整eq曲线后,会实时作用到播放的音频当中,如果是本地音乐,用户可以直接在手表端的音乐模式中播放音乐,如果是电脑端的音频,电脑上还需要切换音频如下所示:

输出eq文件
调试结束后,eq工具中保存音效文件,输出eq_cfg_hw.bin。还原相关的宏 将除TCFG_EQ_ENABLE以外的宏,即TCFG_EFFECT_TOOL_ENABLE、APP_ONLINE_DEBUG、USER_SUPPORT_PROFILE_SPP、SMART_BOX_EN、TCFG_USER_EMITTER_ENABLE和APP_PROTOCOL_READ_CFG_EN还原到调eq之前的状态。
四、常见问题
蓝牙连接上了,能看到蓝牙的端口号,但eq工具端口打开失败 尝试给样机重新上电,电脑重启蓝牙,重新拔插dongle。
eq工具显示端口打开成功,命令失败,超时 检查是否将SMART_BOX_EN关闭,以及检查补丁(见文档顶部)中以下两个地方是否有同步过去,同时加打印检查是否有跑:

正常情况下以上两个地方都会跑。端口打开成功,能进入eq调试界面,但播歌过程中调试eq曲线就断开蓝牙连接,设备离线
检查以上代码是否有同步到工程,同时留意是否有DEVICE_EVENT_ONLINE_DATA打印出来,正常情况下在这里会应答eq工具。