TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F28075:ePWM 的哪个中断?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/609813/tms320f28075-which-interrupt-for-epwm

器件型号:TMS320F28075

您好!

我对中断生成有疑问。 我正在配置 ePWM 的数字比较子模块。 这里、TRIP 11被配置为 DCAEVT1来导致 ePWM6上的跳闸。
我的问题是、这个 DCAEVT1生成哪个中断?

我查看了 TZENT 寄存器、它说使用一次性(OST)会导致 ePWMx_TZINT PIE 中断。 同样、跳闸事件 DCAEVT1上发生的中断也是如此。

我编写了我的配置以及用户手册中有关 TZENT 的少量信息。

/********* 来自 TZENT 寄存器:******* /

BIT3 DCAEVT1 R/W 0h
数字比较输出 A 事件1中断使能
0:禁用
1:启用
复位类型:SYSRSn

Bit2 OST R/W 0h
触发区单次触发中断使能
0:禁用单次触发中断生成
1:启用中断生成
单次触发事件将导致 ePWMx_TZINT PIE 中断。
复位类型:SYSRSn

/********* 我的配置*** /

//将 ePWM 输出 A & B 配置为跳闸时变为低电平。
EPwm6Regs.TZCTL.bit.TZA= TZ_FORCE_LO;
EPwm6Regs.TZCTL.bit.TSB= TZ_FORCE_LO;

//将 DCA 配置为 TRIP11
EPwm6Regs.TZDCSEL.bit.DCAEVT1= TZ_DCBH_HI;
EPwm6Regs.DCTRIPSEL.bit.DCAHCOMPSEL= 0xA;// Trip11
EPwm6Regs.DCAHTRIPSEL.bit.TRIPINPUT11= 0;//单次触发输入;非 ORed

//将 DCA 配置为 DCAEVT1
EPwm6Regs.TZSEL.bit.DCAEVT1= 1;//启用

//将 DCA 路径配置为未过滤和异步
EPwm6Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1;
EPwm6Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_异 步;

//清除跳闸标志
EPwm6Regs.TZCLR.bit.DCAEVT1= 1;//写入1清除跳闸标志。
EPwm6Regs.TZCLR.bit.INT= 1;

//启用 DCB 中断
EPwm6Regs.TZEINT.BIT.DCAEVT1 = 1; 

感谢你的帮助。

谢谢
Sagar

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

    由于选择单次触发源作为 DCAEVT1、
    EPwm6Regs.TZEINT.BIT.DCAEVT1 = 1;--这将导致 EPWM6中断和
    EPwm6Regs.TZEINT.bit.OST = 1;-这将导致 EPWM6_TZ 中断

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

    单次触发事件或 DCAEVT1中断信号均可使用注释中的代码生成 EPWM6_TZ 中断、因为您已设置 OST 和 DCAEVT1位。
    您可以参阅图14-42。 技术参考手册中的跳闸区域子模块中断逻辑(如果尚未执行此操作)。
    这将显示如何生成跳闸区域中断的可能性。

    我还建议在第14.9.2节中阅读此注释:
    "如果通过 TZEINT 寄存器启用了单次触发中断、并且选择了 DCAEVT1或 DCBEVT1
    由于 OSHT 跳闸源通过 TZSEL 寄存器提供、因此无需同时启用 DCAEVT1或
    由于直流事件通过 OSHT 触发中断、因此 TZEINT 寄存器中的 DCBEVT1中断
    机制。"

    此致、
    Elizabeth
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。
    因此、在阅读图和注释后、我了解到我的注释中的差异(OST 和 DCAEVT1)无关紧要、因为这两个差异都会导致相同的触发区中断。 (当然、我应该负责清除同一中断)
    我是对的吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我看到当 trip11变为高电平时、EPWM6输出 A 和 B 将变为低电平。 但我看不到相应的 EPWM_TZ 中断的控制权。

    我已经在 PIE 矢量表中启用了适当的 TZ 中断、并进行了如下回调:

    PieCtrlRegs.PIEIER2.bit.INTx6 = 1;//* EPWM6_TZ *////*这是初始块*/
    
    PieVectTable.EPWM6_TZ_INT =&ePWM_INV_2D_tzint_ISR;//这是 ISR 回调块*/ 

    我出什么问题了吗?

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

    您好 Sagar、

    您能否检查从 ePWM 到 CPU 的路径上的各种中断寄存器的状态? 在 ePWM 中、请查看 TZFLG。 然后、还请检查 PIEIFR 和 IFR。

    您还将需要"IER |= M_INT2;"等命令来启用 PIE 中的第2行。


    此致、
    Kris

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

    相应的位域如下:
    TZFLG -> 1.
    PIEIFR -> 1.
    IFR -> 0

    是的、我的代码中有命令"IER |= M_INT2;"。

    请就此提出建议吗?

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

    萨加尔

    感谢您提供信息。 这确认 ePWM 被正确设置以生成中断。 您能否单步执行 PIE 配置代码并验证寄存器是否确实正在更新? 我想知道是否缺少 EALLOW 或类似器件。

    此致、

    Kris

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

    e2e.ti.com/.../280892

    感谢你的帮助。 非常感谢您抽出宝贵的时间。

    此致、
    Sagar