トイテック本社 2026-04-20 08:23 采纳率: 0%
浏览 6

AC696X BR25系列(Jieli)通过 Type-C 直接连接时,存储设备无法识别。

本项目假设运行该程序的设备是一个带有 Type-C 公头的 USB 设备,如下链接所示:

https://www.amazon.co.jp/dp/B07T97LC9L?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1

当该设备连接到电脑或智能手机时,它会识别设备的 SPIFlash,如果存储了音频,则会在“音乐”模式下播放该音频。

然后,它会自动切换到“PC”模式,使电脑或智能手机能够识别 SPIFlash 中的内容作为存储,从而允许用户更改音频文件。

然而,虽然“音乐”模式工作正常,但在切换到“PC”模式时,通过 Type-C 直连无法识别存储,但通过 Type-A 直连可以识别。

以下是通过 Type-C 直连时的操作日志。

--P3 Reset Source : 0x1
VDDIO POR
[Info]: [SDFILE]VM size: 0x35000 @ 0x49000
[Info]: [SDFILE]disk capacity 512 KB
last file_addr:48393 49d
end_addr:49000

49 53 44 55 04 02 20 FF 83 57 A4 BE D4 84 FF FF 
[Debug]: [SDFILE]sdfile mount succ
[Info]: [BOARD]Power init : apps/soundbox/board/br25/board_ac696x_demo/board_ac696x_demo.c
wvdd_lev: 6
vbat_adc_value = 401
vbg_adc_value = 378
add sample ch 50000f
[Info]: [USER_CFG]read new cfg bt name config:jl_soundbox_test

[Info]: [USER_CFG]bt name config:jl_soundbox_test

[Info]: [USER_CFG]read new cfg ble name config:jl_soundbox_ble

[Info]: [USER_CFG]ble name config:jl_soundbox_ble

[Info]: [USER_CFG]new cfg tws pair code config:


FF FF 
[Info]: [USER_CFG]tws pair code config:


FF FF 
[Info]: [USER_CFG]read new cfg rf config:10

[Info]: [USER_CFG]rf config:10

[Info]: [USER_CFG]read new cfg ble rf config:10

[Info]: [USER_CFG]ble rf config:10

[Info]: [USER_CFG]aec config:


03 16 17 01 66 66 A6 3F 66 66 A6 3F 66 66 A6 3F 
66 66 A6 3F 00 00 C0 40 00 00 40 40 00 00 48 C2 
00 00 40 41 00 00 00 00 00 00 20 C2 00 00 8C C2 
00 00 80 3F 00 00 8C C2 00 00 40 C0 00 00 80 40 
00 00 A0 3F EC 51 B8 3D 
[Info]: [USER_CFG]aec_cfg mic_gain:3 dac_gain:22
[Info]: [USER_CFG]usb_mic_gain: 7

[Info]: [USER_CFG]max vol:30 default vol:15 tone vol:10 vol_sync:63

[Info]: [USER_CFG]warning_tone_v:340 poweroff_tone_v:330

[Info]: [USER_CFG]auto_off_time:0

[Info]: [USER_CFG]read music play mode err

vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
[Info]: [FLASH]norflash_init ! 22 0
[Info]: [FLASH]norflash new partition fat_nor

fat_nor add start
[Info]: [FLASH]norflash open

[Debug]: [SPI]spi clock source freq 24000000
[Info]: [FLASH]norflash_read_id: 0x856014

[Info]: [FLASH]norflash_capacity: 0x100000

[Info]: [FLASH]norflash open success !

__dev_manager_add, fat_nor add ok, dev->fmnt = 210c58,  0
[Info]: [TEST-UPDATE]testbox msg handle reg:1e31120

audio_enc_init
audio_dec_init
[Info]: [AUDIO-DAC]audio_dac_init

[Info]: [APP-UPDATE]<--------update_result_deal=0x5a00 3b56--------->

vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
vbat: 504
[Info]: [APP]app_main

[Info]: [APP]APP_POWERON_TASK 

[Debug]: [SDFILE]Open 0x1e3d32c, [/tone/power_on.*] Fail! (>_<)
cur --- 1 
new +++ 4 
[Info]: [APP]APP_MUSIC_TASK 

music task start!!!!!
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SDFILE]Open 0x1e3f486, [/tone/music.*] Fail! (>_<)
fsn_path = storage/fat_nor/C/, scan parm = -tMP1MP2MP3WAVDTSM4AAACMP4 -sn -r
[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SPI]spi clock source freq 40000000
[Info]: [AUDIO-DAC]sample 48000

[Info]: [AUDIO-DAC]fifo init : 0x129e8 0x800 0x0 0x0 0x7ff

