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.

[参考译文] AUDIO-AM62D-EVM:偶数 McASP 引脚上的 McASP 奇数通道问题

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1593253/audio-am62d-evm-issue-for-mcasp-odd-channels-over-even-mcasp-pins

器件型号: AUDIO-AM62D-EVM

当我们使用交错模式在两个 MCASP TX 或 Rx 引脚上使用奇数 TDM 通道(例如 3 个通道)时、它将在一段时间(例如两小时)内发生故障。 例如、如果我们使用 ALSA 交错模式将 3 通道 TDM 音频发送到 MCASP0_AXR0 和 MCASP0_AXR1、并通过 MCASP0_AXR2 和 AXR3 引脚环回这 3 通道 TDM 音频、则音频将出现故障且不可恢复。 我们使用两个引脚而不是一个引脚、因为我们有多个通道、例如 32 个通道。  

但是、如果我们使用偶数通道(如 2、4、6、8 等)并进行相同的测试、那么无论环回音频的时间有多长、都不会出现问题。

在大约或少于 2 小时的回送中、它可以 100%重现。 想要了解 TI 是否遇到此问题、并需要了解如何解决该问题。

谢谢爱平

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

    尊敬的爱平:

    您是否在 Linux 或 RTOS 上看到了此问题?

    此致、

    Suren

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

    尊敬的爱平:

    此外、如果您可以附加设备树文件和对任一 MCASP 所做的修改。

    此致、

    Suren

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

    Linux 上运行。 以下是与音频和 McASP 配置相关的器件树。  

    FPGA_CODEC:FPGA-codec{
    #sound-dai-cells =<0>;
    兼容=“固定编解码器“;
    通道=<16>;
    状态=“正常“;
    };

    codec_audio:声音{
    compatible =“simple-audio-card";“;
    状态=“正常“;
    简单音频卡、格式=“dsp_b";“;
    简单音频卡、位时钟主控=<&simple_fpga_codec>;
    简单音频卡、帧主设备=<&simple_fpga_codec>;

    简单音频卡、CPU{
    dai-tdm-slot-num =<8>;
    dai-tdm-slot 宽度=<32>;
    Sode-Dai =<&McASP0>;
    };

    simple_fpa_codec:simple-audio-card、codec{
    sound-dai =<&FPGA_codec>;
    };
    };

    MAIN_MCASP0_PINS_DEFAULT:MAIN-MCASP0-DEFAULT 引脚{
    pinctrl-single、pins =<
    AM62Dx_IOPAD (0x01a4、PIN_INPUT、0)/*(A19) McASP0_ACLKX - AM62_TDM_BCLK */
    AM62Dx_IOPAD (0x01a8、PIN_INPUT、0)/*(A20) McASP0_AFSX - AM62_TDM_LRCLK */
    AM62Dx_IOPAD (0x01a0、PIN_INPUT、0)/*(B20) McASP0_AXR0 - AM62_TDM_D0 */
    AM62Dx_IOPAD (0x019c、PIN_INPUT、0)/*(B18) McASP0_AXR1 - AM62_TDM_D1 */
    AM62Dx_IOPAD (0x0198、PIN_OUTPUT、0)/*(B19) McASP0_AXR2 - AM62_TDM_D2 */
    AM62Dx_IOPAD (0x0194、PIN_OUTPUT、0)/*(C19) McASP0_AXR3 - AM62_TDM_D3 */
    >;
    };

    &McASP0{
    状态=“正常“;
    #sound-dai-cells =<0>;

    pinctrl-names =“default";“;
    pinctrl-0 =<&MAIN_McASP0_pins_default>;

    auxclk-Fs-ratio =<256>;
    OP-MODE =<0>;/* MCASP_IIS_MODE */
    TDM 时隙=<8>;
    插槽宽度=<32>;
    serial-dir =<
    2 2 1 1.
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >;
    tx-num-evt =<0>;
    rx-num-evt =<0>;
    };

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

    尊敬的爱平:

    我已将此问题报告给我们的软件开发团队以供重现并解决。  

    我还创建了一个 JIRA 来跟踪问题。

    此致、

    Suren

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

    您好、爱平、感谢您发布此主题。

    我是否可以询问错误发生后的行为是什么? 播放是否仍在 ALSA 堆栈上播放、即软件认为没有发生任何问题、但音频就像您提到的那样无效。 或者错误发生时是否生成了任何错误/警告日志?

    此致、

    Sen Wang

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

    尊敬的爱平:

    您还能尝试一下吗、我在您的设备树中看到 auxclk-fs-ratio 是 256、这是一个比率、可以得到  未终止的小数  当除以 tdm 通道的数量 (3、6、9...) 时。  您是否可以尝试除以通道数时不会导致未终止小数的其他数字(例如,3、5、7 个通道为 252)?

    auxclk-Fs-ratio 用于设置生成位时钟频率的时钟分频器、该频率需要为采样率 x tdm 通道数 x tdm 位宽度。

    奇数通道的问题是、如果输入的 auxclk-fs-ratio  在 除 以 tdm 通道时导致非终止小数、这会导致精度损失、这意味着设置一个位时钟、该位时钟与帧同步略有不同步、并会产生第一次看不到的帧漂移、但最终会在给定足够的帧后累加。 这可能会解释为什么您的回送音频情况只会在长时间后失败。

    此致、

    Sen Wang

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

    尊敬的爱平:

    以上是否回答了您在奇数频道上的查询? 您是否仍需要此处的支持?  

    此致

    Suren

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

    您的解释看起来非常合理、可能是问题所在。 但我们没有时间对此进行测试。 相反、我们只需更改为使用偶数通道编号。 如果有机会、我们会尝试您的建议。 现在、我们可以解决这个问题