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.

[参考译文] AM2434:有关 ECAP 捕获同步的问题

Guru**** 2398695 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1347569/am2434-question-regarding-ecap-capture-sync

器件型号:AM2434

使用 SDK9.01 ECAP PWM 环回示例并添加第二个 ECAP 模块、可实现 ECAP0和 ECAP1。

我似乎无法让 SWSYNC 正常工作、可能我做了一些错误的事情...?

我为 ECAP0和 ECAP1运行 App_ecapInit ()函数。
之后、这两个实例的 ECCTL 寄存器(偏移量0x28)都在初始化后为0x00360144。
然后在 main ()循环中的 上述 ECAP 初始化之后,我尝试启动 SWSYNC,以便两个 ECAP 模块共享相同的计数。

同步:

HW_WR_REG8 (gEscapBaseAddr + 0x2B、0x01);

这将0x01写入 ECCTL 的高8位、从而设置 SWSYNC = 1 (这是 ECCTL 寄存器的位24)

这足以进行同步、还是其他方面的需求?

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

    尊敬的 Katafuchi:

    我正在查看您的问题、由于明天是 TI 印度假日、您可能会遇到延误回复。

    此致、

    S.Anil.

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

    尊敬的  Katafuchi:

    我正在尝试了解您在 同步 模式下的预期?

    您对同步模式有何要求?

    此致、

    S.Anil.

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

    Anil、您好!

    考虑有两个波形的应用。
    这些波形是同步的、但它们各自的边沿异相、并且具有不同的占空比。

    对于一个模块、ECAP 模块设置为连续计数(非差分)和上升/下降/上升/下降、而对于另一个模块则设置为相反。
    CEVT4和溢出事件触发读取寄存器。

    我想在 ECAP 时基开始同步一次(初始化为零(TBPHS=0)一次)。
    这样、我就可以计算每个边沿的确切时间点、并将其与后续的边沿进行比较、等等...

    然而、出于某些原因、即使我可以确认模块已设置为启用同步事件并且同步处于活动状态(忘记了实际的位字段名称)、当我写入 SWSYNC 位时、我也看不到时基对齐。

    我正在通过 向其发送共享 GPIO 信号以触发捕获事件来确认对齐。
    我希望相同的信号会同时触发两个模块的捕获事件、并且我应该获得相同的时间戳(尽管由于输入缓冲器的倾斜以及通过不同模块的传播延迟而存在微小差异)

    优点:由于它们共享相同的参考时钟、因此它们会同时进行计数。
    因此、比较共享 GPIO 捕获可以计算偏移。 从技术上讲、如果我减去该偏移、我可以"对齐"计数值(假同步)。

    如果我所需要做的只是设置同步使能和 SYNCO、然后将 SWSYNC 传递到"上行"ECAP 模块...也许我应该向 TBPHS 写入一个值、这个值能够判断它们是否正在同步?

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

    尊敬的 Katafuchi:

    据我所知、同步脉冲主要用于 PWM 模式、而不是 CAP 模式。

    我可以查看 TRM、然后会回来。 因此、您的要求是两个 ECAP 模块应同时启动计时器。

    此致、

    S. Anil.

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

    Anil、您好、感谢您的观看。 请告诉我您确认了什么。

    >>因此、您的要求是两个 ECAP 模块同时启动计时器。

    只要可以使用同步脉冲触发同时加载相同的计数、就不必同时"启动"。

    我了解到同步脉冲应该会使 ECAP 模块向计数器加载 PHS 值、如果该值为0x0、则意味着在发生同步事件时、两个计数器都应复位回"0"并同时递增、因为它们都共享相同的输入时钟。

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

    尊敬的 Katafuchi:

    请查看下图。  

    您的用例是、需要将两个信号馈送到两个 ECAP 模块。

    现在、第一个 和第二个 ECAP 模块生成中断后、 您可以通过同步脉冲将 TSCNT 复位。

    该同步脉冲可以通过软件 同步 或 EPWM5 同步输出值给出 。

        通过控制 ECAP_ECCTL2[6 :7] SYNCOSEL 寄存器位、将同步输出的第1个 ECAP 模块传递到 ECAP 第2个 ECAP 模块。

    仅供参考、仅当加载事件完成时、此 TSCNT 才会复位。

    此致、

    Anil.