KDocs 研发资料库
  • 音频技术应用文档入口汇总
  • 杰理WINDOWS环境安装及其他事项
  • LINUX安装和编译
  • Linux环境编译SDK教程(ubuntu18.04)
  • 音频类补丁汇总表
  • 认证资料获取汇总(最新资料后台会更新)
  • 《Hi-Res申请指南v1.0》
  • FreeRTOS 开源协议版本
  • uCOS 开源协议版本信息
  • 各个模块关键资料汇总
  • 软件调试方法
  • Makefile编译
  • 提bug的规范
  • 常规设备使用指导
  • 对外特别发布开发注意点信息汇总
  • AD697X软件问题整理
  • AC700N软件问题整理
  • AC701X耳机软件问题整理
  • 951&961软件问题整理
  • AC104X软件问题整理
  • AC128N问题整理文档
  • 可视化工具调试问题整理
  • 耳机资料汇总
  • AC704N、 AC705N相关应用
  • AC695N&AC696N&AC608N音箱问题整理
  • JL701N音箱问题整理
  • AC692X软件问题整理
  • AC706N音箱问题整理
  • JL701N音箱问题整理(可视化工具SDK)
  • JL703N音箱问题整理
  • JL709N(JL689N)音箱问题整理
  • JL7094系列-入门到进阶开发指导
  • AC210N音箱问题整理
  • 无线麦系列版本支持指南
  • AW32N无线麦问题整理
  • lAD697X&JL701X 无线麦软件共性问题整理
  • AC706N无线麦问题整理
  • AW36N无线麦问题整理
  • AC710X无线麦问题整理
  • 唤醒源获取及唤醒IO设置
  • 电源
  • LVD
  • 长按复位配置方法
  • 低功耗应用
  • TIMER
  • UART
  • SPI
  • 内部FLASH空间添加用户自定义区域
  • IIC
  • GPIO
  • MCPWM
  • SD&U盘
  • 时钟&晶振
  • GPCNT
  • IO口crossbar映射功能
  • 文件系统使用总结
  • 复用应用
  • LINEIN_AUX相关应用
  • IIS音频接口应用
  • SPDIF模式相关(HDMI_ARC、光纤、同轴)
  • PDM LINK
  • 外设相关应用
  • 蓝牙相关
  • 杰理蓝牙距离调试文档
  • TWS耳机配对方式使用及生产把控指南
  • GFP谷歌快连及其认证流程指引
  • 蓝牙发射器(bt_emitter)相关
  • BLE应用
  • 关于提升BLE传输速率说明
  • BLE测试数据
  • MUSIC 模式相关应用
  • MIDI音乐实现
  • PC相关应用
  • FM相关应用
  • AC695N_AC696N FM天线ESD静电防护措施说明V2.0_20250107
  • fm应用详细设计说明书
  • 杰理FM硬件指南-20230315
  • ADC模块
  • AUDIO相关应用
  • 新Tools的音效调试使用
  • 混响应用使用说明
  • 音效调式
  • 音箱耳机低音小音量增强实现方法
  • DAC输出功率调试
  • DAC性能测试指南
  • 针对各类底噪、电流声分析流程
  • 录音相关应用
  • OPUS编解码相关
  • RTC相关应用
  • 升级相关
  • UI相关应用
  • 通话调试流程指南
  • 通话相关应用
  • 省电容mic使用手册
  • 如何测试验证手表通话系统的语音失真 V1.0
  • AC695X_AC696X_AD697X 常见通话问题处理参考资料
  • 通话调试问题确定步骤
  • 内置触摸调试指南
  • 低功耗内置触摸介绍V2.2
  • 触摸相关文档
  • AC697X、AC698X内置触摸调试及整改方法V1.0
  • 产测相关应用
  • AC63X BLE DUT测试介绍
  • 兆华序列使用简易说明
  • JL_1T2蓝牙测试盒音频文件更换说明
  • ENC相关应用入口汇总
  • ANC相关应用入口汇总
  • JL DMS通话调试手册-V3.9.4
  • ANC-ENC结构设计要点-20240407
  • 半入耳式ANC耳机器件选型与结构设计指南V1.0
  • JL 耳道自适应调试指南
  • ANC相关问题处理
  • ANC调试文档
  • 评估蓝牙耳机通话上行降噪性能的方法 V1.0 (2)
  • FCC 或者 BQB 认证相关应用
  • BQB profile 测试中常遇到的问题点汇总
  • 蓝牙参数整理20210811
  • 杰理科技认证问题参考
  • 无线音频产品开发指南
  • 无线麦系列从入门到进阶开发指导
  • 量产烧录相关说明
  • 一拖八烧录器远程过程调用说明
  • 量产相关建议
  • EffectTool(eq)调试工具说明文档
  • AC897AD697系列的EQ调试方法-V3
  • 杰理调音指南-20220622
  • 音效模块总结
  • 简要调音步骤指引(可视化)
  • 耳机充电与通信调试指南
  • 充电仓硬件调试指南
  • 充电仓软件问题整理
  • AC951常用说明
  • AC951_AC961_开发板使用说明V1.0
  • 彩屏仓AC982 入门指导及FAQ
  • 蓝牙音频APP相关应用
  • 手机APP的简介和开发流程
  • 蓝牙音频系列-硬件设计指南
  • 静电测试及整改方法-20220706
  • TWS耳机底噪整改指南V1.2
  • 杰理蓝牙距离调试文档
  • 蓝牙RF硬件设计与调试V1.1-20250219
  • AC695N_AC696N FM天线ESD静电防护措施说明V2.0_20241228
  • 音效调试指南
  • 无线话筒K歌音箱标准开发流程
  • 杰理科技 700N TWS耳机产品标准-202303
  • 杰理科技 701N 广播产品标准-202303
  • JL-HAT ANC高效产测自适应
  • 无线话筒测试板使用介绍
  • 一拖八频偏校准使用说明
  • 领夹麦产测工具使用介绍
  • Dongle量产测试说明
  • Dongle+Tws或头戴式 SDK通过工具绑定配对功能说明文档
  • 双麦ENC产测宏配置验证方法 V1.0
  • JL耳机方案麦克风声学测试指令_V1.0
  • JL耳机方案麦克风声学测试指令_V2.0
  • JL_ENC自动测试命令_V0.0.1
  • JL蓝牙测试盒用例说明
  • LDAC自测环境搭建_ubuntu
  • 延迟小板使用手册
  • 杰理库文件的制作及添加实现过程
  • 关于 AC635N&AC636N系列免晶振兼容性补丁 说明
  • 关于 AC63系列VM兼容性修复补丁_20250224 说明
  • 关于 AC632N &AE632N_ 蓝牙& 低功耗兼容性修复补丁 说明
  • AD698N和AC638N电压优化补丁V3说明
  • 关于 AC635N&AC636N漏电和E&G版兼容联合补丁 说明
  • AD698N和AC638N电压优化补丁V2说明
  • 702相关应用
  • 2024-4-30 发布歌词显示SDK开发注意事项
  • BQB RF & FCC 认证测试固件问题汇总及源码
  • BQB profile 测试中常遇到的问题点汇总
  • 进dut测试模式方法及固件
  • 704-频偏修改bin文件合集
  • 701手表BQB PROFILE认证注意事项
  • 认证的干扰规避整改
  • 海外CRA认证报告生成说明
  • JL700N可视化工具问题处理文档
  • JL701X可视化工具问题处理文档
  • JL701N_earphone_release_v1.6.0_ANC 低功耗问题补丁
  • JL708X可视化工具问题处理文档
  • JL709N可视化工具问题处理文档
  • JLstudio可视化工具使用说明
  • 一拖二-串口_蓝牙_app在线EQ、通话参数及调试方式和内置触摸调试
  • 可视化JL701M_DONGLE_SDK添加MIC为发射源
  • 可视化JL701M_DONGLE_SDK添加按键切换usb audio与MIC发射源
  • JL701M_DONGLE_SDK_1.0.0_dongle输入linein输出dac
  • 701可视化_a2dp_to_le_demo说明
  • 耳机系列demo汇总
  • JL7018F&JL7006F_7003F AUX IIS
  • 一键连接应用
  • 普通SDK动态开关一拖二功能
  • 蓝牙分析仪(EllisysBluetoothAnalyzer)抓包例程
  • TWS配对常见应用
  • APP自定义按键的demo
  • AC700N 播歌双EQ DEMO示例及说明
  • AC698V164 MIC与蓝牙音乐共同输出DAC demo
  • 添加第三方算法以及多算法授权流程
  • 空间音频配置方法
  • 普通高低电平TWS耳机控制通讯
  • 入耳检测状态更新demo解析
  • 资源优化(非可视化的SDK)
  • 资源优化(可视化SDK)
  • 翻译耳机、语音识别应用demo
  • 耳机抗干扰问题排查和优化
  • AC698D2 抗干扰优化
  • AC696X软件问题整理
  • AC695X软件问题整理
  • AC695X软件问题整理_1722249702
  • AC608X软件问题整理
  • JL701N_2T1_DUPLEX 应用软件问题汇总
  • le_audio_1.0.0_patch05 以及之前的版本IRkey 功能异常修改
  • AC706N-le_audio-200SDK有线_无线麦录音demo
  • jl701n_le_audio_v200patch02 IO串口升级修改串口单次发送字节长度的修改办法
  • 703创建IIS 输入dac输出音频流demo
  • 703将媒体流音频同时上传PC_mic录音demo实现
  • 703四路IIS输入输出demo
  • 底噪调试
  • AW328A烧录说明
  • 文档合集
  • AC706N_wireless_mic_release_PATCH_20240712 补丁 说明
  • AC706N_wireless_mic_release_PATCH_20240726 补丁 说明
  • AC706N_wireless_mic_release_V1.0.0、1.0.1、1.0.2 补丁 说明
  • AC706N_wireless_mic_release_V1.1.2 中的2T1应用 RX端不绑定配对,TX端实现绑定配对的修改方法
  • 各系列省晶振实现方法
  • iis tx rx说明文档
  • spdif信号
  • 蓝牙电话本
  • 安卓手机同步时间补丁
  • CDC配置
  • PC模式下增加Teams唤起功能
  • 杰理HDMIARC开发实现过程
  • AC701N patch06之前的版本用第三方算法节点实现新版本的pcm delay节点功能
  • (K歌音箱)各SDK音效配置相关说明
  • 长文件录音
  • 点阵屏歌词字库相关(蓝牙歌词,普通歌词)
  • 字模提取工具说明
  • 音箱可视化彩屏-入门到进阶开发指导
  • 彩屏LVGL UI设计及工具使用
  • 使用内部UI框架进行UI调试的系列步骤
  • AD101C使用强制升级工具spi 烧录不了问题处理(测试版本)
  • AD161扩展灯板说明文档
  • 歌词显示器开发注意项
  • 使用硬件数字增益控制通话下行音量(可视化)
  • 杰理小牛产测资料
  • ENC配置说明
  • 通话调试流程指引
  • ANC相关功能demo
  • 无线麦硬件资料汇总
  • 无线麦相关应用
  • 无线麦复杂功能补丁包汇总
  • 无线话筒形态SDK程序&开发经验&问题点分享
  • 双模式结合应用问题汇总
  • 无线麦距离优化案例
  • 无线麦系列中的双工形态(duplex)演变开发对讲机方案开发资料
  • 音箱入门到进阶指导文档(编写中)
  • 蓝牙耳机品控和生产技巧
  • 982过_欠压标志获取异常
  • 如何获取最新涂鸦SDK及库文件
  • 无线话筒K歌音响-调音标准流程
  • 无线话筒产测流程

