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.

[参考译文] TMS320F28388D:ECAP 杂散中断

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1501915/tms320f28388d-ecap-spurious-interrupt

器件型号:TMS320F28388D
主题:C2000WARE 中讨论的其他器件

工具/软件:

您好、

我将在项目中使用 eCAP 来捕获连续模式下 PWM 的占空比。

在2个事件后绕回。 第一个事件:上升沿/第二个事件:下降沿。  

针对第一个事件(上升沿)生成中断。 在上升沿复位计数器。

我注意到数据表中没有提到很重要的一点。

如果我在已处理事件(我的应用中的 CEVT1)标志之前清除全局 INT 标志位、则会生成另一个中断脉冲、因此在第一个中断之后会立即发生第二个中断。

它不会改变 CAP 寄存器的结果、但会浪费处理器重新来源。

因此、必须 在全局 INT 标志之前绝对清除已处理事件标志 、以避免这个虚假中断。

我让您确认此行为、但它未在 TRM 中明确说明。 最糟糕的是、在 我 启动我的项目的技术讲座 Lab7(forTMS320F379d)中做的不对。

请确认 我是对的还是错过了一些东西。

此致、

Adrien

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

    尊敬的 Adrien:

    正确。 您将清除事件中断、然后像我们 C2000WARE SDK 的 eCAP/文件夹中的示例那样清除全局中断。

    这张图展示了一些情况。 如果在 CEVT 事件之前清除 INT 标志、则实际上是导致多路复用器选择了其中一个尚未处理的 CAPEVT、并将导致发生另一个中断。

    能否将您所指的研讨会链接给我?

    此致、

    Ryan Ma

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

    您好、Ryan、

    我指的是之前 TMS320F2837xD 的技术讲座、名叫"TMS320F2837xD 微控制器技术讲座"、干得不错、有助于开始使用 TMS320。 在实验7中、它在 CEVT 标志之前清除 INT 标志。

    我导入了 SDK v5_04_00_00的示例、我认为还有相同的问题、在 CEVT 标志之前清除 INT 标志、因此在第一个中断之后会立即生成第二个中断、我不确定这是预期的行为。

    生成两个中断:

    反转红色箭头所示的两行、并且只会生成一个中断(预期行为):

    我注意到、在我的应用中、通过在 eCAP ISR 中切换 GPIO、我可以在示波器上看到、如果在 CEVT 标志之前清除 INT Flaf、它会切换两次;而当我在 INT 标志之前清除 CEVT 标志(预期行为)时、它只会切换一次。

    如果不是预期行为、您能否确认并纠正示例? 在任何地方都没有记录。

    谢谢、

    此致、

    Adrien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="391685" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1501915/tms320f28388d-ecap-spurious-interrupt/5772335 #5772335"]

    我导入了 SDK v5_04_00_00的示例、我认为还有相同的问题、在 CEVT 标志之前清除 INT 标志、因此在第一个中断之后会立即生成第二个中断、我不确定这是预期的行为。

    [/报价]

    您指的是哪个示例? 我正在查看 eX2作为 eCAP。

    这是预期行为。

    此致、

    Ryan Ma

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

    您好、Ryan、

    我要参考的示例位于 SDK 5_04_00_00 / C2000Ware / training / device / f2838x / control_peripherals / lab_ePWM_ECAP 中。

    在此示例中、它是不正确的(在标志 CEVT 之前清除标志 INT)。 我使用此示例作为起点。

    我刚刚找到了另一个 TSM320F2837x 器件的正确示例。

    感谢您的支持、

    Adrien