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.
Each ePWM module is connected to six TZn signals (TZ1 to TZ6). TZ1 to TZ3 are sourced from the GPIO mux. TZ4 is sourced from an inverted EQEPxERR signal on those devices with an EQEP module. TZ5 is connected to the system clock fail logic, and TZ6 is sourced from the EMUSTOP output from the CPU. These signals indicate external fault or trip conditions, and the ePWM outputs can be programmed to respond accordingly when faults occur.
这个意思是不是说用户只能配置TZ1 - 3, TZ 1-6 是专用的,用户无法再用?
我明白你的意思。但是我看这个TRIP6被单独拉出来跟TZ1~TZ3摆到一起,我疑惑是不是这个TRIP6可以实现跟TZ1~TZ3一样的功能。就是说通过INPUT XBAR配置某个IO给TRIP6,若是这个IO被拉低了,就可以关掉相应的PWM模块的输出。
你好,你是哪里看到的TRIP6是需要用到DC模块?我这边是查到一个帖子关于F28388D的trip6的,里面提到:
TRIPIN6 = INPUTXBAR INPUT6,无需额外配置。
ePWM TRIPIN6 可用于使用 DC 模块触发 ePWM 输出。
但是没有看到TRIP6是需要用到DC模块。
总之这个问题我会去跟英文E2E的工程师确认一下,因为我也没找到更多的资料。确认有结果后会更新到这边
我实测通过INPUT6 XBAR 把IO 33连接到TRIP6上,代码如下:
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0; // Enable pull-up on GPIO33 (TRIP6)
GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3; // Asynch input GPIO33 (TRIP6)
GpioCtrlRegs.GPBDIR.bit.GPIO33 = 0; // Configure GPIO33 as TRIP6
InputXbarRegs.INPUT6SELECT = 33;
若IO33被拉低则将PWM7和PWM8的驱动拉低,代码如下:
EPwm7Regs.TZSEL.bit.CBC6 = 1;
EPwm8Regs.TZSEL.bit.CBC6 = 1;
EPwm7Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
EPwm7Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
EPwm8Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
EPwm8Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
IO信号每隔10ms被拉低,PWM7和PWM8的驱动没有变化并没有被拉低。
有一个不确定的地方是:
EPwm7Regs.TZSEL.bit.CBC6 = 1;
EPwm8Regs.TZSEL.bit.CBC6 = 1;
这里是不是配置的有问题。
另外,我用TZ1到TZ3来触发:
InputXbarRegs.INPUT1SELECT = 33;//InputXbarRegs.INPUT2SELECT = 33或者InputXbarRegs.INPUT3SELECT = 33
是没问题的。
谢谢回复。
你好,这边收到回复:
Trip6 来自input xbar 并进入EPWM的DC子模块,而不通过 EPWM xbar。它是一个数字比较信号,因此需要像配置其他数字比较信号一样对其进行配置。
正好官方例程里面有两个例程是关于DC模块的配置的,你可以参考一下:
C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f28003x\examples\epwm
你好,我想再请教一个PWM配置的问题,比如PWM 1A和1B,配置成驱动互补,在某种工况下,我希望1A先出驱动,1B是互补;在另一种工况下,1B先出驱动,1A是其互补,有方法实现嘛?谢谢。
你好,新问题的话以后建议重新发帖子来提问,因为已经结帖的帖子我们系统中不显示,要是我不去论坛找的话可能这个帖子就漏贴了。
回到这个问题,PWM的输出其实A/B是同时输出的,不知道你说的先输出后输出是指的什么?
互补的话你可以根据DBCTL[POLSEL]位来选择是A被反相还是B被反相。
PWM的输出其实A/B是同时输出的,不知道你说的先输出后输出是指的什么?互补的话你可以根据DBCTL[POLSEL]位来选择是A被反相还是B被反相-------------这个我知道。
我的意思是说已经开始使能PWM输出,但是在CMPA未被赋值之前,此时1A的驱动是低电平,1B已经被拉高了。我希望的是第一个高电平一定得是1A。
另外,配置成互补驱动之后,尝试去强制拉低1B驱动好像就没效果了。
EPwm1Regs.AQCSFRC.bit.CSFB = 1;
你好,新问题的话以后建议重新发帖子来提问,因为已经结帖的帖子我们系统中不显示,要是我不去论坛找的话可能这个帖子就漏贴了 ------------好的。
是的,你的问题应该就是由于配置为互补模式导致的,因为你可以看一下PWM模块的子模块图:
DB模块是在AQ模块后的,所以最后决定PWM输出高低电平的是DB模块,也就是互补输出的配置。
如果要达到你要的效果,只能考虑配置TZ模块来达到A/B输出都拉低的效果。