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歌音响-调音标准流程
  • 无线话筒产测流程

AW32N无线麦问题整理

📎 原始文档:https://www.kdocs.cn/l/cbYwwPQ5btYa AW32N无线麦问题整理
前言:本文档整理将以各个SDK遇到的共性问题做整理汇总,可直接根据所使用的sdk版本及功能快速索引相关问题点

必看(aw328a强制升级工具升级介绍)

AW328A烧录说明.otl

开发注意点

  1. AW328A mic 模拟增益挡位说明 AW32 ADC模拟增益(5档):0档:0dB,1档:3dB,后续以6dB递增
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 = 4;
    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;
  1. AW328A 省电容偏置工作电压修改
/************************************
             dac 供电模式
************************************/
// TCFG_DAC_POWER_LEVEL
#define    AUDIO_VCM_CAP_LEVEL1               (0)    // VCM-cap, VCM = 1.2v
#define    AUDIO_VCM_CAP_LEVEL2               (1)  // VCM-cap, VCM = 1.3v
#define    AUDIO_VCM_CAP_LEVEL3               (2)    // VCM-cap, VCM = 1.4v
#define    AUDIO_VCM_CAP_LEVEL4               (3)    // VCM-cap, VCM = 1.5v

//修改对应的宏定义 
#define TCFG_DAC_POWER_LEVEL                AUDIO_VCM_CAP_LEVEL4
  1. AW328A 在线调音需要使用串口的方式调试(暂时不支持USB调试)
  2. AW32N 使用无线升级的办法: 文档:SDK\doc\软件资料\AW32N无线话筒应用详细设计说明书.pdf 中有描述到配置方式
    image
  3. AW32N 因flash空间限制仅支持sine、wav提示音 Tx:不支持所有提示音的播放
    Rx:仅支持sine、wav按键提示音
    Rx开启按键提示音功能:
  • demo: AW32N_mic_rx_1.0.0-key-sin-wav-tone.7z
  • wav提示音
    • 开编解码
#define TCFG_DEC_WTGV2_ENABLE                1//DISABLE
#define TCFG_DEC_WAV_ENABLE                1//DISABLE
#define TCFG_DEC_PCM_ENABLE                    1//DISABLE
- lib_media_config.c中添加
const int FILE_DEC_SUPPORT_HIGH_SAMPLE_RATE_FLAG = 0;                //是否支持64k,88.2k,96k采样率
const int  const_audio_codec_wav_dec_support_aiff = 0;               //是否打开aiff解码开关
const u8 config_wav_id3_enable = 0;                                           //文件中的歌手信息等解析开关
const int  const_audio_codec_wav_dec_bitDepth_set_en = 0;               //32bit/24bit 是否支持高位宽配置输出
const int  const_audio_codec_wav_checkdst_enable = 0;                    //是否做dts检查 
const int  const_audio_codec_wav_dec_support_AB_Repeat_en = 0;       //是否支持AB点跟循环
const int  const_audio_codec_wav_dec_supoort_POS_play = 0;             //是否支持指定位置播放
/* const int  WAV_DECODER_PCM_POINTS = 480;                //最多一次输出点数配置 */
/* const int  WAV_MAX_BITRATEV = (48 * 2 * 32);               //最大码率限制,超过这个码率,返回不支持;可以根据卡的读数速度来限制 */
const int  const_audio_codec_wav_support_unstandard_sr_enable = 0;                    //是否支持非标准采样率
const int  const_audio_codec_wav_support_unstanderd_sr_min = 8000;                  //非标准采样率最低限制
- 添加库文件
    - 修改makefile
    cpu/bd45/liba/wav_dec_lib.a \
    cpu/bd45/liba/wtgv2_dec_lib.a \

image - 库文件 AW32-WAV-解码库-伟新.7z

  • sin提示音
    • 开启与定义相关宏
#define TCFG_KEY_TONE_EN                    1//DISABLE         // 按键提示音。
#define CONFIG_CPU_BR28 1//AW32并非是BR28 这里只是定义该宏开启sin_tone_make接口中的红遍有选择项
- 修改sine提示音声音大小
    - sin_value右移的值与音量大小成反比关系
