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.

[参考译文] PMP23126:软件上的软件保护和 ePWM TripZone 配置

Guru**** 2434470 points
Other Parts Discussed in Thread: PMP23126, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1224010/pmp23126-software-protections-and-epwm-tripzone-configuration-at-software

器件型号:PMP23126
主题中讨论的其他器件: C2000WARE

您好!

我研究了 PMP23126软件代码。

在 PSFB_HAL_setupBoardProtection 函数中、我没有看到 BASE2跳匣区域配置。

    // What do we want the OST/CBC events to do?
    // TZA events can force EPWMxA
    // TZB events can force EPWMxB
    //
    EPWM_setTripZoneAction(base1, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW);
    EPWM_setTripZoneAction(base1, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW);
    EPWM_setTripZoneAction(base3, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW);
    EPWM_setTripZoneAction(base3, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW);

当我检查 PCMC=1情况、对于 ePWM base 2、我看到以下行。

    //
    // Trip-zone event actions
    // What do we want the CBC events to do?
    // TZAx events can force EPWMxA
    // TZBx events can force EPWMxB
    //
    EPWM_setTripZoneAdvAction(base2, EPWM_TZ_ADV_ACTION_EVENT_TZA_D,
                              EPWM_TZ_ADV_ACTION_LOW);
    EPWM_setTripZoneAdvAction(base2, EPWM_TZ_ADV_ACTION_EVENT_TZA_U,
                              EPWM_TZ_ADV_ACTION_DISABLE);
    EPWM_setTripZoneAdvAction(base2, EPWM_TZ_ADV_ACTION_EVENT_TZB_U,
                              EPWM_TZ_ADV_ACTION_LOW);
    EPWM_setTripZoneAdvAction(base2, EPWM_TZ_ADV_ACTION_EVENT_TZB_D,
                              EPWM_TZ_ADV_ACTION_DISABLE);
    EPWM_setTripZoneAction(base2, EPWM_TZ_ACTION_EVENT_TZA,
                           EPWM_TZ_ACTION_DISABLE);
    EPWM_setTripZoneAction(base2, EPWM_TZ_ACTION_EVENT_TZB,
                           EPWM_TZ_ACTION_DISABLE);

1) 1)为何 TI 不使用 以下命令行提供保护? 请详细说明。

    EPWM_setTripZoneAction(base2, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW);
    EPWM_setTripZoneAction(base2, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW);

2) 2)当我设置我 自己的 软件和自己的电路板来测试保护功能时、我观察到其中一个 ePWM2 (输出 A 或 B)不能具有单触发跳闸功能、并会继续在其输出端生成 PWM 信号。

3) 3)我不认为我理解了图18-42跳闸区域子模块模式控制逻辑。 我无法将 driverlib 函数和图表相互匹配。 你有什么建议吗?