JL701X可视化工具问题处理文档

📎 原始文档:https://www.kdocs.cn/l/cmUDJueI2jaW JL701X可视化工具问题处理文档

  1. 在配置工具添加按键,比如添加上一曲、下一曲按键,按键按下会复位问题 20230519 FSW 如下图添加按键后,会导致复ANC
    image 复位log如下
    image 原因:部分版本SDK没有针对新增按键添加对应的功能特性(也就是没有定义这个按键可以执行的按键操作),需要在代码中添加,例如新增上一曲下一曲按键时,需要在key_ability.c中添加下面的代码,其他按键同理
static const struct scene_event key_next_event_table[MAX_NUM_KEY_MSG] = {
    [0] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_CLICK)    //click
    },
    [1] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_LONG)    //long
    },
    [2] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_HOLD)    //hold
    },
    [3] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_UP)    //up
    },
    [4] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_DOUBLE_CLICK)    //double click
    },
    [5] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_TRIPLE_CLICK)    //triple click
    },
    [6] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_FOURTH_CLICK)    //fourth click
    },
    [7] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_FIRTH_CLICK)    //firth click
    },
    [8] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_HOLD_3SEC)    //hold 3s
    },
    [9] = {
        .event = APP_KEY_MSG_REMAP(KEY_NEXT, KEY_ACTION_HOLD_5SEC)    //hold 5s
    },
};

REGISTER_SCENE_ABILITY(key_next_ability) = {
    .uuid   = UUID_KEY_NEXT,
    .event  = key_next_event_table,
};

static const struct scene_event key_prev_event_table[MAX_NUM_KEY_MSG] = {
    [0] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_CLICK)    //click
    },
    [1] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_LONG)    //long
    },
    [2] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_HOLD)    //hold
    },
    [3] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_UP)    //up
    },
    [4] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_DOUBLE_CLICK)    //double click
    },
    [5] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_TRIPLE_CLICK)    //triple click
    },
    [6] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_FOURTH_CLICK)    //fourth click
    },
    [7] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_FIRTH_CLICK)    //firth click
    },
    [8] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_HOLD_3SEC)    //hold 3s
    },
    [9] = {
        .event = APP_KEY_MSG_REMAP(KEY_PREV, KEY_ACTION_HOLD_5SEC)    //hold 5s
    },
};

REGISTER_SCENE_ABILITY(key_prev_ability) = {
    .uuid   = UUID_KEY_PREV,
    .event  = key_prev_event_table,
};
  1. JL701可视化配置工具,软件版本V1.0.0,芯片烧录了KEY,但是编译下载时提示芯片没有烧录KEY 20230519 FSW 需要将ac701n_earphone_release_v1.4.0的br28loader.bin替换到可视化工具的SDK中
  2. AC701N-demo 1.0.0(patch_01),使能这个智能仓就会出现报错,编译不过 LJW 报错信息:
    image 修改方式:在apps\earphone\mode\bt\bt_tws.c下加上这段代码
