wireless_mic_SDK_介绍(Rev 1.4.2)
Wireless_mic_SDK_介绍
Wireless_mic_SDK_介绍 用户手册
Rev 1.4.2 —— 2023年2月28 日
This translated version is for reference only, and the English version shall prevail incase ofany discrepancy between the translated and English versions.
版权所有 2021杰理科技有限公司未经许可,禁止转载
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 2of88
5.2 参数和规格...........................................................................................................................................
5.3 模型.......................................................................................................................................................
5.4 SDK包说明............................................................................................................................................
5.5 相关配置说明.......................................................................................................................................
5.6 无线麦应用主流程..............................................................................................................................
5.7 无线麦按键相应处理..........................................................................................................................
5.8 降噪档位切换.......................................................................................................................................
5.9 UI添加...................................................................................................................................................
5.10 注意事项.............................................................................................................................................
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 3of88
修改日志
| 版本 | 日期 | 描述 |
|---|---|---|
| 1.0 | 2020 / 4 / 28 | AC697N 用户手册 |
| 更新: | ● 建立初始版本 ● 定义文档格 |
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 4of88
Chapter 1 SDK开发包快速使用说明
1. 1编写目的
该文档主要描述AC697N_SDK开发包的使用方法及开发中注意的一些问题,为用户进行二次开发提供参考,其中包括:
安装包管理工具、配置工具使用、配置宏的选择以及充电仓使用注意事项
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 5of88
1.2 安装包管理工具
÷ 包管理工具安装
双击“杰理包管理器-setup-1 .0.15.exe”安装,按照提示安装完成即可。
详细的安装及使用步骤如下:
1.安装 杰理软件包 工具之后,开始菜单栏会出现对应的菜单
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 6of88
使用方式:杰理包管理器界面如下图所示:
- 并不是说有包都有执行按钮。这是因为有一些包里面没有可执行程序。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
安装软件包:
也可以单独选择特定的包安装。
如果下载安装过的软件被破坏了、或者出现了缺失。可以点击“校验”来校验是否出现缺失或者破损,并从服务器中下载安装对应的正确文件。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1. 3 配置工具使用
1、 打开sdk工程目录,进入cbp_out\cpu\br30\tools\AC697N_config_tool 目录;
2、 双击【AC697N-配置工具入口.jlxproj】,打开【杰理SDK工具】
【杰理SDK配置工具】界面说明:
1)编辑FW文件:点击【编辑FW文件】,可对一个FW文件的进行编辑,修改FW文件的板级配置、蓝牙配置,状态配置和提示音配置,界面如下:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
点击【恢复默认值】可以恢复sdk发布时的原始配置,配置完成后,点击【保存】,可选择保存路径保存修改过后的fw和ufw文件;
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 10of8
编辑fw文件有以下几点需要注意:
(1)板级配置的可配选项取决cfg_tool. bin文件,也就是说编译前配置选了什么,编辑fw文件就有什么配置, 比如说编译前配置是选了3个key,则编辑fw文件的时候也是只有3个key 的选项。
(2)fw版本号控制,只有工具和fw 的版本号对得上,才能编辑对应的fw文件,版本号在 AC697N_config_tool\conf\entry 目录下的 user_cfg. lua文件下修改,如下图:
如果版本号提示不对,请确认版本号。
(3)fw文件制作:当fw文件测试没有问题后,想发布一个可编辑的fw文件时,把生成的fw文件替换AC697N_config_tool\conf\output\default 目录下default_cfg.fw文件即可
(4)默认值的制作:用编译前选项配置好后,点击保存后会在AC697N_config_tool\conf\output生成一个default_cfg. lua文件,把该文件覆盖AC697N_config_tool\conf\output\default 目录下的 default_cfg. lua文件,到时在编辑fw文件的时候点击恢复默认设置,就会恢复之前设置的值。
2)显示原理图:点击【显示原理图】,可以打开一个doc 的文件夹,可以在该文件夹下存放原理图等相关文件;
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 11of8
3)编译前配置:点击【编译前配置】,可以在sdk代码编译前进行相关配置项配置,打开界面如下:
可以在编译前配置工具中进行通用配置、蓝牙配置、提示音配置和状态配置,点击【恢复默认值】可以恢复sdk发布时的原始配置,配置完成后,点击【保存】保存配置,将会输出cfg_tools. bin到下载目录中,重新编译sdk代码可应用该最新配置;
4)打开下载目录:点击【打开下载目录】,将会打开tools下载目录,cfg_tools. bin将会输出到该目录下;
5)检查依赖的软件包是否更新:点击【检查依赖的软件包是否更新】,将会查检查相关配置工具的版本更新情况,如有更新,则下载相应更新即可;
3、 提示音配置
提示音设置在工具的“提示音配置”选项里面,点击后如下图所示:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 12of8
默认是加载conf\output\extra_tones下的提示音,如果有一个新的tone.cfg文件,点击加载按钮可以把该提示音文件加载进来。如果想更换提示音,直接把对应的提示音文件拉到对应选项即可。提示音工具提供3种音质提示音格式,每个提示音均可以单独指定成不同格式,主要是看flash 的空间。比如“蓝牙模式”提示音想音质好点,可以先选sbc,然后把对应提示音文件拉过去即可,其他格式也是可以这样操作,每个提示音生成是什么格式取决于拉提示音文件过去的时候选的是什么格式。
注意:报号数字提示音格式一定要选同一种,原始音频数据 sbc要用32k 的采样率转,msbc 要用 16k 的采样率转才能保证音质。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 13of8
1.4 UI操作说明
| 开机 | . 耳机在盒子外,长按2s按键,耳机开机。 |
|---|---|
| . 开盖 | |
| 关机 | . 耳机在盒子外,长按2s按键,耳机开机。 |
| . 关盖 | |
| 首次开机TWS 配对规则 | 1)TWS配对失败6S超时,耳机在和手机配对模式与TWS配对之间定时切换,如果和手机连接成功,则关掉TWS配对模式 2)TWS配对成功,主耳进入和手机配对模式 |
| 非 首 次 开 机(TWS 已 配对) | TWS 回连,回连超时后: 1)若已和手机有配对记录,主耳直接回连手机,回连超时,在和手机配对状态与TWS配对之间定时切换; 2)若和手机无配对记录,主耳在和手机配对状态与TWS配对之间定时切换; |
| TWS 已连接, 主耳和手机已 连接。主耳走 远和对耳超距 断开连接,同 时主耳和手机 超距断开连 接: | 主耳回连附耳及手机,附耳只回连主耳机。 在3分钟内若连上了手机,没有连上对耳,耳机不会关机;若3 分钟内没有连上手机,只连上了对耳,耳机关机。 |
| 耳机有 1个按键 | 1)来电响铃中-->单击左耳按键或右耳按键,接听来电 2)来电响铃中-->长按左耳按键或右耳按键,拒接来电 3)通话中-->单击左耳按键或右耳按键,结束通话 4)播放音乐中-->单击左耳按键或右耳按键,音乐播放/暂停 |
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
User manual Rev1.2——2019/4/22 14of8
| 5)开机状态-->长按左耳按键或右耳按键,关机 6)关机状态-->长按左耳按键或右耳按键,开机 7)长按左耳按键或右耳按键8秒,复位 |
|---|
耳机有2个LED:
. 蓝色
. 红色
详细定义,请参考以下LED灯效和提示音配置表:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1. 5 MIC配置
在每个board.c文件里都有配置mic参数的结构体,如下图所示:
AC697N系列有两个mic_in,默认使用mic0_in Mic 的偏置方式选择:
(1)省电容模式
内部提供偏置,配合内部偏置电阻,将mic 的偏置电压调整到 1.4到1.5之间,正常工作状态, mic 的电压会收敛稳定在1.5v左右。
(2)隔直电容模式
(a) MIC_LDO提供偏置:配合内部偏置电阻mic_bias_res,调整mic 的偏置电压
(b)DACVDD或者其他电源提供偏置
1.主要关注以下变量:
1)mic_capless:0:选用不省电容模式 1:选用省电容模式
2)mic_bias_res:mic_ldo 内部上拉偏置电阻,使用内部偏置时有效,选择范围为:
| 电阻档 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| 电阻值 | 8.5k | 8.0K | 7.6K | 7K | 6.5K | 6K | 5.6K |
| 电阻档 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 电阻值 | 5.0K | 4.41K | 3.91K | 3.73K | 3.5k | 3.05K | 2.91K |
| 电阻档 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
| 电阻值 | 2.6K | 2.4K | 2. 2K | 1.99K | 1.55K | 1.42K | 1. 18K |
|---|
电阻档和电阻值对应表
3)mic_ldo_vsel:mic_ldo 的偏置电压,与偏置电阻共同决定mic 的偏置,选择范围为:
| 偏置档位 | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 偏置电压 | 1.5v | 1.8v | 2. 1v | 2.4v | 2.7v | 3.0v |
偏置档位和偏置电压对应表
4)mic_bias_inside:mic外部电容隔直,芯片内部提供偏置电压,当mic_bias_inside=1,可以正常使用mic_bias_res和mic_ldo_vsel
注意:如果用的是硅mic 的话要配置成不省电容模式,并且要io 口独立给硅mic供电。如果供电的时候硅mic 的偏置在0.9v 以上,则此款硅mic不适用于dac跑低压的方案。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1.6 两个IO 口推两个灯配置
在每个board.c文件里都有配置pwmled参数的结构体,如下图所示:
如果需要两个IO推灯应用,需要增加two_io结构配置,如上图红框内增加的配置;不需要两个IO 推灯的应用,不需要增加two_io结构配置,板级配置不需要更改。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1. 7 长按复位设置
新发出的V0 .0.3 以上版本的设置在如下路径...\cpu\br30\tools 的isd_config. ini文件设置
硬件复位原理都是IO 口检测对应的电平及持续的时间进行判断,从而复位芯片。方式一般有以下两种:
1,按键长按复位,默认配置为RESET=PB01_08_0; 即PB1检测到低电平持续8s,就会复位
2, LDOIN入仓复位,默认配置为RESET=LDOIN_02_ 1;即耳机入仓之后LDOIN 引脚检测到高电平持续 2s,就会复位。 (正常运行的耳机入仓会将复位检测电平重新设置为低电平,出仓之后才设置为高电平,所以不用担心正常样机入仓也会复位的情况,死机的样机入仓不会重新设置检测电平所以会复位)
长按时间有00、 04、 08、 16可选,其他值默认选08
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1.8 AC697N 输出EVDD 电源说明
1、 EVDD 电源介绍
AC697N 内置一个可供外部 DSP 供电的 EVDD 电源,有如下特性:
A. 驱动能力 5mA 1.0 ~ 1. 2v,挡位可调;
B. 固定从 PB3 IO 输出,输出时需要将 IO 口设置为高阻状态;
C. 在低功耗模式会默认关闭,如果需要在低功耗模式下保持,需要注册低功耗回调函数,进入 LOW_POWER_MODE_LIGHT_SLEEP模式;
D. 暂不支持softoff状态保持;
2、 evdd使用例程
//====================================//// 关于输出 EVDD 电源到PB3配置 ////====================================////1.包含头文件
#include "asm/ power/p33. h"
//2.调用接口输出evdd 电源
/ * void evdd_output_2_pb3(u8 en, u8 vol_sel);
@input:
en: 1->打开evdd 电源, 0->关闭evdd 电源;
vol_sel: 选择evdd挡位;
EVDD挡位:
EVD_VOL_SEL_ 100V
EVD_VOL_SEL_ 105V
EVD_VOL_SEL_ 110V
EVD_VOL_SEL_ 115V @return: void
@note: evdd属于模拟电源,固定从PB3 IO 口输出,需要将PB3配置为高阻状态 */ void evdd_output_open()
{
//把PB3设置为高阻状态:
gpio_set_pull_up(IO_PORTB_03, 0);
gpio_set_pull_down(IO_PORTB_03, 0);
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
gpio_set_die(IO_PORTB_03, 0);
gpio_set_dieh(IO_PORTB_03, 0);
gpio_set_direction(IO_PORTB_03, 1);
//输出evdd 电源:
evdd_output_2_pb3(1, EVD_VOL_SEL_ 110V);}
//3.把evdd关闭
void evdd_output_close()
{
evdd_output_2_pb3(0, EVD_VOL_SEL_ 110V);}
//4.如果需要evdd 电源在低功耗保持,需要注册函数低功耗回调函数 static u8 evdd_idle_query(void)
{
return 1;}
static enum LOW_POWER_LEVEL evdd_level_query(void)
{
return LOW_POWER_MODE_LIGHT_SLEEP;}
REGISTER_LP_TARGET(evdd_lp_target) = {
. name = "evdd",
. level = evdd_level_query,
. is_idle = evdd_idle_query,};
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
Chapter 2 VM接口的使用
2 . 1编写目的
该文档主要描述AC697N_SDK VM使用方法及开发中注意的一些问题,为用户进行二次开发提供参考
2 .2详细说明
Vm读写接口:
读接口:
int sy scfg_read (u 16 item_id, void *buf, u 16 len) ;写接口:
int sy scfg_write (u 16 item_id, void *buf, u 16 len) ;
参数说明:
item_id:vm id取值范围301-511
*buf:读写指针 Len:长度
比如保存音量和读音量的vm操作:
1、 确定vm id号
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
2、 写音量

3、 读音量
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
Chapter 3 audio模块使用
3 . 1编写目的
该文档主要描述AC697N_SDK audio模块的使用方法及开发中注意的一些问题,为用户进行二次开发提供参考。
3 .2详细说明
DAC硬件输出参数配置:
.output :
1、 DAC_OUTPUT_MONO_L : DACL 单端接地
2、 DAC_OUTPUT_MONO_R : DACR 单端接地
3、 DAC_OUTPUT_LR : DACL/R共地
4、 DAC_OUTPUT_MONO_LR_DIFF : DACL DACR差分接
注意:需要根据具体的硬件接法,配置TCFG_AUDIO_DAC_CONNECT_MODE宏, AC697N不支持VCMO
配置例子如下:
通话MIC静音配置:
struct audio_rec_req req ;
req.rec.state = AUDIO_STATE_REC_MUTE;//静音
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
接口使用方法参考如下:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
3 . 3 在线EQ调试
1软件上修改流程方法:
在board_ac697n_wireless_mic_cfg.h打开如下设置。
1.2 通讯方式
使用串口通讯,默认使用usb DP DM做调试口,波特率 115200,可根据实际使用改用别的 IO
在线调试时,请关闭 TCFG_TEST_BOX_ENABLE, 以免串口被占用,导致通讯失败
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
设置后编译,下载到开发板或者样机就可以了。
2 PC端设置流程。
2.1使用”杰理包管理器”软件打开,如下界面。选中新EQ工具

