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.

[参考译文] TMS320F280023:将影子寄存器用于具有&gt 的 HRPWM;1MHz

Guru**** 2422790 points
Other Parts Discussed in Thread: TMS320F280023, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1541228/tms320f280023-use-of-shadow-registers-for-hrpwm-with-1mhz

器件型号:TMS320F280023
主题: SysConfig 中讨论的其他器件

工具/软件:

你好

我们需要针对反激式转换器配置 TMS320F280023 的 HRPWM。 我们希望避免在 PWM 运行时周期或占空比出现任何干扰。 频率可以大于 1MHz、这不允许任何软件控制的同步来更新周期和占空比。  我们得出结论、唯一的方法是使用影子寄存器。 但它当然需要一些时间来更新所有影子寄存器、我们希望防止在软件将有效的数据集写入所有影子寄存器之前发生到活动寄存器的任何传输。 对于所有影子寄存器(周期,HR 周期以及占空比和 HR 占空比)同时且受控良好地传输到有效寄存器、我们发现单次全局加载应该是正确的方法。  但似乎有一个问题。

我们尝试了全局单次触发选项来同时更新周期、HR 周期、占空比和 HR 占空比、方法是在软件更新所有影子寄存器后向 GLDCTL2(OSHTLD) 写入 1。 到目前为止、它看起来可以正常工作、但我们发现了以下注意事项:“启用高分辨率模式时、不得使用一次性加载模式。“ (SPRUINN7C、第 1790 页)。 现在我们感到困惑。

问题 1:是否仍然可以使用全局加载但不需要一次性 ( GLDCTL(OSHTMODE=0))? 但是、这个 mnode 会持续加载活动寄存器、在写入所有影子寄存器之前、我们无法延迟影子到活动传输。 我们如何通过软件禁用/启用影子到活动传输、从而保证只有一组有效的影子寄存器值被加载到活动寄存器中? 如果这不可能:您建议将什么作为解决方法?

问题 2:如果影子寄存器在硬件将影子寄存器传输到活动状态的同时进行精简版更新、是否存在任何闪烁风险? 还是换言之:部分写入的影子寄存器内容是否会被传输到 周期、HR 周期、占空比和 HR 占空比等活动寄存器?  

我们希望有一个有助于解决我们问题的明确答案。 非常感谢您的宝贵支持。

此致

Daniewl Keller

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

    如果要更新多个 PWM 模块、则需要全局加载。 如果在一个模块中更新参数、则影子加载就足够了。 是否将多个 ePWM 模块用于反激式转换器?

    此致、

    Sumit

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

    谢谢。 我们没有使用多 PWM。 但我们希望同时更新所有参数 (HRDuty 和 HRPeriod)。 随着 HR 占空比和周期的更新包括写入多个影子寄存器、我们写入这些寄存器时可能会发生影子到活动状态的情况。 这可能会导致和意外更新:仅在计数器零之后不久写入影子寄存器的参数才会在下一个 PWM 周期更新。  因此、我们可以使用第一个 PWM 周期的一些参数进行分段更新、其余参数将在下一个 PWM 周期进行更新。 这不是完全同步的,但如果没有其他解决方案,我们可以处理它。

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

    Daniel、

    如果更新 ISR 频率等于 Fsw=ISR 1MHz、则在影子加载模式下更新不应该是问题。

    但如果您使用的是 ISR < Fsw=ISR、则可以使用 1MHz。 如果是、那么在这种情况下、您可以实现要监测的逻辑来查看 TBCTR 是否远未达到零、您可以在这种情况下生成标志以便在影子寄存器中开始写入(如果情况不为真)、然后等待下一个 ISR 周期和条件来升高标志。  

    您也可以参阅以下 e2e 以供参考: e2e.ti.com/.../tms320f280049c-is-shadow-to-active-load-disabled-during-shadow-write-access

    如果这有道理、请告诉我。

    此致、

    Sumit

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

    Sumit,

    是的、这是一个重要的意义。 我们将生成一个 ISR、每 1ms 更新一次 PWM 参数。 PWM 周期在 0.7 - 2us 范围内。 我们将检查是否可以尽早(在计数器复位后)执行一些基于软件的同步 来写入 shadwo 寄存器、以确保在下一次影子到活动传输之前写入所有内容。

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

    Daniel、

    是的、这是正确的方法。 通常、当 PWM 与 ISR 不同步时、我们建议优先考虑控制工作量计算、并仅在 TBCNR 远离零时才向这些 PWM 寄存器写入新值。 通过这种方式、可以更大限度地减少控制相关延迟、同时保证写入 所有影子寄存器、以便在下一次影子到活动传输之前很好地写入所有内容。

    如果您遇到任何其他问题、请告知我们。

    此致、

    Sumit

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

    Sumit,

    谢谢、这一切都很有意义、我们将努力解决这个问题。

    同时我们发现了另一个令人困惑的问题。 我们将 PWM 配置为 HRPWM、采用无死区的向上计数模式。 我们使用 HRmode 来表示占空比和周期。 我们遵守 HR 模式的特定限制: 最小占空比>3 个时钟、最大占空比<(周期 — 3CLK)。

    我们按如下方式设置动作限定器:“Set Hi on Period“和“Clear Low on CMPA“以及“do nothing at zero“。 要在没有任何干扰的情况下打开和关闭 PWM 输出、我们只需在“Set Hi On Period“和“Clear Lo On Period“之间切换即可。 到目前为止,这是很好的,我们认为一切都是好的。 但后来我们在 1703 年的 17.6.5 年在 SPRUINC7C ( 标记为红色 ):

    使用向上计数模式生成非对称 PWM 时:
    •要实现 0-100%非对称 PWM、您必须在 TBPRD 上加载 CMPA/CMPB。 当 CMPA/时
    在 TBCTR=PRD 上未加载 CMPB、根据时序可能会发生边界条件
    和写入 CMPA/CMPB 的值的总和。 使用零操作来设置 PWM 和 A
    用于清除 PWM 的比较操作。 将比较值调制为 0 至 TBPRD+1 以实现
    0-100% PWM 占空比。

    图 17-27 也显示了 Set Hi on Zero。

    因此我们更改为:“Set Hi on Zero“、 “Clear Low on CMPA“和“do nothing on period“(在周期上不执行任何操作)、如图所示。 17-27.  但 HRPWM 不再正常工作。 时序出现不规则、没有子时钟分辨率、但占空比由 1 个计数器 CLK 抖动。 在重新更改为 Set Hi On Period 后、 它再次正常工作。  

    您能解释一下吗? 该注释对 HRPWM 模式无效吗? 我们是否误解了注释 17.6.5 和图 17-27 或者我们是否在初始化或反对 HRPWM 的方式上犯了错误?

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

    Daniel。

    注释指出建议运行 TRM、以实现全范围占空比控制。 您可以参阅以下示例、其中显示了其实现方式、尤其是对于加法模式计数器。 您可以查看其.sysconfig 文件、该文件适用于它为您的案例所做的配置并与您的配置相匹配。 我建议您检查此示例的每个选项卡、看看您的代码是否有任何差异、然后尝试修复。

    此致、

    Sumit

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

    Sumit,

    非常感谢您提供这一提示。 我们将对其进行检查。  

    现在没有其他的油炸玉米饼了。 非常感谢您的支持!

    Daniel

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

    Daniel、

    不用客气。 我现在将关闭该主题。 如果将来有任何问题、请随时与我们联系。

    此致、

    Sumit