This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PCMD3180:Linux 菊花链 TDM 问题 — 下游编解码器未激活 (DEV_STS1=0xC0)

Guru**** 2553260 points
Other Parts Discussed in Thread: PCMD3180

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1562271/pcmd3180-pcmd3180-linux-daisy-chain-tdm-issue---downstream-codecs-not-activating-dev_sts1-0xc0

器件型号:PCMD3180


工具/软件:

您好:

我将在 Variscite i.MX8M Nano 上以菊花链形式启动三个 PCMD3180 编解码器、目标是在单条 SAI 数据线上实现 8 通道和 12 通道 TDM 流(48kHz、32 位)。

我已经成功地建立了一个“头“编解码器,并且可以使用我的自定义叠加和飞行配置脚本 (amixer+i2cset) 获得 4 个不同的音频通道。 在这个成功的捕获期间、DEV_STS1寄存器 (0x77) 正确读取0xE0((PDM 开启时处于活动状态)。

问题出在我尝试启用 8 通道或 12 通道菊花链时。 我的脚本可以为所有编解码器正确配置唯一的时隙映射、SDIN 引脚和辅助 SDOUT 路由。 但是、捕获是无声的。

8 通道或 12 通道捕获尝试期间的实时寄存器转储表明下游的“中间“和“尾“编解码器未完全激活。 DEV_STS10xC0即使其电源和输入使能寄存器设置正确、也会读取其寄存器(活动,但 PDM 通道关闭)。

我的问题是:什么会导致菊花链中的下游编解码器拒绝进入完全运行状态 (MODE_STS=7)? 菊花链是否需要特定的寄存器写入或初始化序列?

请提供任何指导。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Colin、

    您能否通过检查中断寄存器来查看是否发生时钟错误?

    另一个可能有帮助的调试选项是给单个 ADC(中间或尾)上电、以查看配置单个编解码器时问题是出在还是两者同时出现问题。

    此致、
    Jeff McPherson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jeff、

    单个编解码器正常(每个 SDOUT 不在菊花链中)。

    遗憾的是、我现在正在出差、下周将不会再去实验室、因此目前无法对菊花链设置进行进一步的测试。

    假设单个编解码器可以正常工作、那么使下游编解码器在使用 i.MX8 Linux 主机的 TDM 菊花链中正确激活是否需要已知问题或特定的寄存器序列?

    Colin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Colin、

    我唯一能想到的是、驱动器没有正确地将中间和尾编解码器上的音频转换到 TDM 总线上的 3/4 和 5/6 时隙。 但我不是驱动器方面的专家。 我们拥有更丰富 Linux 经验的工程师明天会回来、他也可以了解这一点。

    此致、
    Jeff McPherson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Jeff。 此处正在进一步研究 — 我想知道 Linux“简单声卡“是否不支持菊花链、以及是否需要为此配置使用更自定义的 ASOC 驱动程序。 Colin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Colin、

    我在驱动程序文件中找到:

    从第一个插槽开始的相邻插槽可能是问题 — 它可能不想从设备 2 等上的插槽 9 开始 您可以自己编辑驱动程序以覆盖此驱动程序或实施自己的解决方法。 很抱歉。

    此致、
    Mir