2.2选用对应COM 口,波特率 115200,普通uart调试时,不选蓝牙串口

2.3点击打开,通讯成功左下角会提示 查询版本
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
2.4 选中下拉列表,调试对应模式
下拉列表有:通话宽频下行EQ、通话窄频下行EQ、通话宽频上行EQ、通话窄频下行EQ、普通音频 EQ,五种模式。
例如:选中通话宽频上行EQ后,点击编辑(当前适配器只支持mic上行eq,所以只能选择通话宽频上行)
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
看到此界面,可以根据需对每一段eq 的频率、增益、q值以及滤波器类型进行调节,调节完毕点击 关闭
2.6 EQ调试完成后,点击导出固件eq_cfg_hw.bin 文件。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
2.7 将eq_hw_cfg.bin文件放到下载目录,并在download.bat 中-res 后添加eq_hw_cfg.bin 文件。此外,调试完成需要将在线eq宏定义关闭,同时使能 使用eq文件宏定义
在download.bat 中添加 eq_hw_cfg.bin
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
注意:外部的配置资源一定要放在-res这个所属项里头,例如eq_cfg_hw.bin 的资源,因为跟工具的识别项是同步的。
3 eq_hw_cfg.bin 文件重编辑
选中打开固件配置(离线编辑),选中eq_hw_cfg.bin文件,就会弹出与在线调试一致的界面,此时可以对已有的eq_hw_cfg.bin文件进行修改,修改完成,导出固件
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
2.7 将eq_hw_cfg.bin文件放到下载目录,并在download.bat 中-res 后添加eq_hw_cfg.bin 文件。此外,调试完成需要将在线eq宏定义关闭,同时使能 使用eq文件宏定义
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
例如在earphne 的standard sdk添加 eq_hw_cfg.bin

注意:外部的配置资源一定要放在-res这个所属项里头,例如eq_cfg_hw.bin 的资源,因为跟工具的识别项是同步的。
3 eq_hw_cfg.bin 文件重编辑
选中打开固件配置(离线编辑),选中eq_hw_cfg.bin文件,就会弹出与在线调试一致的界面,此时可以对已有的eq_hw_cfg.bin文件进行修改,修改完成,导出固件
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4 打开工具,eq离线调试编辑
4.1选中对应芯片版本、 以及eq版本,点击离线编辑

4.2弹出设置eq段数的界面,设
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
置目标段数,点击确定,会弹出eq离线编辑界面。编辑完成导出固件
wireless_mic_sdk-v1.4.0及以上的SDK版本支持AC701N系列,AC701N系列使用新的音效工具,配置如下:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
使能miceq功能,打开下面两个宏
#define TCFG_EQ_ENABLE DISABLE_THIS_MOUDLE
#define TCFG_PHONE_EQ_ENABLE DISABLE_THIS_MOUDLE
在线调试,打开以下两个宏,默认使用串口通信#define TCFG_EQ_ONLINE_ENABLE 0
#define TCFG_EFFECT_TOOL_ENABLE DISABLE
新的eq在线调试界面如下,打开配置工具->调音工具
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
3 .4 DAC高低压模式选择
AC697N系列芯片仅支持DAC低压模式, 由 btvdd分出来的ldo供电: DACVDD可选档位如下:
3 . 5 解码声道配置
解码声道配置根据DAC输出模式做自动适配,也可根据需要设置与DAC输出相匹配的声道。 AC697N支持声道如下:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
设置声道接口统一为:
int audio_decoder_set_output_channel(struct audio_decoder *dec, enum audio_channel);
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
Chapter 4 常用设备使用介绍
4 . 1编写目的
该文档主要描述AC697N_SDK 一些常用设备使用以及注意的一些问题,为用户进行二次开发提供参考
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4.2 IOKEY使用
IOKEY驱动支持两种连接方式:
| 1)一个按键接一个IO; | 2)一个按键接两个IO(互推接法); |
|---|---|
![]() | ![]() |
IOKEY参数在板级配置文件中(c文件和h文件)进行配置,如board_ac697n_wireless_mic.c 和board_ac697n_wireless_mic_cfg.h,在h文件中可以打开TCFG_IOKEY_ENABLE宏和结构配置(IO 口和按键连接方式)相关参数,配置结构体参数说明:
配置一个按键只需填充该结构体:![]() | |
|---|---|
| 参数名 | 描述 |
| connect_way | 连接方式支持三种: > ONE_PORT_TO_LOW:按键一个端口接地, 另一个端口接IO; > ONE_PORT_TO_HIGH:按键一个端口接3.3v, 另一个端口接IO; > DOUBLE_PORT_TO_IO:按键两个端口接IO,互推方式。 |
| key_type | key_type 结 构 依 据 connect_way 而 定, 如 果 connect_way 配 置 为 ONE_PORT_TO_LOW 和 ONE_PORT_TO_HIGH 只需要配置一个 IO; 而如果 connect_way配置为DOUBLE_PORT_TO_IO,需要配置两个IO; |
| key_value | key_value指的是按键值,按键被检测到被按下将发送该按键配置的key_value 的值。 |
配置示例如下:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
| 1)一个按键接一个IO配置 | |
|---|---|
| H 文件配置 | ![]() |
| C 文件配置 | ![]() |
| 2)一个按键接两个IO(互推接法) |
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
| H 文件配置 | ![]() |
|---|---|
| C 文件配置 | ![]() |
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4. 3 ADKEY使用
ADKEY配置与 IOKEY配置方式类似,在相应H文件和C文件中配置;配置示例如下:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4.4按键扫描配置和按键消息处理
在IOKEY或者ADKEY使能后,按键扫描代码就会注册定时器定时扫描按键是否被按下,按键扫描参数可以在文件key_driver.c 中配置,可供配置的参数如下:
![]() | |
|---|---|
| scan_time | 按键扫描频率,单位ms,定时器将会按照设定的时间定时扫描IOKEY或者ADKEY |
| last_key | 默认初始化为NO_KEY |
| filter_time | 按键消抖时间,计算方式:fileter_time * scan_time (ms) |
| long_time | 按键长按事件判定时间,计算方式:long_time * scan_time (ms) |
| hold_time | 按键按住保持事件判定时间,计算方式:hold_time * scan_time (ms) |
| click_delay_time | 按键等待连击操作延时时间,计算方式:hold_time * scan_time (ms),注意该参数配置会影响按键灵敏度,同时也会影响连击操作的时间间隔,所以在调试过程中需要根据需要选择一个合适的参数值; |
目前在sdk 中实现了的一些按键通用事件有:
| 按键事件 | 说明 |
|---|---|
| KEY_EVENT_CLICK | 单击事件,在按键被按下经过filter_time时间后松开并经过click_delay_time时间后如果没有被第二次按下,按键扫描函数会判定为按键单击事件并发布出去。 |
| KEY_EVENT_LONG | 长按事件,当按键被按下经过filter_time时间后并一直被按下,在经过long_time 时间后按键扫描函数会判定为按键长按事件并发布出去。 |
| KEY_EVENT_HOLD | 按下保持事件,当按键被按下经过filter_time 时间后并一直被按下,在经过 hold_time时间后按键扫描函数会判定为按键按下保持事件并发布出去,发布完之后如果发现按键还被按下,会在经过hold_time- long_time时间后再次发布按下保持事件。 |
| KEY_EVENT_UP | 抬按事件,在发送完长按事件( KEY_EVENT_LONG)和按下保持事件 |
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
| (KEY_EVENT_HOLD)后,如果按键被松开,按键扫描函数会发布一个抬按事件。 | |
|---|---|
| KEY_EVENT_DOUB LE_CLICK | 双击事件,在按键被按下经过filter_time时间后松开并在click_delay_time之前同一按键再次被按下,并经过click_delay_time之后按键没有再次被按下,按键扫描函数会发布一个双击事件。 |
| KEY_EVENT_TRIPLE _CLICK | 三击事件,在按键被按下经过filter_time时间后松开并在click_delay_time之前同一按键再次被按下,并经过click_delay_time之后按键再次被按下,如果往后操作重复上述连击操作,按键扫描函数都会判定为三击事件并发布出去。 |
按键发布消息后,在app层将会收到该消息,app层可以根据该按键消息进行相关处理,app 层的event_handler收到的按键消息数据格式如下:
| 数据格式 | 说明 |
|---|---|
| event->type | 按键消息类型为SYS_KEY_EVENT,标记为按键消息。 |
| event->u. key.value | 按键值,该值在配置IOKEY或者ADKEY 中配置,标记某一个按键被按下。 |
| event->u. key.event | 按键事件类型,对应上表中所列举的按键事件。 |
用户可以根据收到的按键消息进行相关处理操作。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4. 5关于按键一些特殊需求的修改说明
在6 .4节中提供了一些通用按键配置和消息处理方式,如果这些通用的机制还不能满足用户的需求,用户可以修改下列文件:
| 按键底层驱动 | iokey.c | iokey底层驱动。 |
|---|---|---|
| adkey.c | adkey底层驱动。 | |
| 按键上层驱动 | key_driver.c | |
| 事件处理 | event. h |
目前收集到的按键特殊需求和解决方案如下:
特殊需求1:组合键
SDK 中默认只支持单击按键,用户如果需要支持组合按键,可以通过修改key底层驱动文件,如iokey.c和adkey.c文件,主要修改点有:
1)修改函数io_get_key_value(),判断按键被按下的方式,使得支持检测哪些按键被同时按下; 2)如果是组合键,iokey_get_key_value()函数需要返回与单按键所定义的不一样的值(ret_value);
3)APP上层会收到ret_value值,用户可以对该组合键消息进行实践处理;
目前,SDK IOKEY按键驱动中已经实现了组合键的功能,用户可以通过如下配置实现该功能
1)board_xxx_cfg. h文件,使能组合按键配置

