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.

[参考译文] LAUNCHXL-F28377S:同时使用数字比较模块和触发区模块

Guru**** 2541610 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/623693/launchxl-f28377s-using-digital-compare-and-trip-zone-modules-together

器件型号:LAUNCHXL-F28377S

我想在单个引脚上使用输入信号来强制 PWM 输出为低电平。 这是可以完成的
跳闸区域模块、并且应逐周期(CBC)进行。
此外、输入信号必须在之后短时间内由直流模块消隐
PWM 周期的开始。

我可能对如何配置和连接的模块有错误的理解
微控制器来实现这一点。
因为来自动作限定器模块的 PWM 已经设置并成功测试
在"独立"操作时、我只想讨论如何设置跳闸/直流功能。

下面是我对信号路径的描述:

  1. PWM 通过无影响的去带和斩波器模块到达 TZ 单元。
    只要不发生跳闸、信号就会原样发送到 ePWMxA 线上。
  2. 引脚读取输入信号、该信号通过 X-Bar 发送到
    直流模块、同样没有变化。
  3. 直流模块根据消隐时间来阻断信号。 如果是的话
    在上、输入信号可能会生成一个直流事件以强制 ePWMxA 为低电平。
  4. 跳闸生效、ePWMxA 被设置为低电平、直到下一个周期(CBC)
    操作)



以下是我的当前代码:


EALLOW;
InputXbarRegs.INPUT1SELECT = 21;/*GPIO for Input1 = TZ1*/
GpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 3;/*异步输入*/

EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL=0;/* TZ1为 DCAH 输入*/
EPwm2Regs.TZDCSEL.bit.DCAEVT2 = 2;   /* DCAEVT2:DCAH =高电平、DCAL =无关*/
EPwm2Regs.TZSEL.bit.DCAEVT2 = 1;/* DCAEVT2是 CBC 跳闸源*/
EPwm2Regs.TZCTL.bit.DCAEVT2 = 2;/* DCAEVT2强制 EPWMxA 为低电平*/

EPwm2Regs.DCFCTL.bit.SRCSEL = 1;/* DCAEVT2是滤波器源*/
EPwm2Regs.DCACTL.bit.EVT2SRCSEL = 1;/*传出 DCAEVT2的源是 DCEVTFILT*/
EPwm2Regs.DCFCTL.bit.Blanke = 1;/*启用消隐窗口*/
EPwm2Regs.DCFCTL.bit.PULSESEL = 1;/*消隐窗口 alignes to TBCTR=0*/
EPwm2Regs.DCFWINDOW= 500;/* CLK 周期中的窗口长度*/
EDIS;

该代码在 PWM 输出端对输入信号没有反应。
请帮助我查找错误。


提前感谢您的任何建议。

编辑2017-09-11:下面是信号路径(红色)和代码片段(蓝色)的更详细图片。 如果它看起来很小、则单击它。
不使用可选滤波、但仍会提供代码。 步骤3与上述代码略有不同。

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

    您好、Manuel、

    您似乎缺少 DCTRIPSEL 寄存器的配置、该寄存器用于选择哪些信号进入直流子模块。 我还建议在尝试添加事件滤波器之前使 CBC 跳闸正常工作。

    编辑:抱歉、我错过了将其设置为 TRIP1的行。 您是否可以尝试禁用滤波器设置、并查看是否没有该设置?

    此致、

    Kris

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

    我在没有滤波器的情况下对其进行了测试(EPwm2Regs.DCFCTL.bit.Blanke = 0已确认)、但没有跳闸。

    为了使进一步讨论更容易,我在原稿中增添了更详细的图片。
    它从参考手册(文档 spruhx5d)中提炼出来、该手册于2016年12月30日修订。

    此致、

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

    我的问题现已解决。 我用 Simulink 硬件制作的另一个线程
    生成代码的支持包导致得出结论。 以下是其链接:
    e2e.ti.com/.../2304586

    此致、

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

    我很高兴听到您让这项工作正常。 感谢您跟进此解决方案。

    此致、
    Kris