此致。

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

    您好!

    这是 F28004x 的一个一般问题。 我可以对任何 PWM 通道(例如 ePWM2)进行编程、以便为 PCMC 操作同时触发 OST 和 CBC、并强制其输出用于 OST 和 CBC 跳闸吗?

    此致、

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

    您好,Gokhan,

    Unknown 说:
    1)为何 TI 不使用 以下代码行提供保护? 请详细说明。

    在跳闸区模块中、可以从 CBC 逻辑或 OST 逻辑生成 TZA/TZB。 在 PMP23126中、PCMC 是使用 CBC 逻辑实现的。

    TZA_D => PWMA 输出低电平

    TZA_U =>不执行任何操作

    TZB_U => PWMB 输出高电平

    TZB_U =>不执行任何操作

    如果您也要添加这些跳闸区线以实现 OCP、则会中断一些东西、因为 CBC 路径将在正常 PCMC 运行期间生成 TZA/TZB。

    TZA (计数方向递增或递减)=> PWMA 输出低电平

    TZB (计数向上或向下计数)=> PWMA 输出低电平

    明白了吗? 我编辑了下面的图表、看看它是否有助于澄清这一点。

    Unknown 说:
    2)当我设置 自己的 软件和自己的板来测试保护时,我观察到其中一个 ePWM2 (输出 A 或 B)不能有单触发跳闸功能,并继续在输出端生成 PWM 信号。[/引号]

    参见上面的说明。 您可能在跳匣区域模块中编程了冲突操作。

    Unknown 说:
    3)我不认为我理解了图18-42跳闸区域子模块模式控制逻辑。 我无法将 driverlib 函数和图表相互匹配。 您有什么建议吗?

    看看这是否有帮助。 这是 PMP23126中 PCMC 的跳闸区域配置。

    这是 OCP 的跳闸区域配置。

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

    Gus、您好!

    感谢您的努力。 我一般都理解要点。 我还有其他问题。  图18-42 确实令人困惑。

    1)  那么,对于我下面的问题,我不能同时使用 OST 和 CBC 旅行,对吗? 我只能在下图中安排一个 CBC 或 OST 旅行?

    我可以编程任何 PWM 通道,例如 ePWM2,以便为 PCMC 操作同时使用 OST 和 CBC 跳闸,并强制其输出用于 OST 和 CBC 跳闸吗?

    如果您也要添加这些跳闸区行来实现 OCP,则会中断,因为 CBC 路径将在正常 PCMC 操作期间生成 TZA/TZB [/QUO]

    您能解释一下吗?

    2) 我是否可以始终考虑如下所示的 TZA 和 TZB?  

    3) 在 PMP23126软件中、TRIPIN4用作 CBC 跳闸。 当我查看图18-42时、我显示了使 PWM 跳闸的替代路径。 根据您的解释、我认为路径2用于使 CBC 跳闸、因为您应该分配 TRIPIN4作为 CBC 跳闸。 但是、路径1需要哪些软件线路才能使用路径1呢? 它们与什么相关?

    4)  在哪种情况下、 我可以使用下图中的红框? 有很多功能可以使用。  

        4. 0.a)  我是否应该认为每当在每个跳闸情况下使用跳闸区域逻辑时、都可以使用红色框中的功能?  它们是否都可用于 OSH 和 CBC 跳闸?

            例如、当我将 TRIPIN4配置为 OSH T 时、我可以使用 DCBEVT1U 吗?

            例如、  当我将 TRIPIN4配置为 CBC T 时、我可以使用 DCBEVT1U 吗?

     

          4.b)  我认为以下行与上面的红框相关、但我可以在何时以及如何使用它。 如果需要在图12-48中填写以下行、将驱动哪条路由?  

              

        EPWM_setTripZoneAdvDigitalCompareActionA(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT2_D,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionA(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT2_U,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionA(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT1_D,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionA(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT1_U,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionB(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT2_D,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionB(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT2_U,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionB(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT1_D,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvDigitalCompareActionB(EPWM3_BASE, EPWM_TZ_ADV_ACTION_EVENT_DCxEVT1_U,
                                                 EPWM_TZ_ADV_ACTION_DISABLE);

          4.c)  DCAEVT1/2U 和 TZAU 之间的区别是什么? 我如何辨别?

    提前感谢您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1)  那么,对于我下面的问题,我不能同时使用 OST 和 CBC 旅行,对吗? 我只能在下图中安排一个 CBC 或 OST 行程?
    2) 我是否可以始终考虑如下所示的 TZA 和 TZB?  [/报价]

    这里有一个要点可能尚不清楚。 CBC 逻辑和 OST 逻辑都会生成 TZ  事件。 考虑这些 TZ 事件是 CBC 和 OST 路径末尾该 OR 门的最终输出。 这些 TZ 事件一起被"或"运算为单个 TZ 事件、然后进入跳闸逻辑。 然后、将跳闸逻辑配置为 根据该 TZ 组合 事件对 PWMA 和 PWMB 引脚执行操作。 你不能使用 OST 和 CBC 旅行相同 ,因为你需要 冲突   同一  TZ 事件上的 PWMA/B 操作 、以实现 PCMC 和 OCP。  

    下面是一个冲突示例:

    PCMC: TZB_U => PWMB 输出高电平(在向上计数期间生成 TZ 事件时进行转换、将 PWMB 输出设置为高电平)

    OST: TZB (向上计数或向下计数)=> PWMB 输出低电平(转换:当生成 TZ 事件时、计数方向无关、将 PWMB 输出设置为低电平)

    请记住、在正常运行期间、由于 PCMC 实现、CBC 逻辑将持续生成 TZ 事件(即 CMPSS1生成 TRIPIN5、数字比较模块生成 DCAEVT2、CBC 逻辑生成 TZ 事件)。 跳闸逻辑无法区分 OST 或 CBC 中的 TZ 事件、因此它应该执行哪两种相互冲突的操作?

    3) 在 PMP23126软件中、TRIPIN4用作 CBC 跳闸。 当我查看图18-42时、我显示了使 PWM 跳闸的替代路径。 根据您的解释、我认为路径2用于使 CBC 跳闸、因为您应该分配 TRIPIN4作为 CBC 跳闸。 但是、路径1需要哪些软件线路才能使用路径1呢? 它们与什么相关?

    好的、那么让我们来考虑一下这个。 CMPSS1生成 TRIPIN4、数字比较模块随后生成 DCBEVT1。 如果您使用路径1、则只能 对 PWMB 引脚执行操作、因为 DCBEVT1 信号不会进入 PWMA 跳闸逻辑(您在图中看到了吗?)。 PMP23126的软件设计人员很聪明、因为他改用了路径2。 路径2实际上是 OST 路径而不是 CBC 路径(在您的标记中错误)。 此处 DCBEVT1事件用于生成 TZ 事件、TZ 事件将进入 A 和 B 跳闸逻辑、然后可用于影响 PWMA 和 PWMB 的状态!

    4.b)  我认为以下行与上面的红框相关、但我可以在何时以及如何使用它。 如果需要在图12-48中填写以下行、将驱动哪条路由?  [/报价]
     4.c)  DCAEVT1/2U 和 TZAU 之间的区别是什么? 如何区分?

    代码 根据跳闸逻辑的任何输入来配置 PWMA 和 PWMB 的跳闸操作。 此代码的源代码可供您检查。 我向您推荐 TRM、以便获取有关所有行程操作的完整详细信息

    DCAVET1/2U:计数器递增时数字比较 A 事件1

    TZAU:计数器递增时的 CBC 或 OST 事件、PWMA 操作

    我真的希望上面的解释能够为您提供更多的澄清!

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

    您好、Gus:

    感谢您的回答。 我几乎理解了所有这些。 感谢您的努力与时间。

    您能否向我展示一些仅在上述路径1中使用 DCAEVT1.FORCE 信号(不是 CBC T 或不是 OSH T)来触发 ePWMxA 的代码片段? 我无法想象这方面的情况。  

    提前感谢您。

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

    Gokhan、

    您是否熟悉我们的 SYSCFG 工具? 如果没有、我强烈建议您尝试一下。 它可以帮助您快速为外设配置生成 C2000ware 代码。  

    https://www.ti.com/video/series/C2000-SysConfig.html

    在这里、我使用了它来为不同的 DCAEVT1事件生成跳闸操作。

    而在这里、它会在它创建的名为 board.c 文件中生成该代码

    如果您想要"高级"行程(即根据计数器的方向执行的行程)、您也可以这样做。

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

    抱歉、上次屏幕抓取已被切断。

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

    您好、Gus:

    我明白了要点。 感谢您的努力。