Skip to content

[Waveshare 1.75] ES7210 TDM 四槽输入需按 MMR 顺序供 AFE/WakeNet 使用 #2229

Description

@nj-zhangrui-arvin

背景

Waveshare ESP32-S3-Touch-AMOLED-1.75 的 ES7210 使用四槽 TDM 输入。Waveshare 当前官方硬件参考明确标注该板实际串行槽位顺序为:

MIC1 / MIC3(ES8311 回放参考)/ MIC2 / MIC4(未连接)

其官方 1.75 Xiaozhi 语音实现则将 AFE 输入定义为 16 kHz、16-bit、三通道 MMR:

MIC1 / MIC2 / ES8311 回放参考(MIC3)

当前上游实现

当前 main/boards/waveshare/esp32-s3-touch-amoled-1.75/esp32-s3-touch-amoled-1.75.cc 仅向 BoxAudioCodec 传入 AUDIO_INPUT_REFERENCE。通用 BoxAudioCodec 虽初始化 ES7210 的四槽 TDM,但 input_reference=true 时逻辑输入通道数为 2,输入打开时也只请求前两个掩码;没有针对该板把四槽流转换成 AFE 所需的 MMR 三通道数据。

因此,MIC2 和回放参考的串行槽位/逻辑通道不一定能按该板 AFE 预期被消费,可能影响设备侧 AEC、WakeNet 与语音前端稳定性。

本地验证

我们仅对该 1.75 板型做了窄范围适配:读取四个 TDM 槽位,丢弃未连接的 MIC4,并重排为 MIC1 / MIC2 / MIC3(reference) 后送入 AFE。实机日志确认三通道 MMR 输入;在同一设备上,唤醒与后续识别表现明显改善。

这不是严格的量化基准,因而不主张直接以该观察判断通用音频代码有缺陷;但它与 Waveshare 当前官方 1.75 BSP/Xiaozhi 示例的板级约定一致。

建议

建议维护者评估是否为 waveshare-esp32-s3-touch-amoled-1.75 增加板型限定的音频布局适配:

  1. 保持其他使用 BoxAudioCodec 的板型不变;
  2. 对该板请求完整四槽 TDM;
  3. 仅在 AFE/AEC 路径将数据重排为 MIC1 / MIC2 / reference
  4. 明确 MIC4 未连接,并为该板增加启动日志/最小回归测试。

参考

如维护者认可方向,我可以整理为只影响 1.75 板型的最小 PR。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions