EG800AKCN91LC外挂FLASH和CODEC播放MP3频繁报错DMA读取失败

从标题看,问题集中在 EG800A 外挂 Flash 读取 MP3 数据并通过 CODEC 播放时,出现 DMA 读取失败。

建议优先按以下方向排查:

  1. 外挂 Flash 总线稳定性

    • 降低 SPI/QSPI 读写速率后复测。
    • 检查 Flash 供电、地线、CLK/CS/DATA 走线及上拉/下拉配置。
    • 播放过程中避免同时进行 Flash 擦写、频繁文件打开关闭等操作。
  2. DMA 缓冲区配置

    • 确认 DMA 读取 buffer 未被提前释放或重复占用。
    • buffer 地址、长度需满足 SDK/驱动对 DMA 对齐和内存区域的要求。
    • 避免使用栈上临时大 buffer 作为 DMA 数据源。
  3. 音频数据流压力

    • MP3 解码、Flash 读取、CODEC 输出建议采用环形缓冲。
    • 若 Flash 读取速度波动,可能导致音频播放端取数失败。
    • 可先用较低码率 MP3 或 WAV 文件对比验证。
  4. CODEC 与音频接口配置

    • 确认 I2S/PCM 参数与 CODEC 配置一致,包括采样率、位宽、主从模式、左右声道格式。
    • 播放瞬间若 CODEC 或功放拉低电源,也可能间接导致 Flash/DMA 异常。
  5. 定位建议

    • 先确认同一 MP3 文件放在内部文件系统是否正常播放。
    • 若内部正常、外挂 Flash 异常,重点查 Flash 驱动、DMA buffer、SPI 时序。
    • 若内部也异常,重点查 MP3 解码和 CODEC/I2S 配置。

如需进一步定位,请补充:使用的开发方式、外挂 Flash 型号、CODEC 型号、完整报错日志、Flash 读写接口配置、音频播放相关代码片段。

本回答仅供参考。若问题已解决,可标记为 :white_check_mark:解决方案 ;若仍有疑问,请等待官方技术人员回复,最终请以专业解答为准。