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.

[参考译文] IWRL6432AOP:用于 PWM 中断的中断多路复用

Guru**** 2540720 points
Other Parts Discussed in Thread: IWRL6432AOP

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1556834/iwrl6432aop-interrupt-muxing-for-pwm-interrupt

器件型号:IWRL6432AOP


工具/软件:

您好:

我正在尝试了解 ePWM 示例以及中断多路复用如何在 IWRL6432AOP 上工作。

该示例中有一个步骤、代码读取 CSL_APP_CTRL_U_BASE 的一些原始寄存器值、然后写回原始十六进制值 0x80:

 /* Configure Mux for PWM interrupt generation */
    regVal = HW_RD_REG32(CSL_APP_CTRL_U_BASE + CSL_APP_CTRL_APPSS_IRQ_REQ_SEL);
    regVal = (regVal & ~(0xC0)) | 0x80;
    HW_WR_REG32(CSL_APP_CTRL_U_BASE + CSL_APP_CTRL_APPSS_IRQ_REQ_SEL, regVal);

概括来说、这应该与 APPSS 中断映射的 TRM 中的此表中的中断编号相对应:

但 0x80 不是 48、TRM 实际上没有指示 ePWM 通道中断在 APP_CTRL:APPSS_IRQ_REQ_SEL 中对应的位值。 此表中的其他一些条目具有数组索引指示符、我假设该指示符对应于要在此寄存器中设置的位。

有人能解释一下它是如何工作的吗? 此外、我们在示例中不应使用原始的十六进制值、除非在某个位置记录了该值。

谢谢、

Munan

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

    你好 Munan!
    我们正在查看您的查询。 请给我们一些时间来答复。
    谢谢。

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

    您好 Munan、

    二进制 0x80 等于  10. 000000。在下图中、您将看到对于 PWM 中断、位 7 和位 6 分别需要为 1 和 0。 这就是为什么“| 0x80“能满足需要的原因。

    此致、

    Pedrorm