bool get_tws_phone_connect_state(void)
{
    if (gtws.state & BT_TWS_PHONE_CONNECTED) {
        return TRUE;
    }
    return FALSE;
}
  1. AC701N-demo 1.0.0(patch_01),LED配置的IO选项里没有PG、PE口 LJW 如下图,以修改PG5口为LED口作为例子:
    image
  2. AC701N-demo 1.0.0(patch_01),无连接关机时间,最大只能设置300S LJW 如下图中修改,可以修改自己想要的时间,文件路径:apps\earphone\include\sdk_config.h
    image
  3. AC701N-demo 1.0.0(patch_01),使能ANC,会报错提示文件不存在以及文件长度等问题 LJW (1)在目录:SDK\cpu\br28\tools,添加anc_coeff.bin和anc_gains.bin文件;
    (2)添加效果文件后,编译可能会报超过文件长度的问题,修改如下:
    image
  4. AC701N-demo 1.0.0(patch_01),按键去切换ANC模式无效果,打印显示“audio_anc open Failed: -1” LJW 如下图所示,可能的原因为(1)非差分MIC,(2)混合馈使用4Mbit的flash
    image (1)MIC配置的地方:
    image (2)FLASH大小配置的地方:
    image
  5. 按键执行TWS同步关机时,没有关机灯效问题 20230601 FSW image
  6. 可视化工具多个EQ效果切换 20230612 FSW 先添加EQ效果
    imageimageimage 使用如下接口切换添加好的多个EQ
#define CFG_FILE_MAX_EQ_NUM  3//有多少个EQ效果这里就填多少
static u8 curr_eq_index = 0;
void eq_effect_switch(u8 index)
{
    if(index == 0xff){
        curr_eq_index++;
    }
    else{
        curr_eq_index = index;
    }
    if(curr_eq_index >= CFG_FILE_MAX_EQ_NUM){
        curr_eq_index = 0;
    }

    eq_file_cfg_switch("MusicEqBt", curr_eq_index);
}
  1. 给低延时模式配置一个独立的EQ效果 20230614 FSW image

  2. AC701N-demo 1.0.0(patch_05)灯效时长与配置效果不符 20230619 JWK 原因:时钟分频代码没有同步完全
    修改如下:
    imageimageimage

  3. AC701N-demo 1.0.0(patch_05)PG8口做按键不起作用 20230703 LJW image

  4. AC701N-demo 1.0.0(patch_04)配置AD按键无作用 20231020 JWK 原因:发布版本的时候改了工具布局,代码没有对应修改,导致格式不对应
    修改方法:
    imageimage

  5. dongle接PS4声音小的问题 20231120 FSW image

  6. AC701N-demo 1.0.0(patch_05.11)以后,改蓝牙通话类型报错 20231227 CKS usb audio的节点改成跟蓝牙通话一样
    image

  7. AC701N-demo 1.0.0(patch_05.18)使能透传,软关机异常死机 20240122 LJW 替换库文件:
    btctrler-TWS耳机_AC701N-demo_1.0.0(patch_05.18)_-修复使能ble关机死机.7z

  8. 可视化SDK关机后DAC没有设置高阻问题 20240126 FSW 仅对以下版本以及更旧版本有效,其他版本需测试
    image 定义下面的函数,底层会自行调用

void hw_close_dac(void)
{
    memset(JL_ADDA, 0x0, sizeof(JL_ADDA_TypeDef));
    SFR(JL_ADDA->DAA_CON2, 15,  1,  1);
    SFR(JL_ADDA->DAA_CON2,  5,  1,  1);
}
  1. 可视化实现多带WDRC 20240202 FSW image
  2. JL701N可视化AI和在线调试共存修改 20240221 FSW 同时开启AI和在线调试(ANC、EQ等),会导致在线调试失效,相关SDK为
    image 其他可视化SDK版本也可参考
    需要按照下面的流程修改
    在spp_online_db.c添加函数
void online_spp_state_cbk_api(u8 state)
{
    online_spp_state_cbk(state);
}

void online_spp_send_wakeup_api(void)
{
    online_spp_send_wakeup();
}

void online_spp_recieve_cbk_api(void *priv, u8 *buf, u16 len)
{
    online_spp_recieve_cbk(priv, buf, len);
}

在multi_protocol_common.c添加函数

void online_spp_state_cbk_api(u8 state);
void online_spp_send_wakeup_api(void);
void online_spp_recieve_cbk_api(void *priv, u8 *buf, u16 len);
void app_spp_recieve_callback(void *hdl, void *remote_addr, u8 *buf, u16 len)
{
    log_info("%s %x\n", __func__, (u32)hdl);
    put_buf(buf, len);
    online_spp_recieve_cbk_api(hdl, buf, len);
}
void app_spp_state_callback(void *hdl, void *remote_addr, u8 state)
{
    log_info("%s %x state %d\n", __func__, (u32)hdl, state);
    online_spp_state_cbk_api(state);
}
void app_spp_send_wakeup_callback(void *hdl)
{
    log_info("%s %x\n", __func__, (u32)hdl);
    online_spp_send_wakeup_api();
}

在multi_protocol_common_callback_init函数中添加代码

    if (multi_protocol_spp_hdl == NULL) {
        multi_protocol_spp_hdl = app_spp_hdl_alloc(0);
        if (multi_protocol_spp_hdl == NULL) { 
            log_info("multi_protocol_spp_hdl alloc err !!\n"); 
            return; 
        }
    }

    app_spp_recieve_callback_register(multi_protocol_spp_hdl, app_spp_recieve_callback);
    app_spp_state_callback_register(multi_protocol_spp_hdl, app_spp_state_callback);
    app_spp_wakeup_callback_register(multi_protocol_spp_hdl, app_spp_send_wakeup_callback);

image 20. 可视化使用默认音量表(需求自定义音量等级时使用)20240221 FSW 见:自定义数字音量的方法
21. 通话中允许回连和可连接 20240221 FSW JL700N可视化工具问题处理文档.otl
22. 可视化SDK添加高低音接口 20240222 FSW 见:AUDIO相关应用.otl
23. 双BLE做两路RCSP,修改profile以及处理自定义数据的方法 20240229 FSW 以下修改在旧版本(patch05以及部分内测版本)有效,新版本SDK请参考项目帮助文档
imageimage 1、添加数据接收函数,底层收到数据会调用

void bt_rcsp_custom_recieve_callback(u16 ble_con_hdl, void *remote_addr, u8 *buf, u16 len, uint16_t att_handle)
{
    printf("%s  %d\n", __func__, att_handle);
    put_buf(buf, len);
}

2、修改profile

    extern void *rcsp_server_ble_hdl;
    extern void *rcsp_server_ble_hdl1;
    extern int app_ble_profile_set(void *_hdl, const uint8_t *db);
    app_ble_profile_set(NULL, NULL);
    app_ble_profile_set(rcsp_server_ble_hdl, multi_profile_data);
    app_ble_profile_set(rcsp_server_ble_hdl1, multi_profile_data);


放在下图的位置
image 24. TWS耳机AC701N-demo1.0.0(patch_05.26)USB扬声器设成24bit,连接Windows电脑播歌,会出现内存泄漏LJW image 下面箭头指向处,要选择24BIT
image 如果使用24BIT,播歌时出现卡顿,需要改一下缓存时间
imageimage 25. TWS耳机_DONGLE AC701N-demo1.0.0(patch_08)混合馈ANC,连接蓝牙后切ANC,会出现杂音。LTY 原因:连接蓝牙未播放歌曲的情况下会进入低功耗模式,内核电压不对。
修改方法:换CPU库
【金山文档】 cpu(修改701TWS耳机DONGLE混合馈连接蓝牙后ANC杂声问题)
https://kdocs.cn/l/cqi8nX59zs7b
26. TWS耳机_AC701N-demo_1.0.0(patch_05.26)获取已连接手机的a2dp音频编码格式 LJW 修改方法:
第一步,替换btstack.a,rebuild工程。
【金山文档】 btstack_TWS耳机_AC701N-demo_1.0.0(patch_05.26)__获取手机的音频解码格式
btstack_TWS耳机_AC701N-demo_1.0.0(patch_05.26)__获取手机的音频解码格式.7z
第二步,在应用层定义一个函数,该函数底层弱定义。