[Info]: [AUDIO-DAC]DAC LR OUTPUT

music_player_err_deal err = 1, msg = 65535
[Info]: [AUDIO-DAC]Audio dac fifo start : 2015

>>>> ch:0 UNMUTE
>>>> ch:1 UNMUTE
>>>> ch:2 UNMUTE
>>>>>>>>>>>>>>>>>>>> UNMUTE
[Info]: [APP_PC]pc_app_check 3
[Debug]: [SPI]spi clock source freq 40000000
[Info]: [AUDIO-DAC]dac stop

[Debug]: [SPI]spi clock source freq 24000000
music_player_err_deal err = 0, msg = 65535
>>>> ch:0 MUTE
>>>> ch:1 MUTE
>>>> ch:2 MUTE
>>>>>>>>>>>>>>>>>>>> MUTE
>>>>>>>>>>>>>app_common_device_event_handler 484 
[Info]: [APP_PC]pc_app_check 5
cur --- 4 
new +++ b 
[Info]: [APP]APP_PC_TASK 

[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SDFILE]Open 0x1e3f3b2, [/tone/pc.*] Fail! (>_<)
[Info]: [APP_PC]App Start - PC
app_task_switch_next from 11 
cur --- b 
new +++ 4 
app_task_switch_next to 4 
[Info]: [APP_PC]pc_app_check 3
[Info]: [APP_PC]App Stop - PC
[Info]: [FLASH]norflash close

[Info]: [FLASH]norflash close done

[Info]: [FLASH]norflash open

[Debug]: [SPI]spi clock source freq 40000000
[Info]: [FLASH]norflash_read_id: 0x856014

[Info]: [FLASH]norflash_capacity: 0x100000

[Info]: [FLASH]norflash open success !

[Info]: [APP]APP_MUSIC_TASK 

music task start!!!!!
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SDFILE]Open 0x1e3f486, [/tone/music.*] Fail! (>_<)
fsn_path = storage/fat_nor/C/, scan parm = -tMP1MP2MP3WAVDTSM4AAACMP4 -sn -r
[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SPI]spi clock source freq 40000000
[Info]: [AUDIO-DAC]sample 48000

[Info]: [AUDIO-DAC]fifo init : 0x129e8 0x800 0x0 0x0 0x7ff

[Info]: [AUDIO-DAC]DAC LR OUTPUT

[Info]: [AUDIO-DAC]Audio dac fifo start : 2015

>>>> ch:0 UNMUTE
>>>> ch:1 UNMUTE
>>>> ch:2 UNMUTE
>>>>>>>>>>>>>>>>>>>> UNMUTE
music_player_err_deal err = 1, msg = 65535
[Info]: [APP_PC]pc_app_check 3
[Debug]: [SPI]spi clock source freq 40000000
[Info]: [AUDIO-DAC]dac stop

[Debug]: [SPI]spi clock source freq 24000000
music_player_err_deal err = 0, msg = 65535
>>>> ch:0 MUTE
>>>> ch:1 MUTE
>>>> ch:2 MUTE
>>>>>>>>>>>>>>>>>>>> MUTE
>>>>>>>>>>>>>app_common_device_event_handler 484 
[Info]: [APP_PC]pc_app_check 5
cur --- 4 
new +++ b 
[Info]: [APP]APP_PC_TASK 

[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SDFILE]Open 0x1e3f3b2, [/tone/pc.*] Fail! (>_<)
[Info]: [APP_PC]App Start - PC
app_task_switch_next from 11 
cur --- b 
new +++ 4 
app_task_switch_next to 4 
[Info]: [APP_PC]pc_app_check 3
[Info]: [APP_PC]App Stop - PC
[Info]: [FLASH]norflash close

[Info]: [FLASH]norflash close done

[Info]: [FLASH]norflash open

[Debug]: [SPI]spi clock source freq 40000000
[Info]: [FLASH]norflash_read_id: 0x856014

[Info]: [FLASH]norflash_capacity: 0x100000

[Info]: [FLASH]norflash open success !

[Info]: [APP]APP_MUSIC_TASK 

music task start!!!!!
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SDFILE]Open 0x1e3f486, [/tone/music.*] Fail! (>_<)
fsn_path = storage/fat_nor/C/, scan parm = -tMP1MP2MP3WAVDTSM4AAACMP4 -sn -r
[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SPI]spi clock source freq 40000000
[Debug]: [SPI]spi clock source freq 24000000
[Debug]: [SPI]spi clock source freq 40000000
[Info]: [AUDIO-DAC]sample 48000

[Info]: [AUDIO-DAC]fifo init : 0x129e8 0x800 0x0 0x0 0x7ff

