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.

[参考译文] AM62A7:当 McASP0 主器件是位时钟和帧时钟时、无法获得输出帧同步信号。

Guru**** 2416110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1511928/am62a7-not-getting-output-framesync-signal-when-mcasp0-is-master-of-bit-and-frame-clocks

器件型号:AM62A7

工具/软件:

我正在尝试将 fsync 时钟驱动至外部串行、但帧同步时钟不会改变状态。  开始录音后、FSYNC 线路保持高电平。 串行器将向 MCASP 输入输出具有 4 个时隙(32 位/时隙宽度)的 TDM。

我正在启动记录、如下所示
 areord -D sysdefault -f S32_be -r 48000 -t raw >/dev/null

在 k3-am62a-main.dtsi 之上应用以下 dts

   MAIN_MCASP0_PINS_DEFAULT:MAIN-MCASP0-PINs-DEFAULT{
       pinctrl-single、pins =<
           AM62AX_IOPAD (0x1a0、PIN_INPUT、0)/*(B20) McASP0_AXR0 */

           AM62AX_IOPAD (0x1ac、PIN_OUTPUT、0)/*(B21) McASP0_AFSR */
           AM62AX_IOPAD (0x1b0、PIN_OUTPUT、0)/*(A21) McASP0_ACLKR */

        };


   dummy_codec:SPDIF_receive{
       #sound-dai-cells =<0>;
       状态=“正常“;
       Compatible =“linux、SPDIF-dir“;
   };

   声音{
       compatible =“simple-audio-card";“;
       简单音频卡、格式=“I2S_";“;
       简单音频卡、位时钟主控=<&ADC_MASTER>;
       simple-audio-card、frame-master =<&ADC_master>;

       adc_master:简单声卡、CPU{
           Sode-Dai =<&McASP0>;
           系统时钟频率=<6144000>;
           系统时钟方向输出;
           SLOT-NUM=<4>;
           SLOT-WIDTH=<32>;
           SLOT-rx-mask=<1 1 1>;
       };

       简单音频卡、编解码器{
           sound-dai =<&dummy_codec>;
           bitclock-master =<&ADC_master>;
           FRAME-MASTER =<&ADC_MASTER>;
       };
   };

&McASP0{
   状态=“正常“;
   #sound-dai-cells =<0>;
   pinctrl-names =“default";“;
   pinctrl-0 =<&MAIN_McASP0_pins_default>;

   OP-MODE =<0>;   /* MCASP_IIS_MODE */
   TDM 时隙=<4>;
   rx-num-evt =<8>;
   serial-dir =<2 0 0 0>;/* 0:不活动、1:TX、2:Rx */
};

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

    您好 Robert:  

    您使用哪个 SDK 版本来验证?  

    此外、您是否可以检查以下在主配置中使用 AM62x 作为 MCASP 的线程、您是否可以在 DTS 中添加分配的时钟、分配的时钟速率和分配的时钟父级?

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487650/am625-running-mcasp-as-master-with-external-audio_ext_refclk-of-24-576mhz

    此致、

    Suren

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

    为了清零、我们尝试在 ACLKR/AFSR 上输出位时钟/FSYNC。  这与您的示例略有不同。  我们所有时钟都在内部生成。

    我们不使用 SDK、而是使用 ti-dm-FW-09.02.04-R4.0 和 Linux 内核 6.1.82。

    除了源 McASP0 定义中存在的时钟/速率/或时钟父级、我尚未添加任何分配的时钟/速率/或时钟父级

    Assigned-clocks =<&K3_CLKS 190 0>;
    assigned-clock-parter =<&k3_CLKS 190 2>;


    是否 还需要将 DEV_MCASP0_MCASP0_ACLKR_POUT (190、4) 和 DEV_MCASP0_AFSR_POUT (190、7) 添加为分配的时钟?   

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


    中导出

    www.ti.com/.../sprack0.pdf

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

    您好 Robert:

    我之前曾帮助您的同事处理过类似的问题:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1451502/mcasp0-output-aclkr-clock-signal/

    您能否在内部进行检查、看看是否存在同样的问题?

    此致、

    Suren

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

    您链接的另一个票证、最终导致 EVM 本身的 MUX 设置出现问题(在调用后已解决)。  

    我们目前正在使用原型板、而不是 EVM。  我们正在按预期生成输出时钟、但我没有看到帧同步。

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

    这里还有几点。  我已验证将 AFSR 引脚配置为可以切换线路的 GPIO。  如果对 McASP0 的 AFSR 引脚进行多路复用 、并且在器件树中反转帧同步的极性、则 AFSR 在其他模式下被驱动为低电平、与高电平相媲美。  这使我相信 MCASP 正在与 AFSR 一起工作、但不生成输出信号。

    0x2B0006C 的内容为 0x00000213:
    这似乎是针对具有内部生成的 AFSR 的 4 插槽 TDM 的设置、该 AFSR 在一个字而不是一个位上运行。

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

    我想我已经解决了这个问题的“A"解决“解决方案。  似乎为 TDM ( I2S ) 流配置 McASP 接口将导致 davinici_McASP 驱动程序始终复位 CFG_ACLKXCTL 寄存器中的 ASYNC 位。  当我开始录制并手动设置该位时、帧同步将开始按预期生成。  在将其硬编码为异步时、我还注意到 McASP_IS_synchronous 也必须返回 true 才能正确设置 AFSR 信号。

    我上面链接的票证对于这种情况似乎是正确的、即使我们不使用 TX 端、这种情况仍然被视为异步操作、当前的 Linux 驱动程序不支持此操作。

    似乎此票证在不同的 SOC 上存在相同的问题、但使用了相同的 McASP 外设

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/972919/am335x-mcasp0-frame-sync-no-clock。

    这是否被理解为仍然是此驱动程序的限制?  我很高兴根据我们的需求修改驱动程序、并将其标记为“已解决“(如果已解决)。  我只是想通过这样做来确保我不会导致其他问题。

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

    您好 Robert:

    对延迟深表歉意。 因业务外出、无法提前回复。

    让我就此与我的 SW 团队回旋、并向您提供回复。

    此致、

    Suren

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

    您好 Robert:

    您是否对驱动程序进行了修改?

    我可以让我的团队审核这些变化、并在社区需要使用时进行流式传输。

    此致、

    Suren

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

    我确实做了更改、但它们确实有效。  但是、这些更改仅适用于我的用例、因为我必须让驱动程序在不同的点移动同步路径和异步路径。  我所做的更改特定于让我们的用例正常工作。  要使这种操作模式与现有操作一起工作、需要考虑一些因素、因为似乎驾驶员的当前假设会抢占我们的预期功能。