void user_a2dp_set_configure_code_type(u8 *addr, u32 code_type, u32 priv)
{
    printf("%s ,code_type = 0x%x\n",__func__,code_type);
    put_buf(addr, 6);
}

image 27. TWS耳机_AC701N-demo_1.0.0(patch_05.26)单声道自定义音频流使用ThreeD模块无声处理 ThreeD模块只支持立体声输出,如果要用需要使用Channel Merge模块进行声道提取
imageimage Channel Merge模块的声道获取需要进行应用层补充,jlstream_event_handler.c如下修改:

static int tws_get_output_channel()
{
    int channel = AUDIO_CH_MIX;
    if (tws_api_is_connect()) {
        channel = tws_api_get_local_channel() == 'L' ? AUDIO_CH_L : AUDIO_CH_R;
    }
    return channel;
}

static int get_merge_node_callback(const char *arg)
{
    return (int)tws_get_output_channel;
}

int jlstream_event_notify(enum stream_event event, int arg)
{
    //...原代码
    //补充以下代码
    case STREAM_EVENT_GET_MERGER_CALLBACK:
        ret = get_merge_node_callback((const char *)arg);
        break;
    //...原代码
}
  1. 耳机进入sniff待机有概率断开蓝牙修复 image osc_change_mode改成1
  2. BLE属性的Tx Add从public改成random 开adv广播包之前设置ble地址属性

        u8 tmp_ble_addr[6];
        memcpy(tmp_ble_addr, (void *)bt_get_mac_addr(), 6);
        put_buf(tmp_ble_addr, 6);
        ble_op_set_own_address_type(1);
        le_controller_set_random_mac((void *)tmp_ble_addr);

image 30. AC701N-demo 1.0.0(patch_05.30)PC audio接苹果15手机通话近端无声 20240426 FSW 按下图修改
image 31. 可视化SDK使用测试盒配对,会有概率配对不上 20240426 FSW' 按照下图修改
imageimageimage 32. GFPS开启相关打印 u8 gfp_debug_enable = 0x03; // BIT(0):printf BIT(1):put_buf
应用层定义该变量后rebuild
33. 701N V100 patch_05_30,本地mic to dac兼容三mic处理 附上Demo链接:3mic产测Demo.rar
修改思路及步骤说明:

  1. 由于adc检测的fmt只支持单声道或者LR,因此三麦的数据这里无法直接处理,需要做成双麦处理,adc获取声道数量需要限制到2声道 image

  2. adc设置fmt的地方也需要做双声道的限制 image

  3. adc采集输出部分,三麦的数据采集后,抽取其中两通道的数据输出 imageimage

  4. 由于流程输出只有双通道,因此如果要测第三个麦,需要把其中一路数据替换然后输出 image

  5. 产测里面流程图ADC节点的名字需要改成如下 image

  6. 虚拟低音保留低频成分 20240507 FSW 先检查工具是否有配置,有配置就直接改配置即可
    image 没有就改代码
    image

  7. 701 patch0531空间音频(不带陀螺仪)数据流控制demo FZF 701N可视化patch0531空间音频流节点控制demo.otl

  8. 701 旧版本开机跑初始化如果不播开机提示音且播放其他提示音,会导致tws初始部分不跑 FZF image

  9. 701N V1.0.0 patch_05.31开启带陀螺仪空间音频,声音异常问题 20240517 FSW 数据流要添加如下节点
    image

  10. 701可视化ANC打开风噪检测\智能免摘\ANC自适应,如果左声道的FF或者FB麦配置了通话没有用到的mic通道,默认流程会由于初始化esco adc采集的buffer的大小没算上这个mic的大小,会导致通话复位 FZF ANC类似如此配置:
    image 修改方法如下:
    image 替换adc_file.c
    【金山文档 | WPS云文档】 adc_file_fix开ANC风噪检测
    https://kdocs.cn/l/cjlPEHqF3ofj

  11. 701可视化0531 ANC耳道自适应播歌打开后自适应提示音播报结束后播歌无声 FZF 按照如下修改
    imageimage

  12. 可视化SDK单左耳或者单右耳使用都是只播了左声道 20240524 FSW 见JL700N可视化工具问题处理文档.otl第42点

  13. 可视化0531版本ANC风噪检测立体声配置FFmic顺序不是依次的情况下风噪检测异常修复及立体声头戴支持LR风噪检测都有效 FZF 替换.c
    【金山文档 | WPS云文档】 icsd_adt_app_优化ANC风噪检测mic顺序问题
    https://kdocs.cn/l/cmpbrcC6i4Gu

  14. 电脑通话时,手机来电会出现电脑的esco链路被断开 FZF 蓝牙一拖二场景按照这个修改
    image

  15. ANC mic增益进入通话后被改动导致的ANC问题处理 FZF image

  16. patch_0531同时开来电报号和按键提示音通话变调问题处理 GFH 来电时,按键接听采样率不对导致声音异常,下版本更新
    patch_05_31替换 madia.a处理:
    701patch0531来电拨号_按键接听提示音采样率问题处理_20240528.zip

  17. ANC风噪检测大风下不修改ANC gain导致无效 imageimage

  18. 一拖二状态下,两台手机都在播抖音,耳机音频会频繁切换 20240618 FSW 原理:发现产生了抢播切换行为,就必须等后台静音之后才可以再次抢播
    imageimage

/**
 * 0:当前没有发生抢断,允许后台抢断
 * 1:已经发生了抢断,需要等后台出现足够长时间的静音后,后台才可以再次抢断
 * 2:当前播放检测到长时间静音,允许非静音的后台抢断
 * 3:因为2产生了抢断,允许非静音的后台抢断
 */
u8 is_a2dp_switch = 0;

void reset_is_a2dp_switch(u8 flag)
{
    is_a2dp_switch = flag;
}

u8 get_is_a2dp_switch(void)
{
    return is_a2dp_switch;
}

发现前面执行了抢播行为,先检测后台媒体(被抢的媒体)的静音时间,确认被抢媒体静音后,才允许被抢媒体进行非静音检测(进而允许再次抢播)
image

        printf("%d   %d   %d\n", energy, detect->mute_packet_cnt, is_a2dp_switch);
        if (is_a2dp_switch && is_a2dp_switch != 3){
            if(energy < 10){
                if(detect->unmute_packet_cnt){
                    detect->unmute_packet_cnt--;
                }
                detect->mute_packet_cnt++;
            }
            else {
                if(detect->unmute_packet_cnt < unmute_packet_num){
                    detect->unmute_packet_cnt++;
                }
                if (is_a2dp_switch == 2 && detect->unmute_packet_cnt >= unmute_packet_num){
                    is_a2dp_switch = 3;//当前播放出现长时间静音,且后台不是静音,就允许后台抢回去
                }
                if(detect->mute_packet_cnt){
                    detect->mute_packet_cnt--;
                }
            }

            if(detect->mute_packet_cnt < unmute_packet_num){
                a2dp_media_free_packet(detect->file, packet);
                continue;
            }

            is_a2dp_switch = 0;//允许后台抢播
        }

能量检测完毕,执行抢播时,确认当前有媒体播放,标记为抢播切换行为
image

        int a2dp_player_runing();
        if(a2dp_player_runing() && is_a2dp_switch != 3){
            is_a2dp_switch = 1;//后台抢断
        }
        else{
            is_a2dp_switch = 0;//非后台抢断,或者因为当前音频静音被抢断,就允许再次抢断
        }