int sin_tone_make(void *_maker, void *data, int len)
{
    struct audio_sin_maker *maker = (struct audio_sin_maker *)_maker;
    s16 *pcm = (s16 *)data;
    int sin_value = 0;
    int win_sin_value = 0;
    int add_idx = 0, sub_vol = 0, win_add_idx = 0;
    int offset = 0;
    u8 id = maker->id;
    u8 sin_num = maker->sin_num;
    u8 repeat = maker->repeat;
    u8 channel = maker->channel;
    int sin_index;
    int win_sin_index;
    int volume;
    u32 reamin_points = len / 2 / channel;

    do {
        if (maker->next_param) {
            maker->volume = SINE_TOTAL_VOLUME;
            maker->sin_index = 0;
            maker->win_sin_index = 0;
            maker->next_param = 0;
        }

        u8 win = maker->sin[id].win;
        add_idx = ((u64)(1 << 25) * maker->sin[id].freq / DEFAULT_SINE_SAMPLE_RATE) >> 9;
        if (win) {
            win_add_idx = ((u64)(1 << 25) * maker->sin[id].decay / DEFAULT_SINE_SAMPLE_RATE) >> 9;
            /*sub_vol = 0;*/
        } else {
            sub_vol = maker->sin[id].decay;
        }

        sin_index = maker->sin_index;
        win_sin_index = maker->win_sin_index;
        volume = maker->volume;
        u32 points = 0;
        if (maker->fade_points) {
            points = maker->fade_points > reamin_points ? reamin_points : maker->fade_points;
            sub_vol = 0;
            maker->fade_points -= points;
        } else {
            points = maker->points > reamin_points ? reamin_points : maker->points;
            maker->points -= points;
        }
        reamin_points -= points;
        while (points--) {
            /*hw_sin_value(sin_index, &sin_value, 0);*/
            sin_value = __asm_sine((s64)sin_index, 2);
            if (win) {
                /*hw_sin_value(win_sin_index, &win_sin_value, 0);*/
                win_sin_value = __asm_sine((s64)win_sin_index, 2);
#if ((defined CONFIG_CPU_BR36) || (defined CONFIG_CPU_BR28))
                sin_value = ((s64)sin_value * (s64)win_sin_value) >> 44;
#else
                // sin_value = ((s64)sin_value * (s64)win_sin_value) >> 34;
                sin_value = ((s64)sin_value * (s64)win_sin_value) >> SIN_VOL;
#endif
                win_sin_index += win_add_idx;
                win_sin_index &= 0x1ffffff;
            } else {
#if ((defined CONFIG_CPU_BR36) || (defined CONFIG_CPU_BR28))
                sin_value = ((s64)volume * sin_value) >> 39;
#else
                // sin_value = ((s64)volume * sin_value) >> 34;
                sin_value = ((s64)volume * sin_value) >> SIN_VOL;
#endif
            }
            sin_index += add_idx;
            sin_index &= 0x1ffffff;

            volume -= sub_vol;
            if (volume < 0) {
                volume = 0;
            }

            *pcm++ = sin_value;
            if (channel == 2) {
                *pcm++ = sin_value;
            } else if (channel == 4) {
                *pcm++ = sin_value;
                *pcm++ = sin_value;
                *pcm++ = sin_value;
            }
        }

        maker->volume = volume;
        maker->sin_index = sin_index;
        maker->win_sin_index = win_sin_index;
        if (!maker->points) {
            if (++id >= sin_num) {
                if (!repeat) {
                    break;
                }
                id = 0;
            }
            maker->points = maker->sin[id].points;
            maker->id = id;
            maker->next_param = 1;
        }

        if (!reamin_points) {
            break;
        }
    } while (1);

    return len - (reamin_points * 2 * channel);
}
  • sdk默认按键提示音播放接口调用处 image
  1. AW32N 无线麦系列进入DUT 的方式 注意:只能进入BLE 的 dut 测试,无法测试 edr 的dut
    image

  2. AW32N 无线麦系列自定义数据的参考使用办法 可以自己创造一个专门从事用户自定义收发数据的UUID去进行数据交互,不再使用'I'
    下面以使用'U'举例:

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端
发送命令的接口:

        custom_data_send_data_to_sibling('U', &cmd_t, sizeof(u8), 0, WIRELESS_TX_DEV1);
        custom_data_send_data_to_sibling('U', &cmd_t, sizeof(u8), 0, WIRELESS_TX_DEV2);

image TX端的话:注册UUID 和解析回调与RX是一样的办法
TX发送命令给RX的接口调用:

custom_data_send_data_to_sibling('U', &cmd_t, sizeof(u8), WIRELESS_RX_DEV1);

