主题中讨论的其他器件: SysConfig
工具与软件:
我正在使用6个 ePWM 单元在 AM2634控制卡上为三电平转换器实现 PWM 调制。 这些单元配置为以1ms 的周期在向上-向下模式下运行、并彼此同步。 在所有6个 EPWM 单元上都启用了"Enable Phase Shift Load"选项以及影子功能。
针对比较寄存器进行编码计算后、我通过在示波器上记录 PWM 门信号测试了系统。 然后、我将数据(HSEC 连接器上的栅极信号)保存并导入到仿真软件(Plecs)中、以评估生成的电压的精度并验证来自 AM2634的栅极信号的正确性。
在 Plecs 中、我将栅极信号连接到一个逆变器、并计算出生成的相电压的周期性平均值、平均周期为1ms (对应于 PWM 开关周期)。 您可以将栅极信号生成的电压与参考电压(基准电压 AM2634中调制器的电压输入如随附的图所示。 绿色迹线表示基准电压、而红色迹线表示由 AM2634记录并导入到 Plecs 的栅极信号生成的电压。 可以看到、除每个60°出现的误差或类似误差外、调制器大部分时间都能正常工作。 每个误差都需要外部一个 PWM 周期。
此外、我已尝试 ePWM 单元的多种不同设置、请参见 但问题仍然存在。 我执行的其中一项检查涉及将 AM2634的活动比较寄存器的值保存在数组中(在时间间隔比 PWM 开关周期小100倍的时间间隔中)、将其导出到.csv 文件中并将其导入到仿真软件中。 在仿真中、我将值连接到比较器、这样就不会出现问题。 这表明比较值的计算不是问题。
在 AM2634的实现中、发送到调制器的基准 α-β 电压在 PWM 中断中计算、该中断在开关周期的中间触发(当计数器达到最大值时)。 影子功能在全部6个 PWM 单元上启用、并且配置该功能时确保在计数器达到零时发生影子到活动加载转换。
为了验证这一点、我检查了行为、发现影子功能似乎未按预期运行(或者我可能正在读取影子寄存器?)。 具体而言、ePWM 单元的活动比较寄存器似乎会立即更新、而不是在计数器达到零时更新。 这个更新大约在计数器达到其最大值时发生、就在 ePWM 中断中计算出比较值之后。 下图显示了 ePWM0单元的计数器内容以及 ePWM0的活动比较寄存器的值。 从图中可以看出、活动比较寄存器似乎是在开关周期的中间更新的、而不是最后更新的
我通过将计数器内容和活动比较寄存器值保存在数组中、然后将它们导出到.csv 文件的方式获得了此数据(ePWM0的计数器内容和活动比较寄存器内容)。 ePWM0的计数器内容从存储器位置0x50000008读取、活动比较寄存器内容从0x500000D6读取。 我还尝试了 使用 EPWM_getCounterCompareValue 命令读取 ePWM0的比较寄存器、结果相同。
ePWM0单元的重要设置(ePWM0为其余5个 ePWM 单元生成同步输出脉冲并在开关周期中间生成交叉点以更新比较值)如下图所示:
阴影功能可能无法正常工作、还是存在我无法看到的其他问题?
我还注意到在 PWM 单元计数器中有一个奇怪的行为、我在两个不同的单元(六个)上观察到这一行为、并且这两个单元都出现了相同的问题(其余四个我没有检查)。 如下图所示、理想计数器(完全对称)以红色表示、而 AM2634上的 EPWM0单元计数器以绿色显示。 如前所述、通过在快速时间中断中写入数组并将数据导出到 CSV、可以获得绿色信号。
很明显、信号的斜率会发生变化。 此时、我不确定这个绿色信号是否准确、或者这是由用于对计数器值进行采样的时间中断(采样中断设置为最高优先级)的延迟引起的。 如果绿色信号如图所示正确、则计数器有时似乎变得不对称、这意味着向下计数的持续时间不等于向上计数的持续时间。 这可以在两个标记的期间清楚地看到。
任何帮助都将是非常欢迎的。