在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
囧:
你的功能用F2837X, F2707X的PWM模块的AQ模块的TI T2事件可以实现
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
bad:
回复 囧:
我用的28035
(*ePWM[n+1]).DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT; // DCAH = Comparator 1 output (*ePWM[n+1]).TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI; // DCAEVT1 = DCAH high(will become active // as Comparator output goes high) (*ePWM[n+1]).DCACTL.bit.EVT1SRCSEL = DC_EVT_FLT; // DCAEVT1 = DC_EVT_FLT (filtered) (*ePWM[n+1]).DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_ASYNC; // Take async path
// Enable DCAEVT1 as a one-shot source (*ePWM[n+1]).TZSEL.bit.DCAEVT1 = 1; // Enable One-Shot Trip
// Following code for the sync mechanism based on the same trigger event – COMPxOUT (*ePWM[n+1]).DCACTL.bit.EVT1SYNCE = 1; // Sync enabled
// What do we want the DCAEVT1 event to do? – Initial Configuration (*ePWM[n+1]).TZCTL.bit.TZB = TZ_NO_CHANGE; (*ePWM[n+1]).TZCTL.bit.TZA = TZ_FORCE_LO;
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
囧:
回复 bad:
F28035没办法通过寄存器配置做出死区,因为TZ模块会直接改变输出PWM的电平。所以PCMC的例程是在ISR中插入nop指令来实现的软件死区,比较复杂,F2807X就可以直接通过寄存器配置完成这个功能
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
bad:
回复 囧:
谢谢你的回答。NOP还真一直有个疑问:
在ISR中,是有很多NOP,我原先理解是up_cnt的设置是为了配置下一个周期的PWM。
MOVW DP,#_EPwm3Regs.AQCTLA MOV @_EPwm3Regs.AQCTLA, #0x0021 MOV @_EPwm3Regs.AQCTLB, #0x0002
NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP
NOP NOP NOP NOP
MOV @_EPwm3Regs.AQCTLA, #0x0020
按照我的理解就是EPwm3Regs.AQCTLA=0x0020,而上面的语句没有用。
按照你的意思,我理解错了,应该怎么理解呢?
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
bad:
回复 bad:
我在ISR添加了语句,同步整流的驱动就不对了。 你的说法应该是对的,请指导一下吧
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
囧:
回复 bad:
附件的文档你可以参考理解一下,其实就是通过NOP实现延时后,再改AQ,这样就能做出A路B路的死区
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
bad:
回复 囧:
这个有完整的文档吗?里面显示的不是很明显
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
bad:
回复 bad:
这是哪个例程,我去看看
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
囧:
回复 bad:
不是例程,只是一个简单的Buck的峰值电流控制法的解释
在PCMC模式下的移相全桥的user guide里面有这样一句话:只要比较器输出在一个PWM 半周期内变为高电平,瞬时为高电平的ePWM2 模块输出(ePWM2A 或ePWM2B)被立即下拉为低电平,而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)。ePWM4A 和ePWM4B 输出驱动方式类似。
请教一下,怎么设置才能实现?
bad:
回复 囧:
可以把算法发出来吗?
我一直以为死区是通过事件滤波来实现的。
在你给的图里面CMPA =1120,大于1000了,怎么回事