双模式结合应用问题汇总
📎 原始文档:https://www.kdocs.cn/l/ckVCbCmHQrpd 双模式结合应用问题汇总
1、双模式切换使用文档:【金山文档】 无线麦双工和普通蓝牙耳机模式切换说明如下: 无线麦双工和普通蓝牙耳机模式切换说明.pdf
关于两个模式下的EQ效果文件:2.4G模式和经典蓝牙耳机模式下都需要增加EQ文件的说明如下: 双模式切换两个模式中都增加EQ文件注意说明.otl
关于双模式应用无线升级问题,可以采用切换到经典蓝牙耳机模式下,直接连接蓝牙测试盒进行无线升级,要注意的是,新的升级ufw文件必须是由点击2.4GSDK包中的earphone工程里面的download_copy.bat 生成的ufw,即已经将两个模式合并成一份下载文件之后的ufw文件。
关于提示音:提示音的tone.cfg 默认使用2.4G下的tone.cfg文件效果,所以需要更改或者调用提示音,请按照2.4G模式下的tone.cfg提示音配置进行修改。
关于无线麦1T1、2T1 、1TN等版本与普通游戏耳机结合的结合方式: 此时由于普通蓝牙耳机和2.4G无线麦部分结合代码均由我们自行添加,可参考以下文档实现:
案子开发问题处理
双模式切换,当经典蓝牙模式已经连接笔记本电脑(会自动回连)和dongle也插在同一个笔记本电脑时,耳机端切换到2.4G模式时,电脑自动切换音频很慢 原因:笔记本电脑本身切换慢,原因在于经典蓝牙部分切换模式前没有做蓝牙退出处理,导致笔记本电脑要等到超时断连后才能自动切换到dongle的音频播放。
解决办法:经典蓝牙模式下,在切换模式之前,多加蓝牙退出处理
701 耳机与duplex earphone 端做双模式结合应用,需要用到“杰理OTA”APP进行OTA升级时的配置修改:
单备份升级,修改duplex_earphone 端配置如下:

双备份升级, 需要双方都配置正确

耳机端同时需要关闭下面两个宏使能:
但是APP弹出升级成功后却没有升级程序,仍旧是使用旧版本的程序在跑
需要更换uboot 文件(仅wireless_mic_sdk-v1.4.2_duplex 版本替换,使用wireless_mic_sdk-v1.4.2_duplex_patch1不用替换)
wireless_mic_sdk-v1.4.2_duplex&&JL701n_earphone_release_v1.6.1_双模式切换双备份升级.rar
内部gitlab程序链接(已经更新使用wireless_mic_sdk-v1.4.2_duplex_patch1 与JL701n_earphone_release_v1.6.1做双模式结合 )不替换uboot时候完成双备份升级后能正常跳转到升级后的程序:
文件 · feature_1.4.2_duplex_patch1_双模式杰理OTA升级 · 自由品牌 / 客户支持 / SOUNDBOX / wireless_mic / wireless_mic_sdk · GitLab
3. 701 双模式切换保持IO口维持电平修改 解决办法:701双模式切换保持IO电平修改说明.pdf
需要注意的是,普通蓝牙耳机端同样是使用 latch_reset_t 这个接口,但是 注意 存放的段跟2.4G一样,都是 用 AT(.volatile_ram_code)
例子:
普通蓝牙耳机修改:

// AT_VOLATILE_CACHE_CODE_POWER
AT(.volatile_ram_code)
void latch_reset_t(void)
{
printf("latch_reset");
P3_LS_IO_DLY= 0x1;
power_set_mode(PWR_LDO15);
hw_power_set_soft_poweroff_prepare();
/*关 flash*/
hw_cache_idle();
hw_close_flash();
/*关所有电源的keep位 */
CLOSE_ANA_KEEP();
/*关 VCM、关lvd*/
/* VCM_DET_EN(0); */
/* P33_VLVD_EN(0); */
/*关 LRC*/
if (!M2P_LRC_KEEP) {
CLOSE_LRC();
}
/* soff_safety_check(); */
while (1) {
//p33_tx_1byte(P3_EFUSE_CON1, BIT(1)); //read enable
//ANA LAT
PVDD_ANA_LAT_EN(1);
DVDD_ANA_LAT_EN(1);
P33_WKUP_P11_EN(0);
/* clear_wkup_src_pnd(); */
//soff init
/* P33_SF_KICK_START(); */
JL_CLOCK->PWR_CON|= BIT(4);
}
}
并且 切换到另一边的sdk ,务必两边都要记得设置原有的IO状态
gpio_set_pull_up(IO_PORTC_03, 0);
gpio_set_pull_down(IO_PORTC_03, 0);
gpio_set_direction(IO_PORTC_03, 0);
gpio_set_output_value(IO_PORTC_03,1);
使用上述latch_reset_t()接口可以维持IO,但是无法再使用 cpu_reset_by_soft() 判断复位标识
需要使用中断向量 保存标记做判断
if ((!update && cpu_reset_by_soft() && get_check_key != CHECK_KEY) || (!update && get_check_key_ttp == CHECK_KEY_RESET && get_check_key != CHECK_KEY)) {

u32 *ttp = STORE_ADDR_RESET;
get_check_key_ttp = ttp[0]&0xff;

#define CHECK_KEY_RESET 0x88
#define STORE_ADDR_RESET ((u32 *)0x19FE00)+IRQ_SOFT3_IDX

u32 *ttp = STORE_ADDR_RESET;
ttp[0] = 0xff;
earphone 端修改:
///AT_VOLATILE_RAM_CODE
AT(.volatile_ram_code)
void latch_reset_t(void)
{
printf("latch_reset");
P3_LS_IO_DLY= 0x1;
power_set_mode(PWR_LDO15);
hw_power_set_soft_poweroff_prepare();
/*关 flash*/
hw_cache_idle();
hw_close_flash();
/*关所有电源的keep位 */
CLOSE_ANA_KEEP();
/*关 VCM、关lvd*/
/* VCM_DET_EN(0); */
/* P33_VLVD_EN(0); */
/*关 LRC*/
if (!M2P_LRC_KEEP) {
CLOSE_LRC();
}
/* soff_safety_check(); */
while (1) {
//p33_tx_1byte(P3_EFUSE_CON1, BIT(1)); //read enable
//ANA LAT
PVDD_ANA_LAT_EN(1);
DVDD_ANA_LAT_EN(1);
P33_WKUP_P11_EN(0);
/* clear_wkup_src_pnd(); */
//soff init
/* P33_SF_KICK_START(); */
JL_CLOCK->PWR_CON|= BIT(4);
}
}

u32 *ttp = STORE_ADDR_RESET;
ttp[0] = CHECK_KEY_RESET;



#define STORE_ADDR_RESET ((u32 *)0x19FE00)+IRQ_SOFT3_IDX
#define CHECK_KEY_RESET 0x88
- 701 双模式切换,普通蓝牙耳机端程序需要加ANC 资源文件的修改办法: 主要的一个思想就是 配置2.4G 程序下的earphone 工程中的
但是双模式结合的程序,最终使用的.ini 文件的配置是需要在duplex 程序中配置isd_config_rule.c的,
范例修改:
使用的芯片是JL7018M6,flash空间容量为16Mb,
ANC配置区起始地址配置需要按照注释合理分配。