调用的话,就换成WIRELESS_RX_DEV1 作为custom_data_send_data_to_sibling 最后的参数即可
注意点:若TX 需要发送大于或等于4个byte 的数据给到RX ,会出现报错的问题,需要换库处理
imageaw32n_wireless_mic_release_patch01.08_TX生成配对码功能不正常换库(TX无法发送完整7个byte配对码信息).rar
内部gitlab 链接:
RX: 文件 · feature_p01.08_自定义命令传输demo · 自由品牌 / 客户支持 / JLStudio / wireless_mic / wireless_mic_rx / AW32N / wireless_mic_AW32N_1.0.0_rx · GitLab
TX:文件 · feature_p01.08_自定义命令传输demo · 自由品牌 / 客户支持 / JLStudio / wireless_mic / wireless_mic_tx / AW32N / wireless_mic_AW32N_1.0.0_tx · GitLab

共性问题

  1. 3in1_wireless_mic_tx1.0.0_P03 AW328 默认板级配置 其他版本sdk不需要做此修改
    image
  2. 3in1_wireless_mic_tx1.0.0_P03 TEST板级默认ADKEY内部上拉电阻值设置错误
//#define R_UP    10000                //1M,内部上拉使用1M
#define R_UP    100                 //10K,内部上拉默认10K
  1. 3in1_wireless_mic_tx1.0.0_P03 修复打开长按复位编译失败问题
#define TCFG_CHIP_RESET_PIN                    IO_PORTA_03 // 长按复位
#define TCFG_CHIP_RESET_LEVEL                0 // 0-低电平复位;1-高电平复位
#define TCFG_CHIP_RESET_TIME                8 // 复位时间1 2 4 8 16 单位为秒

修改方法:替换库文件,重新编译
【金山文档 | WPS云文档】 cpu
https://kdocs.cn/l/cnPz0MvBDCdL
4. 3in1_wireless_mic_tx1.0.0_P03 test 板级下串口升级失败问题 问题描述:按照word 文档 《注意说明!!!!!!!!(必读) 》 提示修改 串口升级使能功能后,仍旧无法实现串口升级
原因:SDK 自带的测试盒固件版本不对,需要使用一下测试盒固件版本
aw328_测试盒beta固件.rar
或者直接升级到 P04版本
image 5. 3in1_wireless_mic_tx1.0.0_P03 软件配置与硬件匹配的情况下连接音箱mic声音不正常 现象:mic端喊很大的声音,音箱那边才有一点滋滋的声音
原因:拿到mic的trim数据不正常导致
容易出现该问题的情况:

  1. 开发过程中,同一个板子不擦除所有的方式下载不同的程序
  2. 产线生产,在第一次开机没有mic头
  3. 第一次开机之后换了mic头 修改方法:
  4. 替换media.a
  5. 修改trim的方式
TCFG_MC_BIAS_AUTO_ADJUST  MC_BIAS_ADJUST_ALWAYS//MC_BIAS_ADJUST_ONE

imageimage 6. wireless_mic_tx_rx 1.0.0(patch_01.05) 修改增加近距离配对功能补丁(信号强度大于设定值才允许配对上) aw32n_wireless_mic_release_patch01.05添加rssi限制连接范围补丁.7z
缺失的le_common_define.h放在报错的指定位置。
image 7. wireless_mic_tx_rx 1.0.0(patch_01.07) 使用CONFIG_BOARD_AW32N_2T1_SIMPLEX 板级配置,再aw328a 芯片运行打印一直乱码的问题 注意需要配置成单脚晶振。
image 8. wireless_mic_tx_rx 1.0.0(patch_01.08) 使用CONFIG_BOARD_AW32N_2T1_ADAPTER 板级配置,TX 端想按键控制监听的开关的使用办法 image 9. AW32N()_3In1_wireless_mic_tx_1.0.0(patch_07)使用接口设置频偏值不生效的问题处理 更换下列蓝牙库:
btctrler_AW32N_3In1_wlm_tx_1.0.0_patch_07_fre_offset_comp_api.zip
并按截图方式补频偏。
image

    extern u8 get_bt_osc_offset_flag();
    extern void bt_osc_offset_set(s32 offset);
    /// 若没有校准,配置默认频偏值,会被校准值覆盖
    if(0 == get_bt_osc_offset_flag()){
        bt_osc_offset_set(62);
    }

  1. AW32N()_3In1_wireless_mic_tx_1.0.0(patch_08)使用BST 传输绑定功能中TX生成配对码的方式RX无法获取配对码问题 原因:BD45做低延时,蓝牙用得比较极限,最新tx->rx的只能6个byte的,rx->tx 是16个byte。如果不是超低延时方案理论可以放宽一点。现在上下行最大需要传输多少byte数据。
    解决办法:不再使用TX生成配对码的当时,只能使用RX生成配对码的方式。

