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.

[参考译文] TMS320F28035:HRPWM (周期和放大器;占空比)抖动和全局加载问题

Guru**** 1624165 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1363719/tms320f28035-hrpwm-period-duty-jitter-and-global-load-issue

器件型号:TMS320F28035

尊敬的 BU 专家:

我的客户正在使用 F28035进行变频和占空比控制。 它们使用 HR 周期和占空比。  

他们会发现、当 AQ 涉及 ZRO 或 PRD 时、输出会抖动。 当 AQ 仅涉及 CMP 时、没有抖动。 他们在 TRM 上找不到这方面的解释、您能帮忙解释一下吗?

同时、当在不改变占空比的情况下改变频率时、它们需要同时改变 PRD 和 CMP。 由于 F2803x 上没有全局加载但只有影子寄存器、因此如何保证 PRD 和 CMP 同时更新? 即使使用影子寄存器、当仅更新一个影子寄存器时、也可能发生从影子到活动状态的情况。

此致、

挂起。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hang:

    客户使用哪种计数模式? 通常、最好使用向上向下计数模式、使 PWM 操作限定符在周期附近发生(例如 CMPA-UP 和 CMPA-DOWN)。 这样、就可以对 HRPWM =0和 CTR =PRD 事件执行内部 CTR 计算并将其加载。 客户是否能够使用此配置?

    它们当前是如何更新 CMP 和 PRD 值的? 这在某个 ISR 内吗? 影子加载应允许在特定的 CTR 匹配事件(例如 CTR = 0和 CTR = PRD)上发生加载、以确保在可预测的时间加载新值。 如果客户在这些事件之前将新值写入影子寄存器、则 CTR 匹配事件应在下一个加载事件时同时加载这些值。  

    此致、

    艾里森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Allison:

    客户使用向上向下双向计数模式。 对于半桥、它们使用2个 PWM。 对于高侧开关、AQ (PMW1)配置为零高电平、CMPA-UP-LOW。 对于低侧、AQ (PWM2)配置为 PRD 高电平、CMPA 向下低电平。 所以包括 PRD 和零事件。 实际上、如果他们想要 HR 占空比、PRD 和零事件是不可避免的。 因此、它们无法通过简单地不使用 PRD 和零来避免抖动。

    它们现在更新 CMP、并且 PRD 是相同的 ISR。 这两个值通常在同一周期内加载到影子寄存器中、并在下次 CTR = 0时激活。 但是、不能保证这两个值都是在 CTR = 0之前写入影子寄存器。 因此、他们正在寻找一种机制来保证这一点。

    此致、

    挂起。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hang:

    如果这是两个完全独立的 PWM 模块、客户是否可以在开始时偏移 PWM 计数器、以便它们能够使用 CMPAU 和 CMPAD 作为这两个 PWM 模块的操作限定符、而不是 PRD 和零?

    此外、ISR 何时发生? 如果它在特定的已知时间发生(例如、每次 CTR = 0都会发生 ePWM 中断)、并且您知道 ISR 需要多长时间、则可以确定是否会在下一个影子到活动加载事件之前更新(影子化)。  

    此致、

    艾里森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Allison:

    将 CMPAU 和 CMPAD 用作 AQ 时、如何更改占空比? 看起来占空比固定为50%。

    对于 ISR 时序、ISR 发生在 CTR = 0时。 我们可以确定 ISR 将执行多长时间、以确保计算时间短于周期。 不过仍有一些例外情况、例如、当发生 PWM ISR 时、CPU 处于另一个 ISR 中、并且 PWM ISR 必须等待和延迟启动、因此计算很可能无法在周期内完成。 有什么想法、如何检查?

    此致、

    挂起。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hang:

    使用 CMPA 时、占空比不是固定的(恰恰相反)。 CMPA 值完全可配置、可以是任何所需的值(不包括 TRM 中专门针对 HRPWM 介绍的某些周期限制)。 例如、如果使用上-下计数模式、并且 PRD 值为50、则可以通过将 CMPA 设置为30来实现40%的占空比(简要描述了如下):

    对于 ISR、我通常在查看时序时会切换 GPIO (例如、在 ISR 开始时将 GPIO 切换为高电平、在 ISR 结束时切换为低电平)以查看 ISR 的持续时间。 然后、您可以在示波器上查看与 PWM 操作相关的 ISR GPIO、以确保 ISR 恰好在影子加载事件之前发生。  

    你也可以在其他 ISR 中对另一个 GPIO 执行同样的操作、以查看所有中断 ISR 时序之间的相互关系、当然、还要检查 PIE 通道映射以查看其他中断是否具有更高优先级(从而可能阻止目标 ISR)。  

    此致、

    艾里森