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.
大家好、
我正在使用28377D 进行 PWM 转换器设计、以实现调制器。 一位同事和我注意到、在某些情况下、在某些区域、HRPWM 模块的响应不正确。 我们观察到 CMPA 和 CMPAHR 寄存器、发现 CMPAHR 值按预期增加。 在高速数字示波器上、我们测量了脉冲宽度、并观察了脉冲宽度随 CMPAHR 寄存器中的增加而变化的情况。 我们观察到、对于几组有效 CMPAHR 计数、占空比不变、直到微控制器达到粗略 CMPA 寄存器值的变化。 这是 HRPWM 模块的已知问题、还是我们使用的硬件有问题? 请提供任何可能的帮助或指导。 失去实质性 PWM 分辨率并不是很好的、可能会导致我们的转换器限制周期、从而导致我们试图避免的噪声。
谢谢、
Lance Hummel
此处捕获的一些数据显示了该问题。 我们递增了 CMPAHR 寄存器的 HRPWM 高8位、并在高速示波器上测量了占空比、并对波形求平均值。 橙色线表示 CMPAHR 寄存器值每次递增时的占空比变化。 当 MEP 不再工作时、橙色的差分图将变为接近零。 可以观察到、即使该条件对 MEP 阶跃数有效、测得的占空比不会在值超过63时增加。 有一些测量噪声、可以通过对更多样本求平均值来降低这些噪声、但使用64个平均点的数据充分显示了一般趋势、即脉冲宽度不会增加、即使编程为这样做也是如此。
兰斯
尊敬的 Lance:
很抱歉耽误你的时间。
让我确保我理解问题。 您看到的是,当校准例程返回的 MEP 换算系数为65时,CMPAHR 值一旦增加到65*256以上就不会产生任何影响?
这种行为似乎表明 在 PWM 配置中 HRCNFG[AUTOCONV]位没有被置位。 设置此位后、您应该能够向 CMPAHR 寄存器写入0到0xFFFF、并在整个范围内看到线性响应。
如果情况并非如此、或者我在这里遗漏了一些东西、请告诉我。
谢谢。
Hrishi
Hrishi、您好!
问题比这个复杂一点。 在上述测试期间、autoconv 位确实设置为0、但这是出于目的。 如果 autoconv=0且 MEP_SCALL_factor = 67、我们应该在 CMHR 寄存器中看到一直到67x256的线性延迟响应、但我们通常看到最后几个计数(57~63的范围、取决于 PWM 模块)确实会产生额外的延迟。
当我们将 MEP 调制更改为 CMPA 信号的上升沿(远离之前的周期结束)时、我们发现问题需要解决、问题本身也得到了解决。 我们尝试在发生 COMP0事件时使用 HRPWM 系统(我们使用的是下降斜升方案)。 将 HRPWM 边沿切换到上升边沿意味着我们必须反转 MEP 计数的极性。 粗计数与之不同、高计数意味着更宽的占空比、在 HRPWM 中、较高的 MEP 计数意味着更窄的占空比、因此我们添加了一些简单的数学运算来处理这种情况。 我们还启用 了 autoconv 位以节省一些计算时间。
谢谢、
Peyman。