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.

[参考译文] AM620-Q1:McASP 实例同步

Guru**** 2424900 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1544131/am620-q1-synchronization-of-mcasp-instances

器件型号:AM620-Q1


工具/软件:

我们正在使用一个基于 AM62X 的系统、该系统专为音频应用而设计。 它使用三条 TDM 线路:

  • McASP0—接收外部的所有时钟、包括 FSync、BitClk 和 MCLK
  • McASP1–从外部 MCLK 生成 FSync 和 BitClk
  • McASP2–还从同一外部 MCLK 生成 FSync 和 BitClk

由于所有 TDM 线路共用一个公共的外部 MCLK、因此它们实际上由单个时钟源驱动。

我想了解如何确保启动时正确同步、特别是如何对齐所有 FSync 信号以避免抖动或相位失准。

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

    尊敬的 Wojciech:

     AM273 电路板和 2 个 McASP 实例采用了类似的帧同步对齐实现。 理论过程看起来有点像-  

    步骤 1:外围设备配置
    通过配置必要的硬件模块来初始化系统:

    • McASP1(参考):  配置为以 48kHz FSYNC 速率发送 TDM 流。 这用作时序基准。

    • McASP2(目标):  配置为以 48kHz FSYNC 速率发送 TDM 流。 这是要调整的输出。

    • eCAP1(基准监控器):  设置为捕获 McASP1 FSYNC 每个上升沿的时间戳、并在发生此事件时触发 ISR。

    • eCAP2(目标监视器):  设置为捕获 McASP2 FSYNC 每个上升沿的时间戳。

      [ eCAP(增强型捕获模块)是 一种高精度计时器外设、用于捕获事件时间戳(例如 FSYNC 信号的上升沿)。]

    步骤 2:事件捕获和测量
    从 McASP1 到达 48kHz FSYNC 后、将自主发生以下情况:

    1. eCAP1  捕获 McASP1 FSYNC 时间戳。

    2. 配置的中断置为有效、触发 ISR 的执行。

    3. eCAP2  捕获 McASP2 FSYNC 时间戳。

    第 3 步:相位误差计算与评估
    在 ISR 内、处理器执行以下计算:

    1. 读取时间戳:    eCAP1   eCAP2  寄存器读取时间戳值。

    2. 计算相位误差 (Δt):  相位偏差的计算公式为  Δt =时间戳 (eCAP2)-时间戳 (eCAP1)

    3. 评估容差:   将相位误差的绝对值|Δt |与预定义的容差阈值进行比较。

    第 4 步:相位校正
    在评估的基础上作出决定:

    • 如果在公差范围内:  系统被视为同步。 ISR 退出、不采取纠正措施。

    • 如果外部公差:  需要相位校正。 ISR 会启动  “时钟微调“  在的 BCLK 上  McASP2 。 这个受控单周期延迟会将 McASP2 FSYNC 脉冲与 McASP1 基准重新对齐、从而减少下一个周期中的相位误差。

    下图显示了如何执行此操作。 [这仅供参考。 但可用于理解目的]

    此致、
    Ritapravo

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

    您好  Ritapravo、

    我对 eCAP 的使用有疑问。 我在 AM62 文档中找不到任何有关 eCAP 和 McASP 之间进行内部布线的可能性的信息。 是否只能通过在 PCB 上将引脚物理接线来将它们连接在一起?

    此致、
    Sebastian

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

    尊敬的 Sebastian:

    我在 AM62 文档中找不到任何有关 eCAP 和 McASP 之间内部布线的可能性的信息。

    是的、MCAP 引脚必须物理连接到 eCAP 模块。  

    此致、
    Ritapravo

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

    尊敬的  Ritapravo:

    您能否提供更多有关如何在 McASP 中实现“时钟微调“特性的信息? 我在 AHCLKXCTL 寄存器中看到了一次性调整的逻辑、但在向 HCLKXADJ 写入值后看不到时钟同步发生任何变化。 这是 McASP 寄存器逻辑的正确部分吗、还是有其他内容?

    此致、

    Patryk

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

    尊敬的 Patryk:

    我还没有为 AM62x 器件检查此功能。 我将查看 AM62x 的详细信息、然后再回复您。

    此致、
    Ritapravo