image 后台媒体暂停后,清除标志
image 部分手机,抖音暂停后数据流一直不停,导致暂停后不能切回被抢设备,需要增加播放中的能量检测,发现当前播放是静音,就允许后台抢回去。
imageimageimageimage

        int energy = ((int *)arg)[0];
        static int prev_energy = 0;
        printf("curr %d\n", energy);
        void reset_is_a2dp_switch(u8 flag);
        u8 get_is_a2dp_switch(void);
        if(prev_energy != energy && energy == 0){//从非静音变成静音
            silence_cnt = jiffies + msecs_to_jiffies(TCFG_BT_BACKGROUND_DETECT_TIME);
        }
        else if(energy){
            silence_cnt = 0;
        }
        prev_energy = energy;
        if(silence_cnt && time_after(jiffies, silence_cnt)){//静音了足够长的时间
            if(get_is_a2dp_switch() == 1){//已经发生了抢断
                reset_is_a2dp_switch(2);//允许后台抢走
            }
            silence_cnt = 0;
        }
  1. 701N dongle单次加音量步进大问题 20240620 FSW image

  2. 701N patch05.33 测试盒OTA升级卡住99%升级失败 20240625 CKS 替换OTA.bin,如果有下面配置项则需要去掉
    imagebr28_ota_file.zip

  3. 部分补丁版本出现SPP在线调试用不了的问题 20240708 FSW 目前发现的版本有701N TWS 一拖二 V1.0.0 patch_05.30/31/32、708N TWS 一拖二 V1.0.0 patch_00.10
    image

  4. tws状态下anc切换提示音不同步问题 20240605 FSW 见:JL700N可视化工具问题处理文档.otl第43点

  5. 无法连接在线调试工具 20240713 ZJC 问题原因:
    部分patch缺少了spp_wakeup的回调注册,导致设备一直处于SPP send busy,无法发送数据。
    解决方案:
    将online_spp_send_wakeup()注册到spp_wakeup的回调中执行。
    image

  6. 可视化SDK无法连接录音等在线工具,可以连接可视化工具 20240713 ZJC 问题原因:
    部分patch开启可视化在线调试,默认只能进行可视工具的在线调试,无法进行外部拓展工具在线调试。
    解决方案:
    将可视化工具在线调试的功能注释,执行外部拓展工具在线调试。
    imageimage

  7. 可视化SDK使用在线录音工具,录音文件为空文件 20240713 ZJC image 问题原因:
    部分patch在SPP发送数据时出现错误,无法发送数据。
    image 解决方案:
    将发送数据的定时器usr定时器改成sys定时器。
    image

  8. ac700N(Patch08)音频流程设置为自定义,连接笔记本电脑后,用windows自带播放器,修改音量后随机出现爆音现象 20240715 CGP 将\SDK\audio\common\audio_dvol.h 的 DIGITAL_VOLUME_LEVEL_MAX 宏改为 对应的音量等级 途中为16
    imageimage

数组可改可不改
image 55. AC700N/701音乐暂停的时候耳机调不手机音量 imageimage 手机调耳机音量
image

  1. TWS耳机 AC701N-demo 1.0.0(patch_06),使能ANC_EAR_ADAPTIVE_EVERY_TIME后,不使能通透,切ANC会异常的问题 LJW 修改如下:
    image
  2. TWS耳机 AC701N-demo 1.0.0(patch_06),导入自适应文件,解析anc_ext.bin,会死机的修改 LJW image
//解析anc_ext.bin
static int anc_ext_rsfile_analysis(u8 *file_data, int flen)
{
    int ret = 0;
    struct anc_ext_subfile_head *head = NULL; 
    //解析文件长度 = anc_ext.bin 长度 - ANC_EXT_HEAD_LEN
    file_data += ANC_EXT_HEAD_LEN;
    flen -= ANC_EXT_HEAD_LEN;
    while (flen) {
        head = (struct anc_ext_subfile_head *)file_data;
        anc_file_log("id:%x , subfile_len:%d\n", head->file_id, head->file_len);
        if (flen < head->file_len) {
            anc_file_log("flen:%d != subfile_len:%d\n", flen, head->file_len);
            ret = ANC_EXT_FILE_DATA_FORMAT_ERR;
            goto __err;
        }
        //根据subfile ID循环解析
        ret = anc_ext_subfile_analysis_each(head->file_id, file_data, head->file_len, 0);
        if (ret) {
            goto __err;
        }
        file_data += head->file_len;
        flen -= head->file_len;
    }
    anc_file_log("%s, suss", __func__);
    return 0;

__err:
    anc_file_log("%s, error! ret = %d", __func__, ret);
    return -EINVAL;

}
  1. TWS耳机 AC701N-demo 1.0.0(patch_06),AI协议tuya打开后不能开机 CGP log显示sm.c死机
    修改如下
    imageimage #if (BT_AI_SEL_PROTOCOL & (GFPS_EN | REALME_EN | TME_EN | DMA_EN | GMA_EN | MMA_EN | FMNA_EN | CUSTOM_DEMO_EN))
    imageimage

  2. AC701 1.0.0 bugfix_06_01,空间音效卡顿变调 CKS 空间音效问题,首先得先升级到bugfix_06_01,基于bugfix_06_01提供一个demo,请与公版bugfix_06_01对比修改
    空间音效demo.rar
    带陀螺仪的记得根据项目传感器配置和脚位修改,配置方位参数以及测试盒校准
    空间音频配置方法.otl

  3. TWS耳机 AC701N-demo 1.0.0(patch_06),IO按键和AD按键同时打开的时候,无法用AD按键开机 CGP 原因:这里的代码有逻辑漏洞,IO按键没被按下就直接提前return了,并不会去检测AD按键
    image 解决方法:
    将上面的代码段改成下面这样,
    image

  4. 限制最大记忆设备数量 void bt_set_max_remote_device_number(u8 number);

  5. AC701 100 P06 DRC不生效 CKS image

  6. 涂鸦、数传和APP_ONLINE_DEBUG共存的修改 20240730 FSW imageimage #if (BT_AI_SEL_PROTOCOL & (GFPS_EN | REALME_EN | TME_EN | DMA_EN | GMA_EN | MMA_EN | FMNA_EN | CUSTOM_DEMO_EN | RCSP_MODE_EN))
    imageimage

  7. AC701N可视化SDK v1.0.0(patch_05.32)版本,OTA升级失败 20240803 ZJC 问题原因:编译配置中的AMONG_FILE_ALIGN配置会生成一个标志位写到uboot区域中,并对app_core区域进行一定的调整,这个调整会导致文件系统遍历第二个以后的文件会因为偏移量的原因,导致遍历失败,从而会影响到升级的校验。
    解决方案:去掉isd_config_rule.c文件中的AMONG_FILE_ALIGN配置。
    image

  8. AC701N可视化SDK v1.0.0(patch_06)版本,PC模式,连接MacBook,微信通话时输入设备会显示两个相同的设备名 20240803 LJW 现象:
    image 修改:
    imageimage

  9. AC701N可视化SDK v1.0.0(patch_06)版本,PC模式,连接Windows PC,麦克风属性的增益最大只显示0.9dB,想让其显示-14~+16dB 20240803 LJW 现象:
    image 修改如下:
    AC701N可视化SDK v1.0.0(patch_06)版本,PC模式,连接Windows PC,麦克风属性的增益最大只显示0.9dB,想让其显示-14~+16dB.7z

  10. AC701N可视化SDK v1.0.0(patch_06)版本,PC模式,连接Windows PC,控制面板显示的设备名与设备管理器不一致 20240803 LJW 现象:
    image 修改:在apps\common\device\usb\device\descriptor.c下修改product_string[]
    image

  11. AC701N可视化SDK v1.0.0(patch_06)版本,加PDMMIC 数字MIC 和ANC的办法 20240806 CGP 在通话流程里这样设置
    imageimage

  12. AC701N可视化SDK v1.0.0(patch_06)版本, 麦克风音效和离线语音识别同时使用时,语音识别不生效 20240807 ZJC 问题原因:语音识别暂时不支持和其他的开mic的流程同时使用
    解决方案:关闭麦克风音效后,重新打开语音识别功能
    image

  13. AC701N dongle 1.0.0 08.06 dongle端开机后概率不回连手机, 20240813 陈耿鹏 btctrler_ac701_dongle.zip
    换掉这个库

  14. AC701N 触摸按键,软关机状态下,功耗比其他系列高 20240815 陈耿鹏 701内置触摸开关机静态功耗比较大,30ua+。如果要用内置触摸做开关机,建议外挂;如果可以接受用出仓开机的方式,可以用内置触摸

  15. 701可视化 V100 patch0531 tws主从切换后,从机没开esco导致的通话无声 替换最新的btctrler.a后bt_tws.c里面如图修改
    image