特殊:wireless_mic_AW32N_1.0.0(patch_01.08) 可以放宽限制,非三合一版本,而是纯无线麦版本
换库处理:
aw32n_wireless_mic_release_patch01.08_TX生成配对码功能不正常换库(TX无法发送完整7个byte配对码信息).rar
11. AW32N()_3In1_wireless_mic_tx_1.2.0 使用adapter 板级,有USB mic 的同时还需要有16K的IIS 输出 声音异常问题。 问题原因: USB mic 输出 只能是48K采样的输出,但是又需要有16K采样率的 IIS 输出,所以需要做变采样处理:
wireless_mic_rx_aw32N()_1.2.0__adapter和16KIIS输出杂音问题增加变采样处理.rar
内部gitlab:文件 · bugfix_sdk_1.2.0_adapter和16KIIS输出杂音问题增加变采样处理 · 自由品牌 / 客户支持 / JLStudio / wireless_mic / wireless_mic_rx / AW32N / wireless_mic_AW32N_1.0.0_rx · GitLab

问题处理

  1. PP键(mute、umute)功能 不能使用KEY_DIG_GROUP_LIVE_CAPTURE_PP来做按键mute、umute功能
    原因:没有使用正确的接口去做mute功能
    现象:mute住之后不能umute
    image 解决方法:
    使用正确的接口去做mute、umute功能
    image
  2. RX 配置成IIS 输出,若需要没有连接TX时候也需要有IIS 时钟信号产生,按以下截图修改 image

资料下载

案例分享:

  1. led spi推rgb灯
  • 修改一下接口
void led_spi_init(void)
{
    gpio_set_die(LED_SPI_IO, 1);
    gpio_set_direction(LED_SPI_IO, 0);
    gpio_set_pull_up(LED_SPI_IO, 0);
    gpio_set_pull_down(LED_SPI_IO, 0);
    gpio_write(LED_SPI_IO, 0);
    
    SFR(JL_IOMC->IOMC0, 16, 1, 1);

    gpio_set_fun_output_port(LED_SPI_IO, FO_SPI1_DA0, 1, 1, LOW_POWER_FREE);
    request_irq(IRQ_SPI1_IDX, 0, led_spi_isr, 0);
    os_sem_create(&led_spi_sem, 1);

    LED_SPI->BUF = 0;
    LED_SPI->CON = 0x4021;
    LED_SPI->CON1 = 0;
}

//如果刷新率大于等于20ms可以不修改一下接口
void led_spi_send_rgbbuf(u8 *rgb_buf, u16 led_num) //rgb_buf的大小 至少要等于 led_num * 24
{
    if (!led_num) {
        return;
    }
    // while (led_spi_sus) {
    //     os_time_dly(1);
    // }
    led_spi_busy = 1;
    led_spi_rest();
    LED_SPI->BAUD = LED_SPI_CLOCK_BASE / LED_SPI_DAT_BAUD - 1;
    LED_SPI->CON |= BIT(14);
    LED_SPI->ADR = (u32)rgb_buf;
    LED_SPI->CNT = led_num * 24;
    while (!(LED_SPI->CON & BIT(15)));
    LED_SPI->CON |= BIT(14);
    led_spi_busy = 0;
}
void led_spi_send_rgbbuf_isr(u8 *rgb_buf, u16 led_num) //rgb_buf的大小 至少要等于 led_num * 24
{
    if (!led_num) {
        return;
    }
    // while (led_spi_sus) {
    //     os_time_dly(1);
    // }
    led_spi_busy = 1;
    os_sem_pend(&led_spi_sem, 0);
    led_spi_rest();
    LED_SPI->BAUD = LED_SPI_CLOCK_BASE / LED_SPI_DAT_BAUD - 1;
    LED_SPI->CON |= BIT(14);
    LED_SPI->ADR = (u32)rgb_buf;
    LED_SPI->CNT = led_num * 24;
    LED_SPI->CON |= BIT(13);//打开中断
}

  • 使用方式
    • 初始化led_spi_init
    • 发送数据接口
      • 中断不等待led_spi_send_rgbbuf_isr
      • 阻塞等待led_spi_send_rgbbuf
      • 数据buff必须是4字节对齐
      • 每次发送数据时如果spi/lsb 时钟发生改变时需要重新设置下spi的波特率
  • 测试接口
    • led_spi_test

本文档包含以下子页面

  • AW328A烧录说明
Prev
无线麦系列版本支持指南
Next
lAD697X&JL701X 无线麦软件共性问题整理