主题中讨论的其他器件:C2000WARE、 SysConfig
大家好!
我在 F28388D 上的应用使用2个 ePWM 单元以相当高的 PWM 频率(1MHz)驱动相移全 H 桥。
相移应该可修改(当然)、但 PWM 频率也应该可修改(约-/+ 10%符合标称值1MHz)。
直接实现(也是在循环中断期间对 ePWM 寄存器的写入次数较少)的方法是让左侧桥臂上的输出 A (ePWM-A)在发生零事件时向上、在发生 PRD 事件时向下、 另一个 ePWM 模块上的逆变器用于驱动右腿。
驱动同一桥臂上较低 MOSFET 的"B"信号是通过 DB 单元中的反转获得的。
使用这种方法并使用 EPWMLINK 寄存器将2个 ePWM 模块链接在一起时、只需要对"左"桥臂的 TBPHS 寄存器进行一次写入(该值由 EPWMLINK 传播、且更改 PWM 频率更改 TBPRD 时始终正确编程)。
在此模式下、我无需写入或使用 CMPA/CMPB (因为占空比始终为50%、且零点/PRD 点足以构建50%方波)。
当然、这会起作用。
现在我要使用 HRPWM 模式。 在了解 TRM 并查看 C2000ware 中的示例代码"HRPWM_ex3_prd_updown_SFO.c"之后、我成功提高了分辨率。
但我注意到一个奇怪的行为:
- a)如果我使用 CMPA = TBPRD/2、如在 TI 示例代码中用于生成 PWM 输出、则所有4个信号(H 桥第一个桥臂中的2个信号来自 ePWM2、 另外2个来自 ePWM3)对于使用的任何 HR 步进值来说都非常稳定(我根据需要使用 AUTOCONV 模式);
- B)如果我使用我的原始想法、即使用零和 PRD 来切换 PWM 输出、则与 ePWM2输出相比、来自第二个桥臂的脉冲(使用 EPWMLNK 连接的 ePWM3)有一点点抖动。 抖动在5ns 范围内、这相当于一个 TBPRD 步长。
你有什么想法或建议吗?
使用选项 B)将需要我计算和写入 CMPA = TBPRD/2以保持50%的占空比、这需要一些时间、这对我来说非常宝贵(PWM 频率为1MHz)。
而使用选项2、换向在架构中是隐式的。
谢谢!
阿尔贝托