extern u8 *lmp_get_esco_link_addr(void);
extern int bt_phone_esco_play(u8 *bt_addr);
u8 *esco_addr=lmp_get_esco_link_addr();
if(esco_addr){                                                                                                                                                                                         
    bt_phone_esco_play(esco_addr);  
}
  1. AC701N可视化SDK v1.0.0(patch_06)版本,加EffectDev节点,播放SBC音频,打断的方式播放一个提示音,音乐恢复播放后,概率性出现卡顿的问题 20240902 LJW 修改方法1:
    image 修改方法2:
    EffectDev0节点要放在蓝牙音频同步节点后面。

  2. AC701N可视化SDK v1.0.0(patch_06)版本,测试打开SIRI的时候系统有回调了置2,但是又很快置0的问题 20240830 LJW 修改方法:换库
    btstack-701-tws-1to2-p06-20240830.zip

  3. AC701 1.0.0 bugfix0601,JL自研ANC产测写文件失败 20240904 CKS 把判断条件去掉
    image

  4. 可视化自定义SPP UUID增加方法 手机APP的简介和开发流程.otl
    image

  5. AC701N V1.0.0(patch 06)在耳机端和手机端同时操作播放/暂停,有概率会到入耳检测异常,佩戴后上层发了播放指令,手机端一直不会播放。--- 泓毅 分析:用按键模拟入耳检模块发的播放/暂停指令也同样能测到,排除跟入耳检测相关。
    原因:现在用那两条OPID_PALY和OPID_PAUSE指令, 库里面其实会有一个取反和转换的流程. 刚好跟外面的一起形成一个"一直发暂停"的情况了。
    image 修改方法:播放暂停指令换成如下这两条
    image

  6. 701 V100 patch0531 第一次上电电压不足3.5V后导致vddio 没trim后关机IO口输出电压异常修改 新增修改,关机VDDIO类型不使用trim值
    image

  7. AC701N 可视化SDK v1.0.0(patch05.31)版本,使用打断式播放提示音,切换EQ不起作用问题。 ZJC 问题原因:打断式播放提示音会抢断播歌的音频链路,当提示音播放完成后,音频链路会被重置,导致EQ没有切换。
    解决方案:使用带提示音回调的播放接口,在播放完提示音后进行EQ切换。
    image

  8. AC701N 可视化SDK v1.0.0版本,开启BLE的情况下,远端下行通话有popo声问题。 ZJC 问题原因:开启BLE后,在通话时BLE的相关通讯会导致通话丢包,造成远端下行有popo声。
    解决方案:将lib_btctrler_config.c中的config_le_high_priority参数改为0。
    image

  9. AC701N V1.0.0(patch 06/patch 06_01)ANC自适应过程有pop声 20241021 FSW 改下数据流,跳过mixer
    image

  10. AC701N V1.0.0 patch06 RCSP OTA到99%出现报错 两种可能:1.写本地数据异常 2.CRC校验失败
    替换库修复
    OTA升级到99CRC校验异常.rar

  11. 701N TWS dongle V1.0.0 patch_08.06两个兼容性问题 20240829 1、必现问题:手机先打开录音机启动录音,然后插入dongle,dongle连上耳机之后手机录音没声音
      a、手机先打开录音机启动录音,然后插入dongle,dongle连上耳机之后手机录音没声音:
      b、插dongle,dongle连上耳机之后,启动手机录音,此时录音正常,然后断开耳机,让耳机重新和dongle连接(dongle一直插在手机上),也会出现手机录音无声问题。
    解决方法:
    imageimage 2、概率性问题:耳机连上dongle,dongle插入到电脑,电脑端打开网络播放器,网页搜索歌曲播放,进行测试,耳机端触发按键,比如PP,有概率会出现,耳机端指令发出去了,但是dongle端没有收到的情况,导致指令没法执行,所以实现不了控制
    解决方案:替换dongle库:
    【金山文档 | WPS云文档】 btstack_ac701_dongle
    btstack_ac701_dongle.a

  12. 701N TWS dongle V1.0.0 patch_08.06实现耳机和dongle单向绑定 20241022 实现功能:耳机和dongle连上后,耳机只回连已连过的dongle,不跟其他dongle配对,dongle则可以配对新的耳机

  13. dongle端的修改 imageimageimageimageimage

  14. 耳机端修改 imageimage

  15. AC701N可视化SDK v1.0.0(patch_05.31)版本,RCSP OTA升级时播放低延时模式提示音 20241025 ZJC 问题原因:如果开启了低延时模式,RCSP OTA升级时会把低延时模式关掉,但是没有对提示音播放进行控制。
    image 解决方案:根据参数tone_play_enable控制提示音的播放。

  16. V100 patch06之前版本实现新版本PCM DELAY节点的方法 FZF AUDIO相关应用.otl
    image

  17. tws出现无连接事件或出现通话无声等问题处理 FZF 可视化默认开发现可连接的函数里面没做主从机判断,可能导致从机也开了可连接进而导致手机连接从机导致异常
    image 确认是否入截图所示两边都打印P字符,如果是,则如下判断
    image

    if(get_tws_sibling_connect_state()) {
        if(tws_api_get_role() == TWS_ROLE_SLAVE) {
            scan_enable = 0;
            conn_enable = 0;
        }
    }
  1. 701N patch06打开tuya APP编译报错 GFH image 处理方法:按右边修改
    imageimage
  2. 杰理之家APP只修改耳机EQ模式,不修改自定义EQ,会导致耳机第二次开机回连后APP显示的EQ模式不对 20241028 FSW image
  3. 通话中开BLE广播导致通话卡顿修改 20241029 FZF 将ble高优先级关闭,防止ble广播挡esco通信
    image
  4. TWS耳机AC701N V1.0.0 patch06一拖二AB设备反复切换ESCO链路出现卡住爆RAM的修复 新版本SDK有个esco无收包的补包机制,会导致esco事件还没起来之前,esco解码里面一直补包申请内存导致异常
    参考该.c文件
    【金山文档 | WPS云文档】 esco_file_修复一拖二esco切换卡住
    https://kdocs.cn/l/cfeE8n8CA9kv
  5. TWS耳机AC701N V1.0.0 patch06一拖二AB设备反复切换ESCO链路出现异常修复 esco的delay定时器流程只有添加没有删除,需要补充,否则提示音播放过程出现esco关闭后会出现流程误打开
    image
  6. AC701N-demo 1.0.0(patch_06)客户做第三方通话算法,如何把adc采样点数从256改成512 LJW imageimageimageimageimage 如果你的方案使能了ANC,需要修改如下:
    image
  7. 耳机连接某些设备(例如飞利浦的电视),在设备上调节音量,耳机音量大小没有变化 20241108 FSW image
  8. 带有产测设备二次校准ANC功能的流程,在ANC参数初始化阶段,需要进行各种增益的参数保护和防异常处理,此处举例ANC的trans gain的防异常处理demo 应用背景:
  9. anc的通透gain大小,美格信设备会根据样机和金机的ff曲线差异,进行对应的ff gain增益补偿
  10. ff gain增益补偿后,会对trans gain进行相同大小的gain补偿,因此ff的gain与通透的gain差值是固定的 如图位置在anc读完本地参数后,进行校验
    image

