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.

[参考译文] TMS320F28P650DK:ECAP 信号监控

Guru**** 2952510 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1642060/tms320f28p650dk-ecap-signal-monitoring

器件型号: TMS320F28P650DK
主题: SysConfig 中讨论的其他器件

尊敬的 TI 支持团队:

在 F28P65x 评估板上、当外部输入信号的正脉冲宽度大于 100000 个时钟周期时、我尝试使用 eCAP 模块生成中断。 我使用函数发生器在 GPIO16 上注入恒定方波。 我看到 eCAP 模块在代码开始后生成一个中断、并且中断标志设置为 1026 (0x402)。 然而、该中断仅通过恒定脉冲输入触发一次。 除了中断标志之外、是否需要任何操作来清除 MUIT_1_ERROR_EVT2? 以下是 eCAP 的 SysConfig 设置和 ISR 代码片段。  

谢谢、

Haobo

 

image.png

image.png

image.png

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

    尊敬的 TI 支持团队:

    为了澄清这一点、我希望在正脉冲宽度大于 100000 个时钟周期的每个输入脉冲上触发 eCAP 中断。 然而、我只看到在第一个输入脉冲上触发了一次 ERROR_EVT2 中断。 我已经尝试了在 ISR 内禁用和重新启用信号监控、计数器和时间戳捕获。 不幸的是、这些步骤都没有帮助。 如果您能帮助我解决这个问题、我将不胜感激、因为我目前非常困难重重。

    谢谢、

    Haobo

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

    您好、张:

    对延迟的回复表示歉意。 您是否可以尝试技术参考手册第 3652 页 21.5.13.1 节中提到的步骤? tsctr 应处于自由运行模式。 您似乎已使用选项:TSCTR 在仿真暂停时停止。 一旦脉冲宽度大于上述值、您可以尝试将 DISABLE_max_EARLY _err 位设置为零以生成错误。

    谢谢、

    Divesh

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

    尊敬的 Divesh:

    感谢您的答复! 非常感谢您提供的任何帮助。

    我在早期测试中尝试了仿真模式设置。 这似乎没有什么帮助。 我刚刚再次确认、将其设置为“TSCTR 不受仿真暂停影响“对结果没有影响。 以下是更新后的 SysConfig 设置。

    最好在脉冲宽度超过限值时立即生成误差。 我在代码中有一行在电路板初始化后立即设置早期最大错误检查、“eCAP_setupEarlyMaxErrorCheck (eCAP_ARC_BASE、eCAP_MONITORY_UNIT_1、eCAP_PULSE_WIDTH_CROSS_MAX_VALUE);“。

    当信号监控器检测到超过设定限值的输入脉冲宽度时、eCAP 模块似乎在内部锁存为“错误“状态。 在这种情况下、是否有办法清除 ISR 中的错误或完全复位模块?

    谢谢、

    Haobo

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

    您好、

    您可以尝试使用技术参考手册第 3714 页中所述的 ECCLR 寄存器清除与监控单元对应的中断标志。

    谢谢、

    Divesh

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

    尊敬的 Divesh:

    感谢您的答复。

    代码使用“eCAP_clearInterrupt“来清除 ISR 内的中断标志 (ERROR_EVT2)。 我甚至有意忽略例程中的中断标志。 在这种情况下、将一致地触发 ISR。

    在我看来、当信号监控器检测到某种情况时、错误状态被锁存在处理器内部。 您是否有符合应用需求的示例代码? 我找到的最接近的采样程序是 TI 的“eCAP_ex5_signal_monitor“。 但是、当我在评估板上运行此示例程序时、它会表现出相同的行为。

    谢谢、

    Haobo

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

    您好、张:

    由于中断仅生成一次、因此中断配置中存在问题。 在 ISR 结束时、需要 确认组中断才能传播更多中断。 这可以通过 Interrupt_Clear 在代码中使用函数 ACKGroup() 来完成。 我不确定您的代码是否拾取了正确的组号(对应于您正在使用的 ECAP 模块)。 请查看技术参考手册第 144 页表 3-2 中的组号。  在这里、群组编号由行表示。  

    根据组编号、您可以选择枚举器(INTERRUPT_ACK_GROUPx、其中 x=对应于正在使用的 ECAP 模块的组编号)。

    此外、除了要模拟测试场景的“eCAP_ex5_signal_monitor“示例外、没有其他类似示例。  

    谢谢、

    Divesh

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

    您好、

    请尝试使用 Interrupt_clearACKGroup (INTERRUPT_ACK_group4)、而不是您使用的中断。 请注意、ECAPx 模块的群组编号是 4。

    谢谢、

    Divesh

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

    尊敬的 Divesh:

    非常感谢您在这个问题上的持续支持!

    我当前正在使用 board.h 中的定义“INT_eCAP_ARC_INTERRUPT_ACK_Group“来确认组中断。 我还确认在头文件中将“INT_eCAP_ARC_INTERRUPT_ACK_GROUP“设置为“INTERRUPT_ACK_GROUP4“。 请参阅以下内容。

    我将 TI 工程“eCAP_ex5_signal_monitor“导入 CCS、并对示例代码进行单次校正以初始化全局变量、如下所示。

    这个 TI 示例程序表现出我在自己的代码中观察到的相同行为。 ERROR_EVT1 中断仅触发一次。 我不知道您是否有 F28P65X 的评估板。 如果看到、能否请确认您在设置中是否看到相同的行为?

    谢谢、

    Haobo

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

    尊敬的 Divesh:如果您能分享有关此问题的任何更新信息、我们将不胜感激。

    谢谢、

    Haobo

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

    您好、

    我正在尝试安排一个 F28P65x LP。 请预计响应会有所延迟。

    谢谢、

    Divesh

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

    您好、

    我尝试运行名为 eCAP_ex5_signal 的示例。 我 被观察到同样的行为。  ERROR_EVT1 中断仅触发一次。 请提供一些时间来确定此问题的根本原因。

    谢谢、

    Divesh

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

    您好、

    在该示例中、munit1_evt1 错误会为 EPWM1 模块生成跳闸信号。 因此、通过在运行示例后探测信号确认了相同情况。 这是通过断开跳线从 GPIO0 到 GPIO16 并探测 GPIO0 信号 (eEPWM1_A) 来实现的。  跳闸 1 信号通过 EPWMXBAR 路由到 EPWM 数字比较模块。 请注意、跳闸 1 信号的源为 ECAP1_TRIPOUT。

    这就是为什么我们不再观察监控单元中断的原因。 如有疑问、请联系我们。

    谢谢、

    Divesh

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

    尊敬的 Divesh:

    感谢您提供的信息! 移除 EPWMXBAR 后、背靠背触发 eCAP 中断。

    Haobo