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.

[参考译文] TMS320F28377S:TMS320F28377S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1192123/tms320f28377s-tms320f28377s

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARESysConfig

使用 TMS320F28377SPTPT、我需要生成多个高分辨率 ePWM (精确到八个、但我将在这里的查询中使用两个)。 这些电压必须以不同的角度相互相移、这些角度不是固定的、而是根据电路参数动态变化。 例如、每当输入和输出电压发生变化时、每个 PWM 将打开的时间都会发生变化。

 TI 说明了不同的固定相移情况(例如0、120、240度)、但我无法将其应用于动态变化的相移。 请帮助您了解如何在 T1 (秒)时切换 PWM1、在 T2 (秒)时切换 PWM2。 下图显示了 PWM 在其开关实例(时间、角度或计数)上的情况。 Accompning 代码可能会有所帮助。

                                              

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

    您好、Olutayo、

    您是否有机会查看使用 HRPWM 的不同 C2000Ware 示例?  

    最棒的

    Ryan Ma

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

    您好、Ryan、  

    感谢您的回答。 我提到我已经尝试过这些示例。 我看到的任何一个都不使用该变量或动态变化的相移。 请提供建议。

    此致、  

    奥卢特约  

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

    您好、Olutayo、

    借助 HRPWM 支持、应该能够动态改变相移。 您所需的开关频率是多少? 您想要更改相移值的事件是什么?  

    我的建议是在不支持 HRPWM 的情况下设置您的 ePWM 信号、并测试您的相移值是否更新。 运行后、您可以启用 HRPWM 支持。 这 是一个可以 在您切换到 HRPWM 支持后提供帮助的线程。

    此致、

    Ryan Ma  

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

    您好、Ryan、

    感谢您的反馈和建议。  

    首先、正如您的同事通过以下主题编写的、synconfig 不适用于2837xS 系列:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1175564/tms320f28388d-error-with-new-ccs-project-using-syn-cfg/4437019?tisearch=e2e-sitesearch&keymatch=%2520user%253A545039#4437019。

    引用您同事的回答"Hi Olutayo、
    如 Vince 所述,  CCS 和"ccs1200\ccs\ccs_base\con\targetdb\devices"路径下的器件 XML 文件存在问题,这会导致开关操作失败。
    我们将在下一版 C2000Ware 中提供一个空项目、其中包含可用于 F2837xs 的.syscfg 文件。
    此致
    西达尔特"

    其次、让 ePWM 与动态相移一起工作是高分辨率 PWM 的问题。 同样、我认为您无法获得我所说的动态相移。 对于更透明的情况、请考虑 pwm1相移从 pwm2 x 度。 该 x 度不是固定的、但在我的转换器运行期间可能会发生变化、具体取决于输入和输出电压。 在固定相移的情况下、我们可以计算与角度和角度输入等效的计数。 那么、如何实现动态变化的临时措施? 您提供的线程无法帮助、原因有两个:我不使用 synconfig (它甚至不适用于28377xS)、它不处理动态变化的角度或相移。 请帮助

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

    您好、Olutayo、

    很抱歉、我在 CCS 中对2837xS 的 SysConfig 支持错误。

    您是否要根据转换器工作的输入/输出电压更改相移值? 您如何比较这些值、您是否使用 CMPSS? 您是否在 PWM 周期或每个 ePWM 时钟周期结束时尝试更新这些相移值?

    如果 TBCTL[PHSEN]位置位、那么当发生以下任一情况时、ePWM 模块的时基计数器(TBCTR)将自动加载相位寄存器(TBPHS)的内容

     EPWMxSYNCI:同步输入脉冲:

     2.软件强制同步脉冲:

    3. 数字比较事件同步脉冲:(对于您的应用程序来说,这似乎是更合理的解决方案,用于处理 ex CMPSS 事件)

    我假设您尝试执行的操作包括:

    PWM1 TBPHS = x

    PWM2 TBPHS = x + 120

    您希望为每个 PWM 模块更新 x (下图以红色显示)。 我相信您需要使用数字比较事件同步脉冲来了解 CMPSS 事件的发生时间、以便您可以更新 TBPHS 寄存器。

    最棒的

    Ryan Ma

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

    尊敬的 Ryan、

    没问题、感谢您的帮助。

    现在、 每当变量输入电压 v1、 输出电压 v2和(或)输出功率 P 发生变化时、 每个 PWM 都会获得一个新值(由我的代码计算)。

    正如我提到的、有四个互补离子对可供控制。 第一个互补对从0度相移开始、而其他对从第一个对以不同角度进行相移、这些角度不固定、但取决于根据变量计算得出的值。 每次任何或所有变量发生变化时、每个 PWM 对都将获得基于新变量 v1计算的新相移、 V2和 P。无需比较变量、除非每次变量值出现变化时、必须将相移更新为计算得出的新值。  因此、我希望自动加载或更新新的相移。  

    但是、您似乎建议了以下条件之一来更新相移:

     EPWMxSYNCI:同步输入脉冲:

     2.软件强制同步脉冲:

    3. 数字比较事件同步脉冲:(这似乎是您的应用的更合理的解决方案

    根据我的新解释、这是正确还是适用的? 如果是、 该如何完成?

    此致、  

    奥卢特约  

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

    正确、您可以根据我们 TRM 中的多个条件使用这三种方案中的任何一种来更新您的 TBPRD。

    这可以通过几种方法完成、正如我在上一篇文章中尝试解释的那样。 但您似乎需要它  

    [引用 userid="545039" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1192123/tms320f28377s-tms320f28377s/4495083 #4495083"]每次变量值出现变化时,必须将相移更新为计算得出的新值。

    您可以创建一个中断、以便在每次更新变量时设置软件强制同步。

    这可以通过使用 TBCTL[SWSYNC]寄存器并确保启用 TBCTL[PHSEN]位来完成。 如果您想使用 driverlib、这些函数的 driverlib 函数是  

    EPWM_enablePhaseShiftLoad(myEPWM0_BASE); //TBCTL[PHSEN]
    EPWM_setPhaseShift(myEPWM0_BASE, 20);
    EPWM_forceSyncPulse(myEPWM0_BASE); // (TBCTL[SWSYNC])

    这是否有助于引导您朝着正确的方向前进?

    如果您需要一些资源来了解有关 ePWM 及其子模块的更多信息、这里有一些很棒的视频、这些视频应该会详细介绍同步以及周期如何根据特定事件得到反映。

    https://training.ti.com/c2000-enhanced-pulse-width-modulator-epwm-time-base-submodule?context=1137766-1149551-1149545

    我还附上了两份指南,可作为设置指南的参考。

    1、 相移全桥直流/直流电源转换器设计指南: https://www.ti.com/lit/ug/tidu248/tidu248.pdf

     2.《C2000 ePWM 开发人员指南》: www.ti.com/.../sprad12.pdf

    这里也是我们的在线培训学院、它非常有用

    1. C2000 Academy: dev.ti.com/.../node

    最棒的

    Ryan Ma

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

    谢谢 Ryan。

    从您的 Web 上可以看到、2837xS SysConfig 空项目现已可用。 我已导入其中一个、但在尝试打开 C2000.syscfg 文件时出现以下错误:

    为了解决此问题、我通过错误信息最后一行中的链接下载了 SysConfig 1.15.0版。 但它并未消除该错误。 从下面的空项目的属性可以看出、它内置了1.14.0版本。 请提供解决此问题的线索。

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

    您好、Ryan、  

    我通过更新工程属性中的 SysConfig 来解决该问题。 我现在将其应用于动态相移配置(这是这里的主要问题)、并随时向您通报进度。

    此致、

    奥卢特约。

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

    听起来不错、如果 ePWM 有任何问题、请创建单独的线程。 现在、我要将其标记为已解决。

    最棒的

    Ryan Ma