#define FF_TRANS_DELTA_GAIN         (-1.0f)//dB
#define TRANS_GAIN_CHECK_FAIL_DB     (-2.5f)//db
#define TRANS_GAIN_CHECK_MAX_DB     (3.0f)//db
#define TRANS_GAIN_CHECK_MIN_DB     (-3.0f)//db
extern float ln_float(float x);
extern float eq_db2mag(float x);
static float mag2db(float mag)
{
    float delta = 8.68588924f;
    float result = ln_float(mag);
    // printf("%s->ln float:\n", __func__);
    // put_float(result);
    result = result * delta;
    return result;
}

static float anc_trans_gain_check(float trans_gain, float ff_gain)
{
    printf("%s->trans_gain:\n", __func__);
    float cur_trans_db = mag2db(trans_gain);
    float new_trans_gain = trans_gain;
#if CONFIG_DEBUG_ENABLE
    put_float(cur_trans_db);//没开打印的时候不要打印浮点
    put_float(ff_gain);
#endif
    if(cur_trans_db > TRANS_GAIN_CHECK_MAX_DB || (cur_trans_db < TRANS_GAIN_CHECK_MIN_DB)) {
        printf("%s->gain warning, check\n", __func__);
        float cur_ff_db = mag2db(ff_gain);
#if CONFIG_DEBUG_ENABLE
        put_float(cur_ff_db);
#endif
        //计算新的trans gain,由ff gain-固定差值dB
        float result_db = cur_ff_db + FF_TRANS_DELTA_GAIN;
#if CONFIG_DEBUG_ENABLE
        printf("%s->get result db:\n", __func__);
        put_float(result_db);
#endif
        if(result_db > TRANS_GAIN_CHECK_MAX_DB || (result_db < TRANS_GAIN_CHECK_MIN_DB)) {
            printf("%s->check again fail!!!, set defaul\n", __func__);
            result_db = TRANS_GAIN_CHECK_FAIL_DB;
        }
        new_trans_gain = eq_db2mag(result_db);
#if CONFIG_DEBUG_ENABLE
        printf("%s->set new_trans_gain:\n", __func__);
        put_float(new_trans_gain);
#endif
    }
    return new_trans_gain;
}

  1. AC701N V1.0.0 patch08 dongle回连慢,回连不上 1.回连不上问题,更新库:btctrler_br28_dongle.a
    btctrler_br28_dongle.a
    2.回连慢问题
    原因是有两台手机的回连地址时,开机回连上一台手机后若一直在回连另一台手机且连不上,要回连超时后才开始连接dongle导致回连dongle慢,可根据需要修改回连逻辑处理

  2. AC701N V1.0.0 bugfix06.01,LSM6DSL带陀螺仪空间音效,采样率不对 20241120 CKS 注释下面这个地方
    image

  3. AC701N V1.0.0 patch_05.31 RCSP连接IOS APP,主机入仓,从机主从切换后无法与APP通讯 20241121 ZJC

  4. 替换最新(bugfix_06.01后修复)的btstack.a和btctrler.a

  5. 修改入仓充电判断。 image

  6. BLE改为非中断方式同步信息到从机。 image

  7. AC701N V3.0.0 PDM mic 可视化SDK比非可视化SDK测的mic曲线,高频部分会掉下来 20241123 CKS PDM相关寄存器改成和非可视化的一样
    imageimage

  8. AC701N-demo 1.0.0 (patch 08.06),升级后VM被擦除 20241126 JWK 1.选择支持升级后保留VM
    image 2.耳机SDK中替换该cpu.a
    【金山文档 | WPS云文档】 cpu_P0806_添加上获取升级信息.a
    https://kdocs.cn/l/ch1vouekAH8I

  9. 可视化工具配置关机IO输出1,关机\开机过程会出现IO口输出掉电平修复 image 如图修改,例如这里工具配置PC3关机输出高电平,则手动保护

  10. 新版本SDK处理一拖二时抖音互相抢播的问题,导致抢播概率失效 20241202 FSW 可以把下面红框内容屏蔽掉,但注意屏蔽后会引发抖音互相抢播的问题(抖音互相抢播的问题是抖音的APP问题,跟耳机无关,耳机只是尽量优化),抖音互相抢播的问题可以参考本文第46点优化一拖二状态下,两台手机都在播抖音,耳机音频会频繁切换 20240618 FSW
    image

  11. 701N TWS dongle V1.0.0 patch_08.06,dongle概率性无法同步音量给耳机 20241202 LJW 1、先换给dongle的工程换库,库是701的。
    【金山文档 | WPS云文档】 btstack_ac701_dongle_201411261714_修复dongle无法同步音量给耳机.zip
    btstack_ac701_dongle_201411261714_修复dongle无法同步音量给耳机.zip
    2、添加代码修改,下图框起来的3处地方
    image

  12. 701N V1.0.0 patch07.01开启回连电流平衡功能后,影响tws组队 FZF 不清楚回连电流平衡功能的,默认不要开,这个功能需要配合相应的硬件
    如下修改:关闭高频打印,且保证流程tws组队后才跑这个回连电流平衡流程
    image

  13. 701N V1.0.0 patch07.01开启回连电流平衡功能后,影响回连手机 FZF image 如图修改,解决重复注册唤醒源导致的异常

  14. 701N V1.0.0 patch07.01音乐开24bit,ANC有FB麦,音乐开关ANC曲线会减小12db JWK 临时解决方案:关闭防破音,目前不兼容24bit,后续SDK会兼容
    image

  15. 701N V1.0.0 头戴共享耳机,TWS设置左右耳双声道配置 20241207 ZJC 问题原因:使能TWS后,开启a2dp时,会根据左右耳配置音频声道。
    image 解决方案:将声道设置改为混合声道
    imageimage

  16. 701N V1.0.0 patch_06超距时双耳声音不同步,变调 20241207 ZJC 问题原因:超距时信号强度差,双耳收到的原始数据可能会出现不一致的情况,导致双耳播放不同步。
    解决方案:减少CONFIG_SYCN_INTO_SILENC_THRESHOLD变量的值,当数据不一致时静音,不同步会变成卡顿。
    image

  17. 一拖八不识别V300版本SDK的问题 image 将SDK_VERSION = AC701N_V300改为SDK_VERSION = AC701N_V3.0.0

  18. 修改ble广播间隔 20241210 FSW image

  19. 701 1.0.0patch7.01多算法授权库 20241212 LZY 20241212_多算法授权补丁与使用说明.rar

  20. 701 1.0.0patch05.33 工具里面两个eq参数差异过大的时候,切换eq过程会引入杂音 20241213 FZF 原因:相同序号的两个eq频率如果差异太大,淡入淡出过程由于跨频率过大会导致声音听起来过渡不自然
    解决方法:软件切换参数之前进行eq频率的排序,让相同序号的两个频点的频率尽量接近,淡入淡出过程不会出现曲线不合适的情况

