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

歌词显示器开发注意项

📎 原始文档:https://www.kdocs.cn/l/cs2CpQtyeib6 歌词显示器开发注意项

简介:

该文章用于说明歌词显示器开发过程的一些注意项,多用图文的形式说明。
目前市面上的歌词显示器分为两种型态:

  1. 一体式K歌音箱歌词显示器:这种产品支持蓝牙音频播放U盘等多功能,同时支持歌词的显示。 image
  2. 一拖二歌词提词显示器:这种产品仅支持蓝牙连接功能,支持一拖二的歌词显示。 image

一体式K歌音箱歌词显示器:

一般选用的方案是 AC695N+AD10X灯板。根据AD10X是否有内封flash,做了两份PDF文档说明,如下:
AC695N_使用AD10X灯板(带flash)说明V2.pdf
AC695N_使用AD10X灯板(不带flash)说明.pdf
AD10X芯片常用封装有AD101C8和AD101C0,其中AD101C8为带1M Byte 大小 flash的芯片,而AD101C0 则为不带flash的芯片。

注意事项:

AC695N+AD101C0(不带flash)

  1. AD101C0的运行逻辑大概如下:
    1. AC695N和AD101C0上电,AC101C0会运行在maskroom,AC695N正常运行
    2. 使用接口sh50_isp_up_code()通过SPI接口发送AD10x_code.bin的代码到AD101C0
    3. AD101C0将接收到的数据存放到RAM空间中,待数据接收完成后复位,运行RAM空间的代码
    4. AD101C0将收到通过AC695N已经解析好的点阵数据通过串口发送,进行歌词的显示 注意:AD10x_code.bin 文件在 路径AD10X_Resource_led_1.0.0\AD10x_code(bin)\AD10x_code(bin)
      image 默认只提供了三种bin文件
  2. SPI口使用的IO在 cpu\br23\sh50_isp.c中可以查看 image
  3. UART口(串口)使用的IO在 apps\common\update\uart_update_master.c 的MUTIL_CPU_UART_UPDATE_ENABLE宏定义包含中可以查看 image
  4. AD10X灯板显示分辨率配置在 apps\soundbox\ui\led_lyric\led_lyric.h,显示逻辑接口在 apps\soundbox\ui\led_lyric\led_lyric.c image
  5. 由于AD101C0无内置flash,需要将字库下载AC695N这边,download.bat需要在-res后加入font.bin gbk2utf8.tab AD10x_code.bin这三个文件 image

AC695N+AD101C8(带flash)

  1. 这种情况字库一般放置在AD101C8,所以AC695N这边不需要下载字库等资源。 image

  2. UART口(串口)使用的IO在 apps\common\update\uart_update_master.c 的MUTIL_CPU_UART_UPDATE_ENABLE宏定义包含中可以查看 image

  3. AD10X灯板显示分辨率配置在 apps\soundbox\ui\led_lyric\led_lyric.h,显示逻辑接口在 apps\soundbox\ui\led_lyric\led_lyric.c image

  4. AD101C8使用串口工具的SPI接口烧写(成功概率较低),使用方法请浏览以下文章。 image

  5. 如果AD101C8已经成功烧录过一次,有代码在芯片内,则可以进行串口升级,操作方法同样参考第4点说明。

  6. 由于强制升级工具spi的下载方式不稳定,针对AD10x内封flash的封装,升级方案如下: 第一次 裸片由 1 托 2 来完成升级 第二次之后,就可以选择强制升级工具的串口升级方式来下载调试。为方便AD10X开发下载调试AD10X端提供下载工具和上位机,ad100_uart_update.exe,文件在AD10X代码文件夹内 ad100_uart_update_tools.rar
    image 使用方法如下:
    image

  7. 为方便AD10X调试显示内容及初步验证程序运行,提供串口调试工具上位机,用于串口推显示数据给到灯板具体显示所需内容。 AD10x灯板串口工具升级_ad100_led_test_v2_修正中文显示.rar
    使用办法及注意事项:
    1、config.ini 中可自行修改自己电脑上具体使用对应的串口 COM 口,接线的话,电脑串口工具的TX与灯板的RX 相接,主要是 发命令给到灯板做通信
    image 2、同时可以使用该工具做串口升级的功能(注意升级的程序与自己原本下载的程序key 是否一致,默认压缩包解压出来的bin 文件不带key ,最好都能替换成自己程序下的bin 文件而不是用默认的)
    分别输入 upfw 和 upft 指令,可以对应升级 工具同级目录下的ad100_update_code.bin 和 ad100_update_all.bin ,区别在于 upfw就是升级code区域,upft就是升级code+字库
    而 ad100_update_code.bin 就是仅仅为code 区域的代码,
    ad100_update_all.bin 为 code+字库 的代码。
    3、与灯板通信成功后,会有请输入要显示的文字的输入串口,输入你想要显示的内容即可。
    若是遇到异常情况如下:一直处于read timeout 和error 的报错,那么就是与灯板的串口通信不成功,跟串口的TX和RX 不接上灯板的表现一模一样。
    image PS:(特殊情况,用于界面有显示让输入显示文字的界面,但是实际灯板没有显示出来所需要的文字时,完全不亮的情况debug) 若是串口的TX与灯板的RX不去通信(悬空时不连接),而使用这个工具进入了正常页面让输入显示的文字时,这个时候需要删掉原有的"AD10x灯板串口工具升级_ad100_led_test_v2_修正中文显示"压缩包里面的内容,重新解压出来新的文件就会正常。即正常有请输入要显示的文字页面,一定是要跟灯板正常通信之后才有的界面,不然就是异常了需要重新解压压缩包里面的文件出来。

