KT25-1015_AC695x_SDK310/Doc/音频板开发需求对照与实现状态.md

12 KiB
Raw Blame History

音频板开发需求对照与实现状态

文档版本V1.0
生成日期2026-07-25
需求来源音频板开发需求 20260725.xls
调试基准20260717 样机功能(以 Excel「版本1」跟踪表为准


1. 项目概述

AC695x SDK 音频板定制固件,主要实现:

  • SD 卡 / U 盘读取并播放 MP3、WAV、FLAC、APE
  • 4 路光纤 + 3.5mm 立体声输出(经 CS8406
  • K1~K4 通道播放与切歌K5/K6 音量调节
  • U 盘 OTA 升级及提示音
  • 多路 LED系统灯、按键灯、灯条、音量灯

核心代码路径

模块 文件
主逻辑 apps/kaotings/kt.capps/kaotings/kt.h
按键入口 apps/soundbox/task_manager/music/music.c
音量默认/不记忆 cpu/br23/audio_config.hcpu/br23/audio_common/app_audio.c
U 盘升级检测 apps/soundbox/include/app_config.h
升级提示 apps/common/update/update.capps/common/dev_manager/dev_update.c

2. 硬件引脚定义(当前 kt.h

功能 引脚 宏定义
系统指示灯 SYS_LED PB03 SYS_LED_PIN
音频输出 CH1~CH4CS8406 TX EN PB10 / PB09 / PB08 / PB07 AUDIO_OUT_CHANNEL1~4
按键灯 KEY_LED CH1~CH4 PC02 / PC01 / PC00 / PA12 KEY_LED_OUT_CHANNEL1~4
灯条 LED_BAR CH1~CH4 PA09 / PA10 / PB02 / PB11 LED_BAR_OUT_CHANNEL1~4
音量+ 灯 KUP_LED PC03 KUP_LED_PIN
音量- 灯 KDOWN_LED PB00 KDOWN_LED_PIN
CS8406 复位 PA06 代码中 IO_PORTA_06

注意:按键灯与灯条为两路独立输出,代码分别使用 KEY_LED_* 与 LED_BAR_*。两组引脚归属已经过实机校正。


3. 需求跟踪总表

调试基准为 Excel「版本1」表20260718状态说明

  • 通过:已验证符合需求
  • 🛠️ 待修改:已实现但与需求不符,或功能缺失
  • ⚠️ 待验证:代码已有,尚未实测确认
需求 ID 模块 需求摘要 验证状态 实现/差异说明
AID-001 文件排序 00/01/02… 命名顺序播放;未命名文件也应能播放 ⚠️ 待验证 空闲按键优先 kt_play_file_idx(0)00.*;失败回退 music_player_play_first_file(),待实测非 00 文件及后续切歌顺序
AID-002 按键映射 K1K4 对应 CH1CH4K1↔K4、K2↔K3 需交换 通过 按键、音频通道和灯条映射已实测通过
AID-003 待机状态 上电待机,所有按键灯同步慢闪(约 1s 一次) 通过 4 路 KEY_LED 同步慢闪,LED_BAR 待机全灭
AID-004 按键播放 待机按 Kx 播 00,对应通道出声;当前 KEY_LED + KUP/KDOWN 常亮,其它 KEY_LED 灭 ⚠️ 待验证 通道播放、当前 KEY_LEDLED_BAR 状态正常;KUP_LED/KDOWN_LED 播放时常亮效果待复测
AID-005 播完恢复 单曲播完恢复待机,所有灯恢复 通过 播完关闭通道并恢复待机灯态,实测通过
AID-006 播放切通道 播放中按其它通道键,只切输出不换曲 通过 kt_switch_channel_only()kt_channel_outputs_on()
AID-007 同通道下一曲 播放中再按当前通道键播下一首00→01→02…循环 通过 kt_play_file_idx(idx+1),失败再 music_player_play_next()
AID-008 音量 2~30 格,默认 23±1不记忆 通过 默认值、上下限、±1 步进及不记忆逻辑已实测通过
AID-009 灯条 仅当前通道灯条亮,待机全灭 通过 LED_BAR 仅当前播放通道常亮,待机全灭,实测通过
AID-010 格式支持 MP3 / WAV / FLAC / APE 通过 SDK 播放器原生支持
AID-011 系统指示灯 慢闪待机、快闪报错、常亮播放 通过 KT_LED_IDLE/FAIL/PLAY/UPDATE 状态机
VOL+ 按一次 +1 格 通过 KEY_USER_KEY_5KEY_VOL_UP
VOL- 按一次 -1 格 通过 KEY_USER_KEY_6KEY_VOL_DOWN(最小 2

4. 功能逻辑说明20260717 调试版)

4.1 按键 K1~K4通道键

待机active_ch == 0
  └─ 按 Kx → 播 00.*sd1 优先udisk0 次之)
              → 失败则播盘内第一首
              → 成功:开 CHx 音频 + 灯条SYS_LED 常亮

播放中active_ch != 0 且 decoding
  ├─ 同通道再按 → idx+1 下一曲(失败则 player next
  └─ 异通道按   → 只切 AUDIO/灯条,不换曲

播完 / 拔卡 / 出错
  └─ kt_music_play_end_handler()
       → 关通道、active_ch=0、music_player_stop(0)
       → 音量恢复 23、SYS_LED 慢闪

4.2 按键 K5 / K6音量键

  • K5VOL+app_task_put_key_msg(KEY_VOL_UP)KUP_LED 常亮 3s 后慢闪
  • K6VOL-):音量 > 2 时 KEY_VOL_DOWNKDOWN_LED 常亮 3s 后慢闪

4.3 LED 行为对照(需求 vs 当前)

LED 类型 需求20260717 当前实现
SYS_LED 待机慢闪 / 播放常亮 / 报错快闪 已实现
KEY_LED按键灯 待机4 路同步慢闪;播放:当前路常亮,其它灭 已实现并通过
LED_BAR灯条 播放:当前通道常亮;待机:全灭 已实现并通过
KUP / KDOWN 播放时常亮 🛠️ 播放时仍慢闪,待修改

4.4 U 盘升级

阶段 行为
检测 TCFG_DEV_UPDATE_IF_NOFILE_ENABLE = 0,设备上线即 dev_update_check
升级中 kt_update_led_start()SYS_LED 快闪;kt_update_start_remind()TONE_SUP
升级完成 成功播 TONE_EUPkt_update_led_finish() 恢复 LED
提示音通路 CS8406 RST 释放 → 4 路 AUDIO 全开 → app_audio_output_start → 等 START/STOP

已知限制SDK update_success_boot_check() 在同一次开机内会拦截相同 UFW 重复升级。


5. 已修复问题记录

问题 原因 修复
U 盘不能升级 TCFG_DEV_UPDATE_IF_NOFILE_ENABLE=1 仅无文件时检测 改为 0
升级提示音偶发无声 异步 tone_play + 通道/CS8406 未就绪 RST 时序 + 4 路全开 + 等 START/STOP
播完再按键功能异常 active_ch=0get_play_status() 仍为 PLAY 播完 music_player_stop(0);判断加 active_ch!=0
kt_voltage_all_off 编译错误 函数定义顺序 调整函数顺序
BT_LED 改名 需求统一为系统灯 全部改为 SYS_LED

6. 待办事项(建议优先级)

P0 — 待测试

  1. AID-001 文件排序
  • 验证无 00.* 时能否从待机播放普通命名文件,以及回退播放后的下一曲顺序
  • 测试结果出来前暂不修改播放逻辑
  1. AID-004 播放灯态
  • 复测播放时当前 KEY_LEDKUP_LED/KDOWN_LED 是否持续常亮,其他 KEY_LED 是否熄灭

P2 — 可选

  1. 同开机重复升级测试:评估是否绕过 update_success_boot_check
  2. 配置文件化按键/灯效(需求文档「备用功能」栏)

7. 测试检查清单

基本播放

  • 上电待机4 路 KEY_LED 同步慢闪(约 1sLED_BAR 全灭SYS_LED 慢闪
  • 待机按 K100.*CH1 有声K1 + KUP + KDOWN 常亮,其它 KEY_LED 灭CH1 灯条亮
  • 待机按 K2/K3/K4通道、按键灯和灯条对应正确
  • 单曲播完:恢复待机灯态,音量回到 23
  • 播放中按异通道:不换曲,灯条/按键灯跟随
  • 播放中按同通道:下一曲 00→01→02…

文件与通道

  • SD 卡 00.mp3 与 U 盘同时存在:优先 SD
  • 文件命名为 AA.mp3(非 00待机按键可播
  • K1/K4、K2/K3 物理位置与 CH 对应正确

音量

  • 默认音量 23
  • VOL+ 每次 +1最大 30
  • VOL- 每次 -1最小 2
  • 播完/待机后再播,音量恢复 23

升级

  • U 盘根目录放 update.ufw,上电可升级
  • 升级中 SYS_LED 快闪,播 sup 提示音
  • 升级成功播 eup 提示音LED 恢复

异常

  • 00.* 且无音乐文件:对应通道快闪报错
  • 拔卡/拔 U 盘:停止播放,恢复待机

8. 关键代码索引

按键分发(music.c

case KEY_USER_KEY_1 ~ KEY_USER_KEY_6:
    err = kt_key_event_handler(key);

通道键核心(kt.c

  • kt_channel_key_handler() — 空闲播 00 / 同通道 next / 异通道切换
  • kt_play_success() / kt_play_fail() — 成功/失败灯态
  • kt_music_play_end_handler() — 播完收尾

音量

// cpu/br23/audio_config.h
#define SYS_DEFAULT_VOL  23

// kt.c
static void kt_vol_reset_default(void);

升级开关

// apps/soundbox/include/app_config.h
#define TCFG_DEV_UPDATE_IF_NOFILE_ENABLE  0

9. 版本历史

版本 日期 说明
V1.0 2026-07-25 初版:需求对照、实现状态、待办与测试清单

本文档由固件开发过程自动整理,如有需求变更请以最新 Excel 跟踪表为准。