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.

[参考译文] TMS320F2800137:F2800137 AQCTLA 的全局加载信息

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1486535/tms320f2800137-f2800137-global-load-of-aqctla

器件型号:TMS320F2800137
Thread 中讨论的其他器件:SysConfigC2000WARE

工具/软件:

您好、

我使用的是 ePWM1和 ePWM2。 ePWM2针对周期和全局 PWM 加载链路与 ePWM1链接。 所有寄存器都使用影子寄存器、并在设置 ePWM1.GLDCTL2.OSHTLD 后正常地在计数器0处加载。

对于 AQCTLA 寄存器、似乎 AQCTLA 加载为0、即使 ePWM1.GLDCTL2.OSHTLD  尚未设置(所有寄存器尚未完全更新)、也是如此。 (击穿)。

这是问题还是配置中缺少某些内容?  即使选中 SysConfig、SysConfig 也不会在 AQCTL 中为 AQCTLA 设置影子加载模式。 不管怎样,我手动更新了 AQCTL。  

我还需要

谢谢、

Arnaud

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

    Arnaud、

    即使您 在代码中手动设置 AQCTL、如果未在代码中设置 AQCTL、它也会被 SysConfig 覆盖。 这可能是全球加载背后的问题不起作用。 您是否尝试过有关 ePWM 全局加载示例(编号为14 )的 C2000软件示例、该示例位于 C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f280013x\examples\epwm\ccs? 请查看该示例的 SysConfig 和注释以进行说明。  

    此致、

    Sumit

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

    您好、

    我经常使用全局加载、在大多数 CMP/TPRD 寄存器中都没有任何问题。 但是、由于 PWM 的一些新要求、我也需要更改 AQCTLA、但在设置 OSHTL 后需要加载为0。

    从示例14中、

    1 -为什么您不为 ePWM2和 ePWM3设置动作限定符的影子模式、而仅在 ePWM1上设置? 我应该为 Global Load 执行该操作吗?

    2-为什么还需要在 PWM2和 PWM3的全局加载设置中设置"强制加载事件"? (我还使用 ePWM1的链接进行全局加载)

    谢谢、  

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

    您好、

    问题可能与以下问题有关。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1057414/tms320f280049-how-to-clear-gldctl2-oshtld

    使用 OSHTLD 时会出现问题、此时控制环路(固定频率、而不是 PWM ISR)的运行频率与 PWM 非常接近、并且 OSHTLD 设置为非常接近计数器0或在计数器0附近。

    似乎、当我设置  OSHTLD 时、在下一次控制计算时、即使在 执行 OSHTLD 之前、也可能会更新影子寄存器、从而仅使下一个 PWM 周期不符合预期(仅更新一半)。 这是否是一个有效的原因?

    如果 设置了 OSHTLD、但没有执行、则没有任何内容阻止影子寄存器更新、因为我们似乎只能将 OSHTLD 读取为0。

    在这种情况下、您提出什么解决方案来确保在全局加载模式下有效执行重新加载之前不会更新影子寄存器?

    谢谢、
    Arnaud

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

    忘记说 PWM 是可变频率、但控制是固定的。

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

    尊敬的 Arnaud:

    只是为了确保我的理解是正确的。 有2个 ISR、一个是控制 ISR、该 ISR 是计算控制工作的固定频率。

    还有一个 ISR、即将值写入 PWM 寄存器的 PWM ISR。 这是正确的吗? 这个 PWM ISR 是可变频率、例如在 CTR 零点触发?

    当 PWM 频率超过控制频率时、您看到了问题? 这适用于 LLC 拓扑吗? 我们还可以分享我们如何根据目标拓扑实现的。

    此致、Pawan

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

    您好、

    能否 请参阅 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1469372/tms320f2800137-f2800137-hrpwm-and-one-shot-load-mode/5645487#5645487 [ e2e.ti.com ]

    当 PWM 在0 cntr 处将影子寄存器传输到 main 时、一些影子寄存器(并非所有寄存器)似乎已部分更新。 导致下一个 PWM 周期不符合预期。

    谢谢、

    Arnaud

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

    尊敬的 Arnaud:

    这是基于对另一个主题的讨论。

    • 似乎没有足够的时间以400kHz+ ISR 更新所有 PWM 寄存器。 是否可以将 PWM ISR 设为最高优先级?
    • 另一种方法是检查 TBPRD 寄存器、看看是否还有足够的时钟周期来更新 PWM 寄存器。 仅当有足够的周期可用时才写入 PWM 寄存器。 您认为这适用于您的应用吗?

    此致、Pawan

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

    尊敬的 Pawan:

    PWM ISR 是最高优先级。 没有任何其他 ISR (除非存在硬件过流信号)、但只应在特定条件下运行。

    由于电源(GaN)能够以非常高的频率(高达1MHz)运行、因此同步控制环路和 PWM 更新的最佳解决方案是什么?

    检查 TBPRD 是高频应用的最佳解决方案吗? 或者、您是否提出了其他建议?

    谢谢、


    Arnaud

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

    Arnaud、

    我发现、当开关频率始终高于控制频率时、假设我们始终以100kHz 的频率运行 ISR、并且 PWM 频率(PRD)始终大于100kHz、那么单次加载将可以正常工作、因为它可以与下一个 ePWM 零同步。 当控制将使用一次性负载异步更新周期时、尤其是存在多桥臂拓扑时、以及其 EPWM 在不同时间发生零时会发生相移时、会出现问题。 其中一种解决方案可以如您所建议的那样、实现 检查 TBPRD、然后让 GO 相应的 ePWM 周期 的逻辑、具体取决于在更新 ePWM 寄存器和 ePWM1.GLDCTL2.OSHTLD 位之前您尝试针对 fctrl 实现的 FSW 低得多。

    如果您可以、请问您需要在此处实现哪种特定类型的拓扑或波形模式、以便我们考虑是否有任何权变措施?

    此致、

    Sumit