器件型号:LAUNCHXL-F28377S
我想在单个引脚上使用输入信号来强制 PWM 输出为低电平。 这是可以完成的
跳闸区域模块、并且应逐周期(CBC)进行。
此外、输入信号必须在之后短时间内由直流模块消隐
PWM 周期的开始。
我可能对如何配置和连接的模块有错误的理解
微控制器来实现这一点。
因为来自动作限定器模块的 PWM 已经设置并成功测试
在"独立"操作时、我只想讨论如何设置跳闸/直流功能。
下面是我对信号路径的描述:
- PWM 通过无影响的去带和斩波器模块到达 TZ 单元。
只要不发生跳闸、信号就会原样发送到 ePWMxA 线上。 - 引脚读取输入信号、该信号通过 X-Bar 发送到
直流模块、同样没有变化。 - 直流模块根据消隐时间来阻断信号。 如果是的话
在上、输入信号可能会生成一个直流事件以强制 ePWMxA 为低电平。 - 跳闸生效、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与上述代码略有不同。