static void eq_file_param_order(int seg_num, struct eq_seg_info *seg)
{
    // g_printf("%s->eq_file_index = %d\n",__func__, eq_file_index);
    struct eq_seg_info tmp;

    for (int i = 0; i < seg_num - 1; i++) {
        for (int j = 0; j < seg_num -1 -i; j++){
            if(seg[j].freq > seg[j + 1].freq) {
                tmp.freq = seg[j].freq;
                tmp.iir_type = seg[j].iir_type;
                tmp.q = seg[j].q;
                tmp.gain = seg[j].gain;

                seg[j].freq = seg[j + 1].freq;
                seg[j].iir_type = seg[j + 1].iir_type;
                seg[j].q = seg[j + 1].q;
                seg[j].gain = seg[j + 1].gain;

                seg[j + 1].freq = tmp.freq;
                seg[j + 1].iir_type = tmp.iir_type;
                seg[j + 1].q = tmp.q;
                seg[j + 1].gain = tmp.gain;
            }
        }
    }
#ifdef CONFIG_DEBUG_ENABLE
    if (!get_charge_online_flag()) {
        for (int i = 0; i < seg_num; i++) {
            // g_printf("%s:%d------->fre:%d-%d\n",__func__, seg[i].index,seg[i].freq, seg[i].iir_type);
#if FLOAT_DEBUG
            printf("gain:");
            put_float(seg[i].gain);
            printf("q:");
            put_float(seg[i].q);
#endif
        }
    }
#endif
}

image

  1. AC701N V1.0.0 当TWS耳机双耳同时关机且触发主从切换时,从机概率性死机 20241213 ZJC 问题原因:从机触发关机注销RCSP,同时主机也触发关机触发主从切换同步RCSP信息
    解决方案:如下图
    image
  2. 701N v1.0.0(patch_06) 测试盒串口升级概率性出现0%,升级失败 20241218 LJW 替换该函数内容:void chargestore_set_update_ram(void)
void chargestore_set_update_ram(void)
{
#if defined(CONFIG_CPU_BR28)
    if (1) {
        u8 *p = (u8 *)BOOT_STATUS_ADDR;
        memcpy(p, "UART_UPDATE_CUSTOM", sizeof("UART_UPDATE_CUSTOM"));
    } else
#endif
    {
        //需要补充设置ram
        int tmp;
        __asm__ volatile("%0 =icfg" : "=r"(tmp));
        tmp &= ~(3 << 8);
        __asm__ volatile("icfg = %0" :: "r"(tmp));//GIE1
        local_irq_disable();
        nvram_set_boot_state(UPGRADE_UART_SOFT_KEY);
    }
}
  1. 700N TWS dongle V1.1.0 patch_13, 测试盒进DUT,连接仪器测试出错包率很高的问题 20241218 LJW 原因:默认SDK进DUT后,没有关闭dongle快连。
    修改如下:
    imageimageimageimage
  2. 701 300 patch01.04,ANC自适应测试曲线与理论不符合 20241220 CKS 替换以下两个库文件
    ANC自适应测试曲线与理论不符合问题修改.rar
  3. 可视化701V300,开一拖二连电脑和手机,电脑端打开播放器不播放(暂停状态),手机端播放视频或歌曲,电脑播放器会从暂停变播放状态,声音还是手机端的声音 20241220 FSW USER_CTRL_AVCTP_PAUSE_MUSIC
    image
  4. 可视化701V100,使能IOS一键连接,ble加密配对成功后,想获取经典蓝牙的mac 地址 20241226 LJW image
  5. 701N TWS 一拖二 V1.0.0 patch_06_01出现BLE概率连接失败,失败原因0x3e 20250102 FSW 失败打印如下
    image 需要换下面这个库
    【金山文档 | WPS云文档】 btctrler-701-pach-0601-2024-11-13-修复3e错误流程
    https://kdocs.cn/l/ciJx3bYCq4O1
  6. AC701 TWS一拖二300 patch01.07 开启耳道自适应编译不过 20250108 CKS 把这个库删了
    image
  7. AC701 TWS一拖二300 patch01.07,加入LLNS节点后,音效异常有哒哒声 -- 泓毅 原因:llns内部有缓冲耗时,一直打印‘U’
    image

修改:再现有播放同步的基础上,把播放同步的延时加上 llns一帧数据对应的ms数,44.1k采样率的话对应6ms
image 122. 701公版SDK,第一次上电,进入poweroff后有漏电 -- LZY image 123. 701公版SDK 1.0.0 patch07.01(或3.0.0 patch01.07),开LHDC后,回连小米14pro失败 -- LZY 开启LHDC,手机编码切换到LHDC后,耳机进仓出仓后,音频链路回连失败,小米14 pro上复现.zip
124. 701公版SDK 1.0.0 patch07.01,一拖二笔记本(三星)+手机,笔记本先播放音乐,手机抢播后,耳机按键关机卡死 -- LJW 改大线程栈大小和消息池大小
image 125. TWS耳机AC701N3.0.0(patch_01.07),获取rssi的接口 LJW

//phone rssi
extern s8 lmp_get_rssi_for_edr_address(u8 *edr_address);
// tws rssi
extern s8 tws_conn_get_rssi();
  1. TWS耳机 DONGLE AC701N1.0.0 (patch 08.06)dongle模式底噪偏大 JWK image
//quantization noise process
        s16 *pcm = (s16 *)obuf;
        u8 is_mute_data = 1;
        for(int i = 0; i < len / 2; i++)
        {
            if(pcm[i] == 0 || pcm[i] == 1 || pcm[i] == (s16)(-1))
            {
                ;
            }
            else
            {
                is_mute_data = 0;
                break;
            }
        }
        if(is_mute_data)
        {
            memset(obuf,0,len);
            //printf("mute\n");
        }
  1. TWS耳机AC701N_1.0.0(patch_07.01),替换debug版本的uboot后,无法开机 LJW 一般遇到OTA问题时,会替换debug版本的uboot去debug,但是该版本的debug版本的uboot有问题,会导致无法开机。补丁如下:
    20250117_JL701N_TWS_release_1.0.0_patch_07.01_uboot_不开机补丁.rar

  2. TWS耳机 AC701N_1.0.0(patch_07.01),使能TWS对耳同时操作后,按键单击无效 image 应用层逻辑问题,如图处理即可

  3. TWS耳机 AC701N_1.0.0 版本SDK回连底噪软件优化——电流平衡 ZJC 701在回连过程中底噪声大,可以通过使能电流平衡功能优化
    v1.0.0版本:patch_07.01版本开始SDK支持电流平衡功能,需要在earphone.c文件中使能该功能。patch_07.01之前的版本需要改btctrler.a库
    v3.0.0版本:默认支持电流平衡功能,需要在earphone.c文件中使能该功能。
    注意:701不支持双绑脚使能电流平衡功能,需要使用两个IO引脚短接
    image

  4. TWS耳机 AC701N_3.0.0 版本,patch02.02,开双备份后,带key芯片,无线升级后程序不变 LZY 701 300 patch02.02 双备份升级异常.zip

  5. TWS耳机 AC701N_3.0.0 版本,patch02.02,开杰理之家,ANC切换一轮后没有效果 LZY image

本文档包含以下子页面

  • 701N可视化patch0531空间音频流节点控制demo
Prev
JL700N可视化工具问题处理文档
Next
JL701N_earphone_release_v1.6.0_ANC 低功耗问题补丁