2)board_xxx.c,配置组合按键映射表

特殊需求2:按键多击事件
SDK 中默认支持双击事件和三击事件,用户如果需要支持更多击事件,可以修改如下文件:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1)event. h文件50行:
在箭头位置可以添加其他多击事件;
2)key_driver.c文件106行:
在图中TODO位置可以增加任意多击事件的判断,然后key_event 需要等于在event. h文件中增加的多击事件;
3)最后在APP层收到该多击事件进行处理即可;
特殊需求3:某些按键只响应单击事件
该需求可以通过按键值的某一bit进行特殊处理,由于按键值(key_value)目前用1byte来表示,可支持0 ~ 255个按键,但在大部分应用中用不到这么多按键,因此目前SDK中使用按键值(key_value)的第7位进行标记,按键扫描时对标记了bit(7)的按键不进行多击判断处理,用户如果需要应用该需求,只需要在板级配置文件(如board_ac6936a_tws.c文件)中对按键值进行标记即可:
其他特殊需要:欢迎补充!
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4.6 串口使用
- const uart_bus_t * uart_dev_open(const struct uart_platform_data_t *arg)
打开一个串口设备。根据传入的引脚选择UART0, UART1或UART2,若引脚不与UARTx匹配,则自动打开一个空闲的 UARTx,并利用OUTPUT CHANNEL 匹配tx_pin或INPUT CHANNEL 匹配 rx_pin。 UART0, UART1支持DMA, UART2不支持DMA,需要填写一个循环buffer 的地址和长度来用作DMA接收,另外还需要填写一个以 ms为单位的超时时间参数。
参数:
const struct uart_platform_data_t *arg
uart初始化结构体,结构体声明如下:
struct uart_platform_data_t {
u8 tx_pin;
///< 作为发送引脚的引脚号,可从参考gpio. h枚举中选,当引脚为空时,则填 -1 u8 rx_pin;
///< 作为接收引脚的引脚号,可从参考gpio. h枚举中选,当引脚为空时,则填 -1 void * rx_cbuf;
///< 如果使用中断DMA接收,则写入循环buf 的首地址,ut 中断使能;如果不使用,则写入NULL,无中断
u32 rx_cbuf_size;
///< 循环buf 的大小,必须为2 的多少几次幂,如果不用循环buf,该值无效,可写NULL u32 frame_length;
///< 产生RT 中断的字节数,如无中断,该值无效
u32 rx_timeout;
///< 产生OT 中断的时间值,单位ms,如无中断,该值无效
ut_isr_cbfun isr_cbfun;
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
///< ut 中断的回调函数句柄,不用回调函数则写入NULL,如无中断,句柄无效 void *argv;
///< ut 中断的回调函数的一个扩展形参,可供用户设定,如无回调函数,此参数无效 u32 is_ 9bit: 1;
///< ut九位模式使能位,0:关闭;1:使能
u32 baud: 24;
///< ut 的波特率
};
返回值:
const uart_bus_t *类型指针变量用作打开成功的句柄,如果打开失败则返回 NULL - void uart_dev_close(uart_bus_t * ut)
关闭串口设备参数:
uart_bus_t * ut
使用uart_dev_open()打开串口设备返回的句柄返回值:
NULL
应用例程:
void uart_isr_hook(void *arg, u32 status)
{
const uart_bus_t * uart_bus = arg;
...
}
void xxx()
{
....
const uart_bus_t * uart_bus;
struct uart_platform_data_t u_arg = {0};
u_arg.tx_pin = IO_PORTA_01;
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
u_arg. rx_pin = IO_PORTA_02;
u_arg. rx_cbuf = uart_cbuf;
u_arg. rx_cbuf_size = 512;
u_arg.frame_length = 64;
u_arg. rx_timeout = 100;
u_arg. isr_cbfun = uart_isr_hook;
u_arg. baud = 115200;
[u_arg.is_9bit = 0](u_arg.is_9bit = 0);
uart_bus = uart_dev_open(&u_arg);}
}
串口打开后即可正常读写数据,具体的例子请参考uart_test.c文件里的例子
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4. 7 IIC接口使用
Sdk支持软件IIC和硬件IIC,具体的驱动在cpu/br30 目录下的iic_hw.c、iic_soft.c和iic_eeprom_test.c 文件里,具体的函数接口如下:
[1. int](1. int) soft_iic_init(soft_iic_dev iic)
初始化软件IIC,通过全局结构体变量soft_iic_cfg配置SCL, SDA,波特率等参数参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev 返回值:
0 成功, 非零 失败
2. void soft_iic_uninit(soft_iic_dev iic)
反初始化软件IIC
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev 返回值:
NULL
3. void soft_iic_suspend(soft_iic_dev iic)
挂起软件IIC,使引脚不输出参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev 返回值:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
NULL
4. void soft_iic_resume(soft_iic_dev iic)
恢复软件IIC,重新占用引脚参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev 返回值:
NULL
5. void soft_iic_start(soft_iic_dev iic)
发送起始位
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev 返回值:
NULL
6. void soft_iic_stop(soft_iic_dev iic)
发送停止位
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev 返回值:
NULL
7. u8 soft_iic_tx_byte(soft_iic_dev iic, u8 byte)
发送一个字节
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev
u8 byte
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
被发送字节返回值:
1 IIC从机ACK, 0 IIC从机NACK
8. u8 soft_iic_rx_byte(soft_iic_dev iic, u8 ack)
接收一个字节
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev u8 ack
主机是否应答, 1 ACK, 0 NACK 返回值:
读取的字节
[9. int](9. int) soft_iic_write_buf(soft_iic_dev iic, const void *buf, int len)
软件IIC写buffer
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev const void * buf
发送缓冲区基地址 int len
缓冲区长度返回值:
=0 返回实际发送长度,<0 失败
[10. int](10. int) soft_iic_read_buf(soft_iic_dev iic, void *buf, int len)
软件IIC读buffer
参数:
soft_iic_dev iic
iic句柄,类型为typedef 的soft_iic_dev void * buf
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
接收缓冲区基地址 int len
缓冲区长度返回值:
=0 返回实际发送长度,<0 失败
硬件IIC
[1. int](1. int) hw_iic_init(hw_iic_dev iic)
初始化硬件IIC,通过全局结构体变量hw_iic_cfg配置SCL, SDA,波特率等参数参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev 返回值:
0 成功, 非零 失败
2. void hw_iic_uninit(hw_iic_dev iic)
反初始化硬件IIC
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev 返回值:
NULL
3. void hw_iic_suspend(hw_iic_dev iic)
挂起硬件IIC,使引脚不输出数据参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev 返回值:
NULL
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4. void hw_iic_resume(hw_iic_dev iic)
恢复硬件IIC,重新占用引脚参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev 返回值:
NULL
5. void hw_iic_start(hw_iic_dev iic)
发送起始位
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev 返回值:
NULL
6. void hw_iic_stop(hw_iic_dev iic)
发送停止位
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev 返回值:
NULL
7. u8 hw_iic_tx_byte(hw_iic_dev iic, u8 byte)
发送一个字节
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev u8 byte
被发送字节返回值:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
1 IIC从机ACK, 0 IIC从机NACK
8. u8 hw_iic_rx_byte(hw_iic_dev iic, u8 ack)
接收一个字节
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev u8 ack
主机是否应答, 1 ACK, 0 NACK 返回值:
接收的字节
[9. int](9. int) hw_iic_write_buf(hw_iic_dev iic, const void *buf, int len)
硬件IIC写buffer
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev const void * buf
发送缓冲区基地址 int len
缓冲区长度返回值:
=0 返回实际发送长度,<0 失败
[10. int](10. int) hw_iic_read_buf(hw_iic_dev iic, void *buf, int len)
硬件IIC读buffer
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev const void * buf
发送缓冲区基地址
int len
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
缓冲区长度返回值:
=0 返回实际发送长度,<0 失败
[11. int](11. int) hw_iic_set_baud(hw_iic_dev iic, u32 baud)
设置波特率
参数:
hw_iic_dev iic
iic句柄,类型为typedef 的hw_iic_dev u32 baud
波特率
返回值:
0 成功, 非零 失败
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
4.8充电相关配置说明
1、 充电相关宏
TCFG_CHARGE_ENABLE:内置充电使能 TCFG_CHARGE_POWERON_ENABLE:开机充电使能 TCFG_CHARGE_OFF_POWERON_NE:拔出开机使能
TCFG_CHARGE_FULL_V:充满电压配置
TCFG_CHARGE_FULL_MA:充电判满电流配置
TCFG_CHARGE_MA:恒流充电电流配置
注意:LDOIN 的纹波会影响充电判满电流,纹波越大实际判满电流会比设置的判满电流小,纹波大可设置较大的判满电流
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
Chapter 5 低延时无线麦
5. 1 功能概述
低延时无线麦功能支持以下三种组合配置:
(1)一发一收
a) 无线麦(单收发), MIC(从)->BT->DAC(主)
b) 无线USB麦(单收发), MIC(从)->BT->d。ngle->usb mic->PC/手机(typec)
(2)两发一收
a)无线麦(两发一收), MIC(从)->BT->DAC(主)
b)无线USB麦(两发一收), MIC(从)->BT->d。ngle->usb mic->PC/手机(typec)
(3)双工
a)下行, PC/手机(typec)->usb speaker->d。ngle->BT->DAC( earph。ne)
b)上行, MIC( earph。ne)->BT->d。ngle->usb mic->PC/手机(typec)
(4)一发多收