[Info]: [AUDIO-DAC]DAC LR OUTPUT

[Info]: [AUDIO-DAC]Audio dac fifo start : 2015

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2026-04-20 08:24
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    根据您提供的信息,AC696X BR25 系列设备在通过 Type-C 直连 时无法识别存储设备,但在 Type-A 直连 时可以正常识别。这表明问题可能与 Type-C 接口的 USB 模式切换逻辑硬件连接方式 有关。


    🔍 问题分析

    1. Type-C 与 Type-A 的差异

      • Type-C 是一种双面插头接口,支持多种协议(如 USB 3.1、DisplayPort、Thunderbolt 等)。
      • Type-A 是单向插头,通常仅支持 USB 数据传输。
      • 有些设备在 Type-C 连接时需要 手动切换模式(如从“音乐”模式切换到“PC”模式),而某些情况下可能因为 协议不兼容驱动配置错误 导致无法识别。
    2. 日志分析

      • 从日志中可以看到,设备已经进入“PC”模式,但 无法识别存储设备
      • 日志中出现了多个 Fail! (>_<),表示文件读取失败,这可能是因为设备未正确挂载或识别 SPI Flash。
      • SDFILESPI 相关的日志显示设备尝试加载文件,但失败了。
    3. 可能原因总结

      • Type-C 接口未正确配置为 USB 存储模式
      • USB 模式切换逻辑存在缺陷,导致在 Type-C 下无法正确切换到 PC 模式。
      • SPI Flash 驱动或文件系统配置错误,导致无法被识别为存储设备。
      • Type-C 接口的电源管理或信号完整性问题,导致数据传输不稳定。

    解决方案

    1. 检查 Type-C 模式切换逻辑

    • 确保设备在连接 Type-C 后能够自动或手动切换到 USB 存储模式
    • 如果是通过代码控制切换,确保在 Type-C 插入后触发正确的 USB 模式切换函数。

    示例代码修改(假设使用 J-Link 调试器或开发环境):

    // 假设在检测到 Type-C 插入后调用以下函数
    void switch_to_usb_mode() {
        // 设置 USB 控制寄存器,切换到 PC 模式
        usb_set_mode(USB_MODE_PC);
    }
    
    // 在主循环中检测 Type-C 插入
    if (type_c_inserted()) {
        switch_to_usb_mode();
    }
    

    2. 验证 SPI Flash 是否被正确挂载

    • 确保 SPI Flash 在 Type-C 连接时被正确初始化并挂载为文件系统。
    • 检查是否在 Type-C 连接后重新挂载了 SPI Flash。

    示例代码修改:

    // 初始化 SPI Flash 并挂载文件系统
    void init_spi_flash_and_mount_fs() {
        spi_flash_init();
        fat_nor_init();  // 假设使用 FAT_NOR 文件系统
        mount_filesystem("fat_nor");
    }
    
    // 在 Type-C 插入后调用
    if (type_c_inserted()) {
        init_spi_flash_and_mount_fs();
    }
    

    3. 检查 USB 驱动配置

    • 确保 USB 驱动程序支持 Type-C 接口,并且在 Type-C 模式下能够识别存储设备。
    • 查看 USB 驱动是否支持 Mass Storage Class (MSC) 协议。

    4. 测试 Type-C 接口的物理连接

    • 使用 Type-C 到 Type-A 的适配器 测试是否能正常识别存储设备。
    • 如果使用的是 Type-C 到 USB 3.0/2.0 的转接线,请确认其是否支持 OTG 功能(On-The-Go)。

    5. 更新固件或驱动程序

    • 检查是否有最新的固件或驱动程序更新,特别是针对 Type-C 接口的支持。
    • 更新固件可能会修复已知的 USB 模式切换问题。

    🧠 建议操作步骤

    1. 确认 Type-C 接口是否支持 USB 存储模式
    2. 检查 USB 模式切换逻辑是否正确
    3. 验证 SPI Flash 是否被正确挂载和访问
    4. 测试 Type-C 接口的物理连接是否稳定
    5. 更新设备固件或驱动程序

    📌 重点总结

    • Type-C 与 Type-A 的不同:Type-C 支持更多协议,需确保正确切换至 USB 存储模式。
    • SPI Flash 挂载问题:确保在 Type-C 插入后 SPI Flash 正确初始化并挂载。
    • USB 模式切换逻辑:确保代码中正确处理 Type-C 插入事件并切换模式。
    • 物理连接问题:使用可靠的 Type-C 转接线或适配器进行测试。

    如果您能提供设备的 具体型号使用的开发平台(如 SDK 版本、编译工具链等),我可以进一步帮助您定位具体问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月20日