TI中文支持网
TI专业的中文技术问题搜集分享网站

PWM的产生?

在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了,怎么回事

赞(0)
未经允许不得转载:TI中文支持网 » PWM的产生?
分享到: 更多 (0)