AC706N无线麦问题整理
📎 原始文档:https://www.kdocs.cn/l/ci5vj59j7g2q AC706N无线麦问题整理
前言:本文档整理将以各个SDK遇到的共性问题做整理汇总,可直接根据所使用的sdk版本及功能快速索引相关问题点
必看(sdk 配置介绍)
一定要事先查看:sdk 包 中自带的《软件资料 》文件夹下的 “Wireless_mic_SDK_介绍.pdf ”
下面是 AC706N_wireless_mic_release_V1.1.2版本SDK下的 文件链接:
AC706N_wireless_mic_release_V1.1.2_AC706N无线话筒应用详细设计说明书.pdf
开发注意点
配对名修改是修改ble 配对名


MIC增益设置(设置范围0~4) 706 无线麦SDK添加数字增益在线调试
struct live_adc_capture_context {
struct audio_adc_output_hdl adc_output; //adc 输出
struct adc_linein_ch aux_ch; //aux 通道
struct adc_mic_ch mic_ch; //mic 通道
int sample_rate; //采样率
u8 gain; //增益
u8 input_nch; //打开的输入通道数
u8 nch; //输出pcm数据声道数
u8 start; //aux 状态
u8 on_off;
s16 *sample_buffer; //单双声道转换缓存
void *output_path; //数据接口私有参数
int (*write_frame)(void *path, struct audio_frame *frame);//输出接口
void *clock;
u32(*capture_time)(void *clock, u8 type);
};
修改MIC增益的地方:
cpu\br29\audio_common\sound_device_driver.c
void *live_mic_capture_open(struct audio_path *path)
{
struct live_adc_capture_context *mic = zalloc(sizeof(struct live_adc_capture_context));
ASSERT(mic);
mic->sample_rate = path->fmt.sample_rate;
mic->gain = 3;
mic->nch = path->fmt.channel;
mic->output_path = path->output.path;
mic->write_frame = path->output.write_frame;
mic->clock = path->time.reference_clock;
mic->capture_time = path->time.request;
- 706使用默认数字音量节点调音加减音量、切换mute mic 功能办法


static bool trans_pp = false;
static u8 curr_vol = 0;
void *dig_vol_group = audio_dig_vol_group_hdl_get(sys_digvol_group, "music_live_capture");
if(!trans_pp)
curr_vol = audio_dig_vol_get(dig_vol_group, AUDIO_DIG_VOL_ALL_CH);
u8 max_vol = audio_dig_max_vol_get(dig_vol_group);
//mute mic 切换
case KEY_DIG_GROUP_LIVE_CAPTURE_PP:
if (dig_vol_group) {
trans_pp = !trans_pp;
// u8 volume = trans_pp ? 0 : app_var.music_volume;
u8 volume = trans_pp ? 0 : curr_vol;
printf("dig vol group set music_live_capture %d", volume);
audio_dig_vol_group_vol_set(sys_digvol_group, "music_live_capture", AUDIO_DIG_VOL_ALL_CH, volume);
}
break;
//加音量
case KEY_DIG_GROUP_LIVE_CAPTURE_UP:
if (dig_vol_group&&(!trans_pp)) {
u8 volume = curr_vol < max_vol ? curr_vol+1 : max_vol;
printf("dig vol group set music_live_capture %d", volume);
audio_dig_vol_group_vol_set(sys_digvol_group, "music_live_capture", AUDIO_DIG_VOL_ALL_CH, volume);
}
break;
//减音量
case KEY_DIG_GROUP_LIVE_CAPTURE_DOWN:
if (dig_vol_group&&(!trans_pp)) {
u8 volume = curr_vol ? curr_vol-1 : curr_vol;
printf("dig vol group set music_live_capture %d", volume);
audio_dig_vol_group_vol_set(sys_digvol_group, "music_live_capture", AUDIO_DIG_VOL_ALL_CH, volume);
}
break;
- 706声音不够大的解决办法,通过数字增益提高 706 无线麦SDK添加数字增益在线调试.zip
PS:注意 文档中的在线调试使能是为了准确设置所需数字gain 而增加的,设置好参数后,可以不用一直打开在线在线音效调试使能。
案例:1TN板级下 ,选择JLA编解码方式后,要是打开 在线调试,保证VM有40K空间时候,无法下载到2M的芯片中,这个时候需要将在线调试使能TCFG_EFFECT_TOOL_ENABLE 关闭掉就可以下载到2M的芯片中进去。 - MIC 通道的选择
#define TCFG_AUDIO_ADC_MIC_CHA AUDIO_ADC_MIC_CH //ac706只有一个adc通道
- AC706x系列烧录芯片报错 LVD值无效
处理方法:
ini文件去掉LVD=CONFIG_LVD_LEVEL
如果需要重新编译的话,则去掉isd_config_rule.c文件里的LVD=CONFIG_LVD_LEVEL
7. AC706x系列 TX端MIC数据清零
8. AC706x系列RX端DAC数据清零
9. AC706x系列修改为DCDC供电模式需要设置外挂dcdc供电脚
10. AC706x系列模拟增益MAX_ANA_VOL 对应的增益【0-3】对应【0db、2db、6db、14db】,即{0, 1, 3, 7}档位2dB/step
11. AC706x系列修改为长按复位IO口的配置方式:
详情请查看:sdk 包中的《软件资料 》文件夹下的 “Wireless_mic_SDK_介绍.pdf ”
12. AC706x系列2T1、1T1、1TN按键配对,1TN自动配对的配置说明 ①2T1: TX 和RX 端都选择CONFIG_BOARD_AC706N_2T1_SIMPLEX 板级即可,2T1 板级直接配置成1T1应用,需要将RX端#define LEA_CIG_CONNECTION_NUM 配置成 1
1T1、1TN按键配对,1TN自动配对的配置,均使用1TN板级配置而来,参考
①1T1:TX 和RX 端都选择CONFIG_BOARD_AC706N_1TN 板级即可 ,保持默认配置#define BROADCAST_ENTER_PAIR_BEFORE_RUN 2 即使用 2-连接配对
②1TN按键配对:TX 和RX 端都选择CONFIG_BOARD_AC706N_1TN 板级 ,修改配置#define BROADCAST_ENTER_PAIR_BEFORE_RUN 1 即使用 1-广播配对
③1TN自动配对:TX 和RX 端都选择CONFIG_BOARD_AC706N_1TN 板级 ,修改配置#define BROADCAST_ENTER_PAIR_BEFORE_RUN 0 即使用 0-不配对
PS:1TN自动配对存在一个共性问题,详情查看下面问题处理第4点:AC706N_wireless_mic_release_V1.1.1 选择1TN板级修改为1TN自动配对应用的办法
13. AC706x系列开启音效配置后,默认音效状态是打开的,需要开启后关闭,需要自己bypass掉 参考echo ,其他音效一样处理

AC706x系列搭配701音箱可视化工具,RX功能在701芯片实现的开发指引 TX端就用706普通的SDK包的TX 包,RX 使用 JL701N 音箱可视化中的jla_audio 版本SDK包,具体配置和修改项,参考自带的项目帮助文档中的 “ K歌三合一说明”

AC706x系列 音效调试开启和更新参数
变音需要额外多开启TCFG_MIC_VOICE_CHANGER_ENABLE 宏使能
参数更新:
变声模式参数更新(模式切换)需要自己多加接口:
混响(reverb/echo)参数更新:
AC706x系列 SDK 进入 dut 的修改办法 使用 网盘上面的 进入dut 的程序,进edr dut 模式

AC706x系列 SDK 做1T1应用失真较大问题修改 解决办法:
可以将低延时编码LIVE_AUDIO_CODING_JLA_LL修改为LIVE_AUDIO_CODING_JLA ,保证低延时使能的JL_LOW_LATENCY_EN宏打开,失真度恢复正常的,但是延时会从7.8ms 增加至11msX`s 左右,并且占用的flash 空间会更大,需要关闭打印后才能烧进2Mbit 的芯片。
AC706x系列 SDK 做领夹麦应用开发 AC706x系列 SDK 做领夹麦应用开发只能使用可视化版本的sdk,并且使用CONFIG_BOARD_AC706N_2T1_ADAPTER 板级
如果需要做两个2T1实现4T1 的功能
AC706x系列 SDK 无线升级测试盒配置 ①SDK版本在可视化sdk 2.0.0 之前的 , 还有 非可视化的sdk AC706N_wireless_mic_release_V1.1.2、AC706N_wireless_mic_release_V1.1.1等所有非可视化的sdk
若是选用1TN 板级就 选择 WIRELESS_MIC_BROADCAST_TX_1T1_OOB_0
具体是TX 还是RX ,需要对应是TX还是RX的程序选择
OOB 的选择要对应软件中config_rf_oob 变量中的 具体配置。
若是选用2T1_SIMPLEX 板级就选择WIRELESS_MIC_CONNECTED_TX_2T1_OOB_0
具体是TX 还是RX ,需要对应是TX还是RX的程序选择
OOB 的选择要对应软件中config_rf_oob 变量中的 具体配置。
②SDK版本在可视化sdk 2.0.0 之后的,wireless_mic_tx_2.0.0,wireless_mic_rx_2.0.0, 都是从可视化工具JL_Studio 中下载的
选用1T1_SIMPLEX\2T1_SIMPLEX\2T1_ADAPTER 板级都选择WIRELESS_MIC_BST_TX_2T1_OOB_0
具体是TX 还是RX ,需要对应是TX还是RX的程序选择
OOB 的选择要对应软件中config_rf_oob 变量中的 具体配置。
③注意706的 三合一的TX sdk 只有 3In1_wireless_mic_tx_AC706N()_2.0.0(patch_04)才支持无线升级,其他的sdk版本 均无法进行无线升级的。升级设置与上面②雷同
另外aw32N 的三合一的TX sdk ,只有 3In1_wireless_mic_tx_aw32N()_1.0.0(patch_07) 才支持无线升级,其他的sdk版本 均无法进行无线升级的。升级设置与上面②雷同
共性问题
- AC706N 112 及之前所有的版本SDK,RX 端 长按软关机后无法唤醒问题 问题描述:RX端长按进入软关机后,无法唤醒问题,
问题原因:无法正确进入软关机模式
修改办法:如下截图,不播放关机提示音,直接执行关机操作。
- AC706N 112 及之前所有的版本SDK,跑96M时钟会导致死机的问题 解决办法:
AC706N_wireless_mic_release_PATCH_20240712 补丁 说明.otl - AC706N 112 及之前所有的版本SDK,部分芯片跑2.3G出现连接不上问题 解决办法:
AC706N_wireless_mic_release_PATCH_20240726 补丁 说明.otl - AC706N v1.0.1 rx开串口与mcu通信 编译出错 处理方法:

- AC706N v1.0.1 连接状态不同步问题处理 问题描述:TX与RX的连接完成事件出来是不同步的,概率性出现TX端连接上2-3s后,RX端的连接完成事件才会触发。
解决办法:更新补丁:
706_v1.0.1_添加同步事件补丁.zip - AC706N v1.0.0 & v1.0.1 开eq在线调试异常 处理方法:
①拷贝eq_cfg_hw.bin文件到tools目录下
【金山文档】 eq_cfg_hw.bin_706v100&101_开eq在线调试异常添加文件
eq_cfg_hw.bin_706v100&101_开eq在线调试异常添加文件.zip
②在download.bat 文件加入 ....\eq_cfg_hw.bin 如下图。
③打开音效选择,使能WIRELESS_MIC_EFFECT_ENABLE,若在TX调eq使能WIRELESS_MASTER_MIC_EFFECT_ENABLE,在RX调eq则使能WIRELESS_SLAVE_MIC_EFFECT_ENABLE。
④WIRELESS_MIC_CONFIG_EQ打开,WIRELESS_MIC_CONFIG_LLNS关闭
- AC706N v1.0.0 & v1.0.1 关系统总打印,如下图注释掉CONFIG_DEBUG_ENABLE编译报错
解决方法:修改如下
- AC706N v1.0.0 & v1.0.1 频响在高频时波动
v100&v101版本处理方法:
media_706v100&101_修复扫频曲线抖动问题.rar
v111版本处理方法:
media_706v111_修复扫频曲线抖动问题.rar - AC706N v1.0.0 & v1.0.1 eq段数配置为10,但是实际只有前五段有效果 解决方法:下图红框位置宏定义从5修改为10

- AC706N v1.0.0 & v1.0.1 & v1.0.2 rx端在于tx连接时概率性异常死机 原因:特定的蓝牙链路开关顺序导致底层buffer池存在碎片,导致申请一个大buffer时断言了。v110以下版本的sdk都有类似风险,需要同步修改。
解决方案:
【金山文档】 AC706N_wireless_mic_release_V1.0.0、1.0.1、1.0.2 补丁 说明
AC706N_wireless_mic_release_V1.0.0、1.0.1、1.0.2 补丁 说明.otl
V1.1.0没有对应补丁,直接升级到V1.1.1 - AC706N TX端配置成IIS输入后,RX端声音出来有明显的杂音 解决方法:软件修改如下

- AC706N 下载到2M芯片中去的时候,上电无任何反应问题解决

- AC706N 102 \ 110 版本SDK 使用测试盒无线升级和有线串口升级失败问题处理 测试盒固件更新为1.3.0.f版本测试版本:(后续正式版远程升级发布会删除该测试版固件)
testbox_V130f_修复AC706测试盒升级问题.zip - AC706N 110 版本SDK RX端使用串口通信在关闭打印后功能异常问题处理 解决办法为:这个参数指定优先选用串口1就行了

- AC706N 110 版本SDK 无线升级成功后标志位获取不对问题 问题:update 标志位的值升级成功后,仍旧为0,导致按键开机的机器升级后还是跑开机流程
修改办法:替换下面cpu.a库文件:
该cpu.a库 已经包含 D版芯片补丁所含内容:
伟新_AC706N_wireless_mic_release_PATCH_兼容D版芯片补丁+升级成功后标志位获取不对.rar - AC706N 使能pa后控制引脚没有输出 解决方法:库里面漏配置了,软件需要在外面把pa控制引脚io设置成输出状态,修改如下:

- AC706N po声问题处理 做两套一发一收应用,先连接第一套设备,第二套设备时有较大的po声问题处理
问题原因:打开dac时带有一声po声,但是默认流程中是连接时才打开dac工作,而连接上第一套设备后,音箱部分整一个音频传输的通路都是打开的状态,所以第二套设备连接是dac打开瞬间的po声就很大很明显
问题解决:RX端上电就打开dac工作,让这一声po声提前释放
sound_pcm_ctl_ioctl(dac, SNDCTL_IOCTL_POWER_ON, 0);
RX开关dac 的时候,要是接入到大音箱中,经过放大后还是会有po 声,可以对RX数据增加淡入淡出处理:706 RX 端增加淡入淡出处理办法.otl
如果纠结连接和断开时候会出现一个po 声的修改办法:取消断开连接时候的RX的关闭dac 电源动作
18. AC706N 使用使用bt_osc_offset_set 接口在软件中修改频偏不起作用 问题点:AC706N 使用bt_osc_offset_set 接口在软件中修改频偏不起作用
问题处理办法:(目前仅有AC706N_wireless_mic_release_V1.1.1 修改补丁),详情要看压缩包中的 使用说明(必看).txt
补丁:AC706N_v1.1.1_修复使用bt_osc_offset_set 修改频偏不起作用问题.rar
- AC706N PC1 脚 短按接地会复位问题处理 原因:706 默认使能了短按复位功能,并且IO口只能是PC1脚 ,无法修改短按IO口
修改办法:关闭短按复位功能,在setup.c里面调用 p33_and_1byte(P3_PR_PWR, ~BIT(3)); - AC706N 111版本sdk 长按复位IO 口没有设置成唤醒口时会不一直复位问题 问题点描述:长按复位的IO口与唤醒口不一致时,会一直触发长按复位功能。
解决办法(两种办法,可换cpu.a库处理,可不更换cpu.a库处理),:
第一种办法:同步修改唤醒口与长按复位IO口保持一致即可,或者多增加一组新的唤醒源用长按复位IO口做唤醒口
第二种办法:更换库处理:
cpu_RX——AC706N_V1.1.1_修复长按复位与唤醒口绑定问题
cpu_TX——AC706N_V1.1.1_修复长按复位与唤醒口绑定问题 - AC706N 111版本sdk mic模式进idle后再重新切模式到mic模式出来会重启死机 问题描述:切换模式后,在切回mic 模式会死机复位
问题解决:更新替换下面两个蓝牙库文件。
btctrler_AC706N_V1.1.1_TX_切换模式死机问题.rar - AC706N 111版本sdk 关闭充电后,VPWR 口外接高电平会一直复位问题处理 复位提示:复位源有PPINR1_RST,
问题原因是:充电脚 长按复位
解决办法如下:
#if !TCFG_CHARGE_ENABLE
gpio_longpress_pin1_reset_config(IO_PORTP_00, 0, 0);
#endif
23. AC706N 112版本sdk 获取RSSI 值 接口,获取到的数据都为0问题 问题描述:调用接口获取rssi 值,返回值一直为0
问题处理:返回值赋值出错,按照下图修改
24. AC706N 112版本sdk 2T1应用 RX端 更改为LIVE_AUDIO_CODING_JLA_LL 编解码格式后会一直复位 问题描述:RX端 更改为LIVE_AUDIO_CODING_JLA_LL 编解码格式
复位:有明确的断言信息
问题解决:减少RTN
25. AC706N 112版本sdk TX端 自定义使用uart1作为串口通信功能,在关闭打印总开关后,uart1工作不正常 解决办法:对比修改或替换下面uart_dev.c
uart_dev_706_112修复关闭打印总开关uart1不正常问题
26. AC706N 各系列SDK, 修改设置mic_bias 档位不起作用解决办法 在mic_open 之后 ,配置寄存器的值
#include "typedef.h"
extern struct audio_adc_hdl adc_hdl;
SFR(JL_ADDA->ADA_CON2, 6, 3, adc_hdl->pa->mic_ldo_isel);
27. AC706N 各系列SDK, 没有连接时默认上电会打开DAC 从而引入有规律杂音问题处理 
if (!cis_connected_nums) {
g_printf("%s, dac stop", __FUNCTION__);
app_audio_output_stop();
}

- AC706N 112版本sdk 移频到2.3g 后部分IC rx端无法连接上tx端和蓝牙测试盒 解决办法:打上换库补丁
btctrler_AC706N_wireless_mic_release_V1.1.2-修复2.3G问题.rar - AC706N 112版本sdk 两个话筒打开,RX会有概率连接第二个话筒的时候出现死机,必须添加以下修改 异常打印如下

由于客户将开dac的位置放后了,而音频流有提前访问dac寄存器获取一下数据,导致数据出错,引起流程上的出错。具体修改如下:
30. AC706N 112版本sdk 在RX打开 立体声输出,并且要连接上两个 TX 后播放提示音 会出现死机问题 死机异常信息;
解决办法:
非可视化br29 修复src 通道分配异常问题.7z
31. AC706N 111版本sdk 播提示音时连接第二个麦,第二个麦会出现无声问题 解决方法:
采用叠加方式播放提示音,目前的解码逻辑不支持打断播放。

输出采样率固定为48000Hz。

添加截图代码,关闭mixer节点直通输出使能。

修改系统音量类型为独立通道软件数字音量。

增加下面截图代码。

若出现src通道分配异常的问题,可参考问题27修改换库。
AC706N 111版本sdk 2T1 应用中TX端走关机流程概率触发死机问题 修改办法:没有生产的换用112版本的SDK ,已经生产的 可以打下面的补丁。
706111_TX_cig_close死机问题修改补丁.rarAC706N 112版本sdk 2T1 应用中连接上两个TX概率复位或无声问题处理 TX改动:替换btctrler.a:
RX改动:替换btctrler.a和btstask.a,修改RX文件夹下截图所示的位置:
文件夹中已经包含有TX和RX的库文件和截图。
注意:按照复现其中 1 个 麦克风处于开机状态 (代号为A);另1个麦克风关机的状态下(代号为B ),双手同时去按麦克风电源按键,概率出现RX不再连接的异常,需要重启RX才能恢复正常问题更换此补丁修改同样适用。
AC706N_wireless_mic_release_V1.1.2版本sdk 2T1 应用中连接上两个TX概率复位或无声问题处理.rar
rx打补丁时注意使用如下库代替
706-无线麦112-连接tx之后rx端的某些io有异常波形AC706N_wireless_mic_tx 2.0.0(patch_01),开启led7_UI 显示编译报错问题
修改办法:需要增加timer定时器,并且将led7_driver.c放入RAM中,需修改以下文件,对比修改。IIC接口可以选配,
C706N_wireless_mic_tx 2.0.0(patch_01),开启led7_UI 显示_修改.rar
开启TCFG_LED7_RUN_RAM 宏使能后 , 无线升级功能无法正常行使解决办法:
AC706N_wireless_mic_tx 2.0.0(patch_01),RX端做IIS输出,连接上两个TX后会有卡顿现象 问题复现:RX端做IIS输出,连接上两个TX后会有卡顿现象,同时有异常打印“uuuuuuu"
解决办法:增加如下截图修改:
#if TCFG_AUDIO_OUTPUT_IIS
#undef TCFG_LIVE_STREAM_PALYER_DELAY
#if (WIERLESS_TRANS_CODING_TYPE == LIVE_AUDIO_CODING_JLA_V2)
#define TCFG_LIVE_STREAM_PALYER_DELAY 2200
#else
#define TCFG_LIVE_STREAM_PALYER_DELAY 1500
#endif
#endif
- AC706N_wireless_mic_tx 2.3.0,连接两个TX,将其中一个TX按键关机再按键开机,概率触发无声问题。 原因:开机的时候触发单击事件,导致误触发了KEY_MUSIC_PP 而无声的
解决办法:完善开机flag 控制流程

问题处理
AC706x系列 默认SDK配置成差分mic输入方式,无声问题。 注意mic通道的配置
mic通道的配置方式如下文档介绍:自行对应硬件设计配置
AC706N_wireless_mic_release_V1.1.2_AC706N无线话筒应用详细设计说明书.pdf
AC706x系列 默认SDK配置注册timer定时器会复位并且不起定时中断问题。 706SDK中,不能使用clk_get 接口获取时钟,会引起复位,修改办法为,直接写入立即数

AC706 TX端在线调EQ功能,宏定义配置注意点



配置完上面的宏定义后,
需要更换eq_cfg_hw.bin
①拷贝eq_cfg_hw.bin文件到tools目录下
【金山文档】 eq_cfg_hw.bin_706v100&101_开eq在线调试异常添加文件
eq_cfg_hw.bin_706v100&101_开eq在线调试异常添加文件.zip
②在download.bat 文件加入 ....\eq_cfg_hw.bin 如下图。
AC706N_wireless_mic_release_V1.1.1 选择1TN板级修改为1TN自动配对应用的办法 1、TX和RX同时修改以下两处位置为0:


为处理RX断连后不会再一次连接TX的问题,需要在RX断开连接后,增加打开广播的操作

AC706N_wireless_mic_release_V1.1.1 配置提示音的办法 问题点:默认sdk 中 tone_play.c中的播放提示音的接口全部都直接return掉了;并且无法打开提示音播放
解决办法:将tone_play.c内容替换成110 sdk版本的 tone_player_706V110版本_修复v111版本sdk无法播放问题.c
打开对应解码,播放wtg 格式提示音打开DEC_G729、播放mp3 格式提示音打开DEC_MP3

需要播放MP3 格式提示音还需要扩大解码线程栈使用空间,不然会死机


默认没有增加提示音资源文件,需要自行在批处理增加加载tone.cfg
AC706N_wireless_mic_release_V1.1.2 1TN应用按键切换配对名的案例参考 做法实现的原理:TX 和 RX 都会自动退出配对模式并返回,退出配对模式事件
需要先修改配对名,然后关闭广播,退出配对,在重新进入一个新的配对。
AC706N_wireless_mic_release_V1.1.2 版本SDK中2T1应用优化距离的修改办法



AC706N_wireless_mic_release_V1.1.2 版本SDK中1T1应用优化距离的修改办法 1、可以将低延时编码LIVE_AUDIO_CODING_JLA_LL修改为LIVE_AUDIO_CODING_JLA ,结果是延时会从7.8ms 增加至11ms 左右,并且占用的flash 空间会更大,需要关闭打印后才能烧进2Mbit 的芯片。

AC706N_3ln1_wireless_mic_tx_2.0.0(patch_04)SDK 软关机无法配置VDDIO掉电 修改方法:配置soff_mode为0。
PS:AC706N_wireless_mic_release_V1.1.2 版本sdk 同样是用这个方式,需要注意VDDIO掉电后若是按键开关机的做法需要特定的IO才能唤醒
在AC706N硬件设计指南V1.1.pdf 文件中有描述到。
异常案例:AC706N 版本SDK中错误使用CONNECTED_IDTF_SYNC_FUNC_ID ID 作为自定义命令数据通讯ID导致TX概率无声的问题,并且有异常打印fffffffffff 问题原因:
CONNECTED_IDTF_SYNC_FUNC_ID 通讯ID 是默认sdk 用来记录远端的设备标识通讯使用的,所以默认执行的解析回调中会有记录远端设备标识的动作,所以不能被自定义数据给影响到这个记录远端设备标识
解决办法:可以自己创造一个专门从事用户自定义收发数据的ID去进行数据交互,避免与默认sdk 中的解析流程出现冲突
非不得已使用CONNECTED_IDTF_SYNC_FUNC_ID ID 时候,请对数据做判断解析,并且务必保证不能影响

异常案例:AC706N 可视化wireless_mic_AC706N_2.0.0(patch01)版本SDK中错误使用'I'作为自定义命令数据UUID导致TX发送自定义数据后,RX无法回传给TX自定义数据的问题。 原因:用默认的'I'的ID 本身的功能就是存的远端同步过来的标识,但是由于我们发了自定义数据之后,就将远端的标识给覆盖掉了,所以对方发自定义数据过来的时候,就会发不了。
解决办法:
可以自己创造一个专门从事用户自定义收发数据的UUID去进行数据交互,不再使用'I'
举例:
static void custom_cmd_identification_record_handler(u16 aux_hdl, u8 arg_num, int *argv)
{
printf(" identification_record_handler 164 %d \n", aux_hdl);
u8 i, j;
int trans_role = argv[0];
u8 *data = (u8 *)argv[1];
int len = argv[2];
put_buf(data, len);
//由于转发流程中申请了内存,因此执行完毕后必须释放
if (data) {
free(data);
}
}
CUSTOM_DATA_TRANS_STUB_REGISTER(custom_cmd_identification_record) = {
.uuid = 'U',
.task_name = "app_core",
.func = custom_cmd_identification_record_handler,
};
RX端
TX端的话:注册是一样的
custom_data_send_data_to_sibling('U', &cmd_t, sizeof(u8), WIRELESS_RX_DEV1);
调用的话,就换成WIRELESS_RX_DEV1 作为custom_data_send_data_to_sibling 最后的参数即可
12. AC706N_wireless_mic_release_V1.1.2 概率超距无法回连 修改方法:
补丁:706_112_无线麦超距概率不回连修复补丁.rar
TX改动: 只需要替换btctrler.a。
RX改动:替换btctrler.a和btstask.a,同时在代码里增加如下修改。
#if 1
//连接2路le播放时,关闭mixer直通输出,避免另一路加入时偶现同步问题
audio_mixer_set_direct_out(&mixer, 0);
#endif

13.AC706N_wireless_mic_ac706n_2.0.0_RX修改为连接一个TX后需要再次按键或者其他操作才能连接第二个TX的功能需求

void user_wireless_dev_pair_code_pri() {
y_printf("user_wireless_dev_pair_code_pri");
u32 pair_code = 0;
wireless_dev_get_pair_code("big_rx", (u8 *)&pair_code, 1);
wireless_dev_set_pair_code("big_rx", (u8 *)&pair_code);
}
//连接一个无线麦后,需要先重置RX的配对码


void user_timer_broadcast_close_2tx()
{
y_printf("user_timer_broadcast_close_2tx");
app_var.user_rx_conn_2tx_timer = 0;
bigrx_sync_transfer_scan_enable(0);
}
void user_reset_wireless_dev_pair_code() {
y_printf("user_reset_wireless_dev_pair_code");
u32 pair_code = 0;
wireless_dev_set_pair_code("big_rx", (u8 *)&pair_code);
bigrx_sync_transfer_scan_enable(1);
if (app_var.user_rx_conn_2tx_timer) {
sys_timeout_del(app_var.user_rx_conn_2tx_timer);
app_var.user_rx_conn_2tx_timer = 0;
}
app_var.user_rx_conn_2tx_timer = sys_timeout_add(NULL, user_timer_broadcast_close_2tx, 1000*30);
}
资料下载
案例分享:
- AC706N_wireless_mic_release_V1.1.1_1t1_tx_pb1按键发自定义数据到rx控制变音_20240115 AC706N_wireless_mic_release_V1.1.1_1t1_tx_pb1按键发自定义数据到rx控制变音_20240115.rar
PS:由于过滤机制的原因,会导致相邻两次或多次发送相同命令时,RX端过滤掉命令,这里提供一种办法可以修改过滤逻辑,该逻辑需要保证不用全0作为有效命令
TX端:拷贝数据后对命令清零,则保证除了我们按键触发的一次命令不为0外,其余所有跟随数据包传送过去的命令均为0
RX端修改过滤条件,判断命令均不为0,则判定为有效命令,再去推处理事件
- 706v101&v111添加近距离配对功能补丁 706v101&v111添加近距离配对功能补丁.zip
PS:1.1.2 sdk 已经默认有加好这部分内容:修改以下变量值即可:(样机信号强度>config_product_con_pair_rssi 即可连接:范围(-127~0))
const char config_product_con_pair_rssi = 0; //广播配对根据信号强度控制配对范围,赋值范围<0,越接近0范围越小
- AC706N_wireless_mic_release_V1.1.1_2t1_tx端pb1按键手动开关混响_20240117 AC706N_wireless_mic_release_V1.1.1_2t1_tx端pb1按键手动开关混响_20240117.rar
- AC706N_wireless_mic_release_V1.1.1_tx端spi 推灯demo(仅仅是有推出spi 数据,具体spi数据跟RGB灯的模式颜色切换,需按照原有方式自行增加) AC706N_wireless_mic_tx_release_V1.1.1_spi_可行.rar
- AC706N_wireless_mic_release_V1.1.2
- AC706N_wireless_mic_release_V1.1.2 1T1 应用实现绑定配对功能 参考使用下列链接demo实现:
AC706N_wireless_mic_release_V1.1.2_1T1模式_绑定配对整理.rar
注:该种方式是存在RX与TX1连接后,断开后又与TX2连接,此时如果想要 连接TX1,那么TX1就需要先清除配对信息后才能与RX连接。
为解决上述情况提供解决办法:使能RX 在于TX2连接后,能与之前连接的TX1直接相连接。
AC706N_wireless_mic_release_V1.1.2_1T1模式_绑定配对整理_升级修复无法连接上一个TX的问题.rar - AC706N_wireless_mic_release_V1.1.2 中的2T1应用 RX端不绑定配对,TX端实现绑定配对的修改方法 AC706N_wireless_mic_release_V1.1.2 中的2T1应用 RX端不绑定配对,TX端实现绑定配对的修改方法.otl
- AC706N_wireless_mic_release_V1.1.2 中的2T1应用 增加 高低音EQ音效处理的办法 TX
AC706N_wireless_mic_release_V1.1.2(feature_1.1.2_高低音调节).zip
2.0.0 SDK(bst_00_03)
706_无线麦_SDK_增加高低音节点demo.rar - 706n_le_audio_100开发的3H1音箱,配合连接jl706n3In1_wireless_mic_tx_1.0.0无线麦TX,新增一个连接TX的3H1RX程序,并在RX程序上添加一个AUX输入 7063M2-3H1-RX程序适配连接le_audio-3H1-1.0.0-TX(1).7z
- AC706N_wireless_mic_ac706n_2.0.0_patch02 RX只允许连接上两个TX后,就不能被任意一个新的TX连接上,除非通过按键手动清掉配对信息后才允许与新的空白TX连接 外部gitlab链接:
Files · feature_bst_bind_RX_only_connected_two_tx · JL-Studio / WirelessMic / 706N / AC706N_wireless_mic_rx_2.0.0 · GitLab