一拖二歌词提词显示器:

一般选用的方案是 AC696N+AD101C0,使用最省成本的方案。
AC696N_一拖二蓝牙提词器说明.pdf

注意事项:

AC696N+AD101C0(不带flash),一拖二蓝牙提词器

  1. 可以参照AC695N+AD101C0(不带flash)的说明

FAQ

1、695NV3.1.2,#define UI_LED_LRC_DECODE_FONT 0 配置无字库的宏定义后会造成死机问题

需要修改

void lyrics_update_font(u8 *str, u16 len, LRC_SHOW_INFO *show_info)
{
#if UI_LED_LRC_DECODE_FONT
    if (f_info.pixel.file.fd == NULL) {
        printf("err, font file not open\n");
        return;
    }
#endif
    u16 str_curr_crc;
    static u16 str_last_crc = 0;
    str_curr_crc = CRC16(str, len);
    if (str_last_crc == str_curr_crc && lrc_status.lrc_show_status_update_flag == 0 && lrc_check_online_flag) {
        return;
    }
    if (len == 0) {
        lrc_status.lrc_show_status_update_flag = 0;
        return;
    }
#if UI_LED_LRC_DECODE_FONT
    os_mutex_pend(&show_mutex, 0);
#endif
    /* 记录当前字符串内容和长度,在更新显示参数实时刷新时需要用到 */
    if (lrc_status.lrc_record_str && lrc_status.lrc_show_status_update_flag == 0) {
        free(lrc_status.lrc_record_str);
        lrc_status.lrc_record_str = NULL;
    }
    if (lrc_status.lrc_record_str == NULL) {
        lrc_status.lrc_record_str = zalloc(len);
    }
    lrc_status.lrc_record_len = len;
    memcpy(lrc_status.lrc_record_str, str, len);
    /* 记录当前字符串内容和长度,在更新显示参数实时刷新时需要用到 */
    str_last_crc = str_curr_crc;
#if (UI_LED_LRC_DECODE_FONT == 0)
    lrc_buf_push(str, len);
    lrc_status.lrc_show_status_update_flag = 0;
    // os_mutex_post(&show_mutex);
    return;
#endif
    u16 scroll_speed;
    u8 rotate, flip;
    os_mutex_pend(&mutex, 0);
    if (show_info == NULL) {
        rotate = lrc_status.lrc_rotate;
        flip = lrc_status.lrc_flip;
        scroll_speed = lrc_status.lrc_scroll_speed;
    } else {
        rotate = show_info->rotate;
        flip = show_info->flip;
        scroll_speed = show_info->scroll_speed;
    }
    if (font_lyrics_scroll_timer_id) {
        sys_timer_del(font_lyrics_scroll_timer_id);
        font_lyrics_scroll_timer_id = 0;
    }
    if (lrc_update_info.str) {
        free(lrc_update_info.str);
        lrc_update_info.str = NULL;
    }
    lrc_update_info.str = malloc(len);
    memcpy(lrc_update_info.str, str, len);
    lrc_update_info.len = len;
    lrc_update_info.lyrics_info.scroll_offset = 0;
    lrc_update_info.lyrics_info.rotate = rotate;
    lrc_update_info.lyrics_info.flip = flip;
    lrc_update_info.sum_width = Font_GetStringWidth(lrc_update_info.str, len, &(lrc_update_info.lyrics_info));
    lrc_update_info.lyrics_info.center_offset = (lrc_update_info.sum_width < LED_WIDTH) ? ((LED_WIDTH - lrc_update_info.sum_width) / 2) : 0;

    os_mutex_post(&show_mutex);
    if (lrc_update_info.sum_width <= LED_WIDTH) {
        lyrics_scroll_font((void *)&lrc_update_info);
    } else {
        if (font_lyrics_scroll_timer_id == 0) {
            font_lyrics_scroll_timer_id = sys_timer_add((void *)&lrc_update_info, lyrics_scroll_font, scroll_speed);
        }
    }
    lrc_status.lrc_show_status_update_flag = 0;
    os_mutex_post(&mutex);
}

本文档包含以下子页面

  • AC695N_使用AD10X灯板(带flash)说明V2
  • AC695N_使用AD10X灯板(不带flash)说明
  • AC696N_一拖二蓝牙提词器说明
Prev
AD161扩展灯板说明文档
Next
使用硬件数字增益控制通话下行音量(可视化)