d) 无线USB麦(一发多收), MIC(从)->BT->d。ngle->usb mic->PC/手机(typec)
5.2 参数和规格
5.2.1一发一收
普通无线麦方案:
参数:
声道数:单声道
采样率:48K采样率
码率:64kbps
延时:
15~ 20ms (mic发射到接收端dac输出的延时)
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
距离:
正对40米以上, 背对20米以上(测试环境:小开发dem。板)
无线话筒方案
参数:
声道数:单声道
采样率:48K采样率
码率:42Kbps
延时:
27ms (mic发射到接收端dac输出的延时)
距离:
正对30米以上, 背对15米以上(测试环境:小开发dem。板)
5.2. 2两发一收
参数:
声道数:单声道
采样率:48K采样率
码率:64Kbps
延时(mic发射到接收端dac输出的延时):
正常模式:19ms
低延时模式:16ms 室内背对距离(测试环境:小开发dem。板):
正常模式:40米以上
低延时模式:背对40米
室外空旷背对距离(无干扰和遮挡):
正常模式:40米
低延时模式:25米
5.2.3双工
参数:
上行:
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
声道数:单声道
采样率:697系列--16K采样率 701系列--48k采样率
码率:64Kbps
下行:
声道数:双声道
采样率:48K采样率
码率:128Kbps
延时:
上行无线延时:20ms+
下行无线延时:20ms+
距离:
正对40米以上, 背对20米以上(测试环境:小开发dem。板)
5.2.4一发多收
参数:
延时:
18~ 22ms (mic发射到接收端dac输出的延时)
距离:
正对40米以上, 背对20米以上(测试环境:小开发dem。板)
5. 3 模型
一发一收
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
两发一收
双工
一发多收
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
5.4 SDK包说明
| 产品角色产品形态 | 从机SDK | 主机SDK |
|---|---|---|
| 一发一收 | wireless_mic_sdk-vx.x.x_ 1t1_tx | wireless_mic_sdk-vx.x.x_ 1t1_rx |
| 两发一收 | wireless_mic_sdk-vx.x.x_ 2t1_tx | wireless_mic_sdk-vx.x.x_ 2t1_ rx (JL6976M) (JL7016M/JL7018M) |
| 双工(游戏耳机) | wireless_mic_sdk-vx.x.x_duplex_earphone (JL6976M/JL6976N8) (JL7016M/JL7018M) | wireless_mic_sdk-vx.x.x_duplex_dongle (JL6976M) (JL7016M/JL7018M) |
| 一发多收 | wireless_mic_sdk-vx.x.x_ 1tN_tx (JL6976M) | wireless_mic_sdk-vx.x.x_ 1tN_rx (JL6976M) |
| 备注: 一发一收、两发一收、 一发多收角色定义:从机是发射端(TX), 主机接收(RX)。 双工: 主机是dongle, 从机是earphone 特别提醒: 1、 上述有特殊标识(JL6976M/JL6976N8)(JL7016M)的SDK包, 必须使用(JL6976M/JL6976N8)(JL7016M)的芯片才能正常工作, 其他无标识的无此限制 2、 不同版本SDK要做好版本管理,不同版本SDK(例如1.2.0和V1 .3.0)不要混用, 避免版本不兼容导致的异常情况。 3、 以上产品形态涉及立体声或者双工, 都必须要用(JL6976M/JL6976N8) |
注意:
wireless_mic_sdk-v1.4.0_xxx 以及后面的SDK版本支持701N系列,对应的codeblock 在路径..\apps\adapter\board\brxx 中,使用697N系列选择br30 中的codeblock,使用 701N系列选择br28 中的codeblock。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
5. 5 相关配置说明
5.5.1公共配置说明
(1)设备配对配置,这点很重要,每款产品对应独有的产品名。SDK默认从配置工具中的蓝牙名中读取配对名。 (注:需要确保主机和从机的配对名一样,才可以互连。 )
从配置工具中设置配对名(默认)
#define WIRELESS_TOOL_BLE_NAME_EN ENABLE
(2)2.4G使能配置(默认开启)
#define WIRELESS_ 24G_ENABLE ENABLE //使能此功能可以屏蔽手机搜索到此无线
设备名
(3)配对绑定(默认关闭)
//配对绑定
#define WIRELESS_MIC_PAIR_BONDING DISABLE
打开配对绑定后,主机和从机在没有配对记录时,会全局扫描或广播。 当配对名一致时,会连接上并且绑定彼此,不会跟其他的设备连上。这样可以防止一个场景中多个设备混连的情况。
取消配对
如果想实现取消配对,则需要调用以下接口来清除绑定信息。 当设备处于连接情况下时,进行取消配对,会清除绑定信息并且重新进入扫描或广播(注:不能只清除一方的绑定信息,主从都需要清除)
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
注: 由于一发多收本身的配对方式决定,一发多收默认具有绑定配对功能
(4)RF测试(默认关闭)
//用于无线麦测试RF性能
#define TCFG_RF_TEST_EN DISABLE
SDK 目前提供的 RF测试需要借助USB Updater V4 .0工具来触发进入dut模式。工具需要升级为对应的固件才可以触发样机进入测试模式。 对应的固件(固件名为 RF产测引导工具)可以使用 remote_firmware_update.exe上获取及升级
考虑到一般的无线麦形态都带有usb 口进行供电或者充电,所以程序默认使用IO_PORT_DP(可
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
修改)进行通信,在产线测试阶段就可以直接将工具插入到样机的usb 口,短按一下工具的触发按键,让样机进入dut模式。如果握手成功,就进入测试模式,如果没有握手成功,则证明样机需要跑正常的功能,样机就不会进入测试模式。
退出dut测试
对于使用usb供电的样机,拔出工具就会断电关机
对于使用电池供电的样机, 目前只针对带有按键的样机进行程序设计,程序会识别是否有按键触发,就会进入退出dut模式并关机。
如果有其他特殊需求,可以在代码中自行修改
注:可以使能RF测试功能进行生产,只要没有触发到RF测试模式,就不会影响正常的功能。
(5) LDOIN在线升级功能(默认开启)
#define TCFG_TEST_BOX_ENABLE ENABLE_THIS_MOUDLE
使用说明
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
通过 pc 工具界面打开“升级使能”,并设置好合适的波特率,默认 500,000,点击“保存设置到测试盒”,重启测试盒进入串口升级模式。
将LDO IN 引脚接到L_UR(R_UR),GND接到测试盒的GND。 切换pc界面到“样机升级”界面,默认会显示左右耳的设备“earphone-L”和“earphone-R”,当 左右耳设备在线的时候会显示对应样机的蓝牙地址,不在线设备蓝牙地址为 0 或 1。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
(6)产线快速配对功能测试(默认打开):
目前提供利用信号强度来做产线快速配对测试样机的功能。想要批量测试RX时,拿一个 TX样机配置一个特殊的蓝牙名, 以#@#@#@开头。例如量产使用的蓝牙名是JL697,则设置一个特殊的TX 的蓝牙名为#@#@#@JL697,待测的RX都保持量产的蓝牙名JL697。RX会识别配对名的开头是否有特殊字符串,默认的特殊字符串是"#@#@#@",当识别到特殊字符串时,会判断对方的信号强度,如果满足条件,才可以配对上。测试完功能之后,关闭RX,再重新取出未测试的RX开机,又可以跟特殊的TX近距离配对,重复以上步骤,既可以完成产线快速测试样机功能。
想要批量测试TX时,拿一个RX样机,配置一个特殊的蓝牙, 以#@#@#@开头,待测TX 都保持量产的蓝牙名。只有靠得足够近的TX,才可以配对上。
如果想修改特殊字符串和配对距离,只需要修改RX板级的代码
#define SPECIFIC_STRING "#@#@#@"//用户可自定义修改
#define TCFG_WIRELESS_RSSI 50//demo板测试50大概对应1米的距离,越
大越远
注意!!!
1,如果程序中设置了绑定配对,在进行产线快速配对测试的时候,需要手动清除掉有绑定记录的样机。
2,同一个产线测试环境,不可以同时进行TX和RX 的近距离快速配对功能,待测的 RX会搜索到范围内待测的TX,影响测试效率。尽量先同时测试完TX或者RX,再测试另一端。
(7)PA功率放大(默认关闭)
添加PA进行功率放大,延长使用距离,使用该功能需要添加PA硬件电路,默认TX/ RX使用 PC2/ PC3
#define CONFIG_BT_RF_USING_EXTERNAL_PA_EN DISABLE
PA 的IO也可以调用接口修改
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
(8)mic配置
默认使用差分麦, 对底噪有明显优化, 对于驻极体mic和模拟硅mic JL6976M 同封装芯片由MIC1_BIAS提供电压
如果是动圈麦, 可以不使能MIC1_BIAS, 可以在adapter_adc.c 中将audio_mic_ldo_en(1,&adc_data);调用注释掉
如果使用单端麦,则配置MIC_MODE_SINGLE_END 即可
#define TCFG_AUDIO_MIC_MODE MIC_MODE_DIFF_END//MIC_MODE_SINGLE_END
(9) USB_MIC 手机兼容性
目前测试小部分手机APP录音需要同时开SPEAKER_CLASS,才可以使用USB_MIC录音,,能提高兼容性。如果不开SPEAKER_CLASS,即使插上无线麦接收器,也是使用手机自己的麦进行录音。不过开了SPEAKER_CLASS,手机播放音频,就无法外放,需要用户自己根据产品使用场景进行修改。
SDK默认不打开SPEAKER_CLASS,需要用户自己选择,按如下修改可使能SPEAKER_CLASS #define USB_DEVICE_CLASS_CONFIG MIC_CLASS |SPEAKER_CLASS
(10)SD卡录音及读卡器功能
#define WIRELESS_MIC_RECORDER_ENABLE DISABLE
备注: 目前仅701N系列支持SD卡录音功能
5.5.2 无线mic一发一收配置说明---board_wireless_mic_ 1t1_xx_cfg. h
(1)接收角色声音输出配置
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
#define WIRELESS_MIC_RX_OUTPUT_DAC 0
#define WIRELESS_MIC_RX_OUTPUT_USB_MIC 1
//配置为DAC输出:
#define WIRELESS_MIC_RX_OUTPUT_SEL WIRELESS_MIC_RX_OUTPUT_DAC
//配置为USB MIC输出:
#define WIRELESS_MIC_RX_OUTPUT_SEL WIRELESS_MIC_RX_OUTPUT_USB_MIC
(2)模式选择
#define WIRELESS_MICROPHONE_MODE 1//1:无线话筒模式使能, 0:普通无线麦模式
目前SDK提供两种模式,即无线话筒模式和普通无线麦模式
无线话筒模式适合发射端或接收端的机器上还有其他蓝牙芯片的方案,开启无线话筒可以有效避开其他蓝牙芯片的干扰。
如果方案上只有无线麦的蓝牙芯片,没有其他蓝牙芯片的方案,则使用普通无线麦模式即可,延时小,码率高,音质较好。
(3)噪声门限使能配置(默认关闭)
#define WIRELESS_NOISEGATE_EN DISABLE //噪声门限使能
(4)降噪使能配置(默认关闭)
#define WIRELESS_DENOISE_ENABLE ENABLE //降噪使能
(5)混响使能配置(默认关闭)
#define WIRELESS_ECHO_ENABLE ENABLE //混响使能
(5)防啸叫使能配置(默认关闭)
#define WIRELESS_HOWING_ENABLE ENABLE //防啸叫使能
(6)同时输出到dac(默认关闭)
//同时输出到dac,发射端和接收端都可以配置
#define WIRELESS_MIC_OUTPUT_DAC_SAMETIME DISABLE
当从机的输出方式选择WIRELESS_RX_OUTPUT_USB_MIC时,可以打开该功能,声音可以 同时从 dac输出。主机也可以打开,也是会从dac输出
(7)一发一收无线绑定与解绑
目前一发一收具有发射端绑定配对功能,接收端不具有绑定配对。 即发射端A一旦连接上了接收端A,那么发射端A就只能和第一次连接的接收端A连接,但是被连过的接收端A还是可以跟其他的发射端B连接。
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
#define WIRELESS_PAIR_BONDING ENABLE
可通过修改该宏来配置发射端绑定和不绑定
如果发射端没有带按键,不建议打开绑定配对,如果不小心连上别的接收端,没办法解除绑定,除非重新烧写固件。如果可以控制好配对干扰,比如在屏蔽房中配对样机,那么也可以打开该功能。
如果发射端带有按键,那么建议打开绑定配对,即使不小心连上了别的样机,也可以利用按键功能调用解除绑定的接口来解除绑定。
解除绑定接口:
void wlm_clear_pair(void);
(10) linein立体声输入(默认关闭)
#define WIRELESS_MIC_STEREO_EN 0
注:需发射端和接收端同时使能该宏,否则功能异常
(11)测试盒无线升级(默认打开, 131SDK新增功能)
测试盒需要升级到1.2.6.e及以上版本
升级接收板时,测试盒需要选择WIRELESS_MIC_ 1T1_RX_MODE_ 1_OOB_ 1
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
升级发射板时,测试盒需要选择WIRELESS_MIC_ 1T1_TX_MODE_ 1_OOB_ 1
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
注意!!!
考虑到无线话筒方案的RX一般不是按键开机,所以在升级结束之后不能直接开机,避免重新被测试盒搜索重新进入升级,影响升级效率。因为RX一般不是电池直接供电,而是由主板上的其他电路供电,所以这里如果进入关机,重新关开音箱的时候,可能主板上有电容的原因,导致RX没有充分放电,无法正常唤醒。
用户可根据具体方案需求自定义修改
5.5. 3无线mic两发一收配置说明---board_wireless_mic_ 2t1_xx_cfg. h
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
(1)接收角色声音输出配置
#define WIRELESS_MIC_RX_OUTPUT_DAC 0
#define WIRELESS_MIC_RX_OUTPUT_USB_MIC 1
//配置为DAC输出:
#define WIRELESS_MIC_RX_OUTPUT_SEL WIRELESS_MIC_RX_OUTPUT_DAC
//配置为USB MIC输出:
#define WIRELESS_MIC_RX_OUTPUT_SEL WIRELESS_MIC_RX_OUTPUT_USB_MIC
(2)噪声门限使能配置(默认关闭)
#define WIRELESS_NOISEGATE_EN DISABLE //噪声门限使能
(3)降噪使能配置(默认关闭)
SDK支持两种降噪算法:正常降噪和低延时降噪,正常降噪的延时会比较大,23ms左右。低延时降噪延时是5ms左右。客户根据自己的需求和体验,选择自己的降噪类型。
#define WIRELESS_DENOISE_ENABLE DISABLE //降噪使能,降噪效果更佳,延时较大
#define WIRELESS_LLNS_ENABLE DISABLE//低延时降噪,延时低,降噪算法时间5ms
(4)混响使能配置(默认关闭)
#define WIRELESS_ECHO_ENABLE ENABLE //混响使能
(5)同时输出到dac
//发射端声音同时输出到dac
#define WIRELESS_MIC_OUTPUT_DAC_SAMETIME DISABLE
注: 131_ 2t1版本接收端目前已删除该宏,只有发射端才有该宏,发射端使能该宏,可将声音同时输出到发射端的dac,即“监听功能”。接收端想要同时输出到usb和dac,SDK只要配置输出到USB就会默认同时输出到dac,配置输出到dac 的话,就单纯输出到dac。
(6) linein立体声输入(默认关闭)
#define WIRELESS_MIC_STEREO_EN 0
注:需发射端和接收端同时使能该宏,否则功能异常
(7) MIC立体声输出(默认关闭)
//两发一收支持两个tx分别作为左右声道,需要RXTX都开这个功能
//靠电阻区分TX 的声道,默认有下拉电阻的作为左声道
发射端和接收端都需要使能该功能
#define WIRELESS_TX_MIC_STEREO_OUTPUT DISABLE
发射端需要添加一个IO 口区分左右机
#define WIRELESS_TX_L_CH_IO IO_PORTB_03
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
切换真立体声和假立体声如下,按键事件KEY_WIRELESS_MIC_CH_SW 即可
上电默认真立体声输出
(8)低延时模式(默认关闭)
//低延时模式,比非低延时模式少3ms,距离会变短,用户可根据产品应用场景选择,txrx需要保持一致
#define WIRELESS_LOW_LATENCY DISABLE
(9)延时与距离调整
如果用户对延时要求比较低,但是对距离要求高,可以将WL_LOW_DELAY_LIMIT改大,即可增加距离。反之则延时减小,但是距离短。WL_LOW_DELAY_LIMIT 的值不能小于9,否则会出现近距离卡顿的情况。
(10)功能限制
由于系统时钟不够,所以697N系列不支持【低延时+立体声+USB_MIC+USB_SPK+samplerate>32k】
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
需要关闭SPEAKER_CLASS,并且采样率不能超过32k。
701N系列无此限制,可以支持【低延时+立体声+USB_MIC+USB_SPK+samplerate>32k】
(11) MIC立体声自适应(默认关闭)
//两发一收立体声自适应,TX不需要电阻区分左右声道,默认第一个连接上为左声道,为右声道
#define WIRELESS_TX_MIC_STEREO_OUTPUT_AUTO DISABLE
注:这个功能只需在接收端开启,同时必须先开WIRELESS_TX_MIC_STEREO_OUTPUT
(12)一拖一功能
//2t1只连接1个tx,即1t1,不需要使用JL697M/JL701M系列芯片
#define WIRELESS_ 2t1_RX_ONLY_CONN_ 1TX DISABLE
(13)测试盒升级(默认打开, 140SDK新增功能)
测试盒升级时,需要将拨码1关闭,拨码6打开
第二个
5.5.4 无线mic一发多收配置说明---board_wireless_mic_ 1tN_xx_cfg. h
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
(1)接收角色声音输出配置
#define WIRELESS_MIC_RX_OUTPUT_DAC 0
#define WIRELESS_MIC_RX_OUTPUT_USB_MIC 1
//配置为DAC输出:
#define WIRELESS_MIC_RX_OUTPUT_SEL WIRELESS_MIC_RX_OUTPUT_DAC
//配置为USB MIC输出:
#define WIRELESS_MIC_RX_OUTPUT_SEL WIRELESS_MIC_RX_OUTPUT_USB_MIC
(2) 噪声门限使能配置(默认关闭)
#define WIRELESS_NOISEGATE_EN DISABLE //噪声门限使能
(3) 降噪使能配置(默认开启)
#define WIRELESS_DENOISE_ENABLE ENABLE //降噪使能
(4) 混响使能配置(默认开启)
#define WIRELESS_ECHO_ENABLE ENABLE //混响使能
(5) 同时输出到dac(默认关闭)
//同时输出到dac,发射端和接收端都可以配置
#define WIRELESS_MIC_OUTPUT_DAC_SAMETIME DISABLE
当从机的输出方式选择WIRELESS_RX_OUTPUT_USB_MIC时,可以打开该功能,声音可以 同时从 dac输出。主机也可以打开,也是会从dac输出
(6) linein立体声输入(默认关闭)
#define WIRELESS_MIC_STEREO_EN 0
注:需发射端和接收端同时使能该宏,否则功能异常
(7)连接方式
一发多收支持两种连接方式:按键连接、复位连接
①按键连接(注:发射端和接收端必须为同一种连接方式)
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
操作方法:
发射端和接收端分别调用进入配对接口,进行配对
配对完成之后发射端调用连接接口,进行连接(注:接收端不需调用连接接口)
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
②复位连接
操作方法:
发射端和接收端分别复位5次,即可进行连接
5.5.5 无线mic双工配置说明---board_wireless_duplex_earphone_cfg. h
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
(1)自动mute(默认关闭)
#define WIRELESS_AUTO_MUTE DISABLE
(2) 双工和普通蓝牙耳机双模式切换(默认关闭)
#define TCFG_DUPLEX_EARPHONE_MODE_SW DISABLE
该功能实现无线麦SDK可以切换到普通蓝牙耳机功能,公版的普通蓝牙耳机SDK没有添加模式切换的代码,需要用户单独添加流程,普通蓝牙耳机模式切换代码详见《无线麦双工与普通蓝牙耳机模式切换说明》
调用函数void duplex_earphone_mode_switch(u8 mode),即可切换模式。
注:使用该功能需要使用8Mflash 的芯片,如果是697N系列需要使用JL6976N8 封装
(3) EQ(默认关闭)
#define TCFG_EQ_ENABLE DISABLE_THIS_MOUDLE
#define TCFG_MUSIC_EQ_ENABLE DISABLE_THIS_MOUDLE //音乐
#define TCFG_PHONE_EQ_ENABLE DISABLE_THIS_MOUDLE //mic
(4)噪声门限(默认关闭)
#define WIRELESS_NOISEGATE_EN DISABLE //噪声门限使能
该功能实现外部声音比较小声的时候,会mute住mic 的声音
(5)混响(默认关闭) (697N系列资源不足,仅701N系列支持)
#define WIRELESS_ECHO_ENABLE DISABLE //混响
(6)mic 降噪(默认关闭) (697N系列资源不足,仅701N系列支持)
#define WIRELESS_DENOISE_ENABLE DISABLE//只支持32k采样率,降噪使能
#define WIRELESS_LLNS_ENABLE DISABLE //支持16k,32k,48K采样率,低延时降噪,延
时低,降噪算法时间5ms
降噪有两个算法可以选择,一个是正常降噪(denoise),一个是低延时降噪(llns),看客户对降噪效果的感受和采样率做选择,选择其中一种降噪即可
(7)测试盒无线升级(默认打开)
测试盒升级时,需要将拨码1关闭,拨码6打开
测试盒版本需要高于1.2.7版本才支持
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
5.6 无线麦应用主流程
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
5. 7 无线麦按键相应处理
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
5.8 降噪档位切换
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.
5.9 UI添加

5. 10 注意事项
1、 因为该无线麦实现是通过蓝牙连接实现的, 对于有快速开关机有要求的情景,必须要做软开关处理, 在确保蓝牙正常断开情况下关机, 再开机才能快速连接。
2、 无线麦应用方案一般都存在收发两个角色, 因为SDK版本迭代的原因有可能导致不同版本之间有兼容问题, 所以在方案开发的过程尽量避免收和发使用不同版本的SDK
AC697N All information provided in this document is subject to legal disclaimers © JL.V. 2019. All rights reserved.







