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.

[参考译文] TMS320F280025:使用 MotorContorl_SDK 配置 CMPSS 模块时的一些问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1507092/tms320f280025-some-issues-when-configuring-the-cmpss-module-when-using-the-motorcontorl_sdk

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

工具/软件:

专家、您好:

当我使用 MotorControl_SDK 时、我发现了与 CMPSS 模块配置相关的问题:

我们通过 ePWM X-BAR 将 CMPSS1和 CMPSS3路由到 TRIP7、并通过 ePWM 的直流子模块将 TRIP7路由到 DCAH 和 DCBH、如以下代码所示:

        EPWM_enableDigitalCompareTripCombinationInput(obj->pwmHandle[cnt],
                                              MTR1_DCTRIPIN, EPWM_DC_TYPE_DCAH);

        EPWM_enableDigitalCompareTripCombinationInput(obj->pwmHandle[cnt],
                                              MTR1_DCTRIPIN, EPWM_DC_TYPE_DCBH);

根据 CMPSS1和 CMPSS3之前的相关配置、可以知道、如果 U/V/W 三相存在过流情况(其中 U 相仅检测 正过流、W 相仅检测负过流、V PHASE 同时检测正负双向过流)、则 CMPSS1和 CMPSS3、CTRIPH 和 CTRIPL 的输出都将输出高电平。 这意味着 DCAH 和 DCBH 都将获得高电平。 (问题1:这一点是否正确?)

然后、下一步是配置 ePWMxA 事件、即当 DCAH 显示高电平时、触发 DCAEVT1 (如下图所示)。

此时的代码为:

        EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
                                                     EPWM_TZ_DC_OUTPUT_A1,
                                                     EPWM_TZ_EVENT_DCXH_HIGH);

这样、宏定义 EPWM_TZ_EVENT_DCXH_HIGH 意味着当 DCAH 为高电平时、DCAEVT1被触发、从而生成保护信号。 (问题2:这一点是否正确?)

但是、问题在于 ePWMxB 的配置、因为我们之前已经将 TRIP7路由到 DCBH。 根据相同的逻辑、当 DCBH 处于高电平时、是否应触发 DCBEVT1 (如下图所示)?

但是、此时的代码确实表示为:

        EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
                                                     EPWM_TZ_DC_OUTPUT_B1,
                                                     EPWM_TZ_EVENT_DCXL_HIGH);

宏定义 EPWM_TZ_EVENT_DCXL_HIGH 似乎意味着、当 DCHL 处于高电平时、会生成 DCBEVT1事件。 不幸的是、我们没有将 TRIP7路由到 DCHL。

问题3:此处的问题发生在哪里? 例程中是否错误使用了宏定义 EPWM_TZ_EVENT_DCXL_HIGH?

此外:

我检查了 F280025例程的 SysConfig 版本、并找到了相同的配置、如下图所示:

如果根据 SysConfig 版本进行配置、则数字比较 B 低电平会路由到 TRIP1、TRIP1与 TZ1相同。 TZ1连接至 INPUTXBAR1、该器件是 nFAULT 引脚。

但是、nFAULT 引脚在低电平时有效、这意味着它在正常情况下处于高电平。 因此、根据 SysConfig 中的配置、DCBL 将始终处于较高的级别。 这是合理的吗?

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

    您好:

    问题1: 是的、这一点是正确的。

    - CMPSS1配置为检测 U 相(仅正)和 V 相(双向)中的过流。
    - CMPSS3配置为在 W 相(仅负)和 V 相(双向)中检测过流。
    -如果 U/V/W 三相存在过流情况, CMPSS1和 CMPSS3都会检测到过流并在各自的输出 CTRIPH  和 CTRIPL 上输出高电平。
    由于 CTRIPH 和 CTRIPL 都路由到 TRIP7、TRIP7路由到 DCAH 和 DCBH、DCAH 和 DCBH 都将接收高电平信号。
    因此、如果 U/V/W 三相存在过流情况、DCAH 和 DCBH 都将确实获得高电平信号、如您所述。

    问题2:是的、这一点是正确的。

    -宏定义 EPWM_TZ_EVENT_DCXH_HIGH 用于配置 ePWMxA 模块、以便在 DCAH 信号处于高电平时触发事件。
    -在代码中, EPWM_TZ_EVENT_DCXH_HIGH 用于设置 DCAEVT1的事件触发器,这意味着当 DCAH 为高电平时,将触发 DCAEVT1。

    问题3:  

    根据您提供的信息、您似乎已将 ePWMxB 模块配置为在 DCBH 处于高电平时触发事件。 但是,代码使用宏定义 EPWM_TZ_EVENT_DCXL_HIGH,这意味着当 DCHL 处于高水平时触发事件,而不是 DCBH。  要解决此问题、您应使用与 DCBH 而不是 DCHL 相对应的正确宏定义。

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

    您好、专家
    非常感谢您对患者的回答。
    前面提到的代码是我从 MotorControl_SDK 复制的、没有进行任何修改。 这是否意味着例程中的配置存在错误?


    顺便说一下:

            EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
                                                         EPWM_TZ_DC_OUTPUT_B1,
                                                         EPWM_TZ_EVENT_DCXL_HIGH);

    此代码似乎不起作用、因为在之前的配置中、TRIP7连接到 DCBH 而不是 DCBL。 因此、将 DCBEVT1的触发事件配置为 DCBL 也不起作用。 这种理解是否正确?

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

    您好、Yan、

    您能给我提供电机控制 SDK 示例的存储库或名称吗?  

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

    尊敬的 Stevan:

    示例的路径为:

    D:\ti\c2000\C2000Control_SDK_5_04_00_00\solutions\universal_motorcontrol_lab\f28002x Ware_Motor

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

    感谢您的答复、Yan。 让我向相关专家介绍一下该实验、看看他们是否提供了有关数字比较配置的更多详细信息。

    此致、

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

    感谢您的答复。 如果有任何最新进展、请告诉我

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

    尊敬的 Stevan:

    我是否可以询问、关于 MotorControl_SDK 的这个相关问题是否有新进展?

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

    您好、Yan、

    您可以参考下面支持 syscfg 的工程、并使用与通用电机实验相同的方案进行过流(基于 CMPSS)跳闸。

    C:\ti\c2000\C2000Control_SDK_5_04_00_00\solutions\universal_servo_drive Ware_Motor

    EPWM 配置:

    EPWMXBAR:

    此致、

    Kevin