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:关于使用 MotorControl_SDK 时 HAL_setupMtrFaults 函数问题

Guru**** 2457760 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1506949/tms320f280025-regarding-the-issue-of-the-hal_setupmtrfaults-function-when-using-the-motorcontrol_sdk

器件型号:TMS320F280025

工具/软件:

专家、您好:
在使用 MotorControl_SDK 的过程中、当我读取 void HAL_setupMtrFaults (HAL_MTR_handle handle)时、会出现以下问题:

//enable DC TRIP combinational input
EPWM_enableDigitalCompareTripCombinationInput(obj->pwmHandle[cnt],
MTR1_DCTRIPIN, EPWM_DC_TYPE_DCAH);

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

上述代码启用直流模块、使用 DCAH 和 DCBH、并连接到 TRIP7通道。 不过:

// Trigger event when DCAH is High
EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
EPWM_TZ_DC_OUTPUT_A1,
EPWM_TZ_EVENT_DCXH_HIGH);

// Trigger event when DCBH is High
EPWM_setTripZoneDigitalCompareEventCondition(obj->pwmHandle[cnt],
EPWM_TZ_DC_OUTPUT_B1,
EPWM_TZ_EVENT_DCXL_HIGH);


尽管上述代码的注释部分表明事件是在 DCAH 和 DCBH 分别设置为高电平时生成的、但第二个函数中使用的宏定义实际上是 EPWM_TZ_EVENT_DCXL_HIGH。 这是个拼写错误吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    第二个函数确实是 EPWM_TZ_EVENT_DCXL_HIGH。 这是一个拼写错误吗?

    否、L 表示 PWM DACnL 的低侧、H 是 PWM DACnH 的高侧、模拟2个 DAC、每个 PWM 模块4个输入。 这两个跳闸区事件都是单触发(H/L)类型(1)或 CBC 类型2事件、对来自 CMPSS 或 PWM XBar GPIO 输入的特定信号状态做出响应、也取决于 XBar 多路复用器配置 一致认为需要保持一致的命名约定。 几个月后,你再看看代码,这就像地球上正在发生的事情。 用户可以在现有备注中添加、TRM 页码也会在以后提醒您(:-)。

    即使您添加的注释也可能令人困惑、不得不实际打开 TRM 刷新存储器。

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

    嗨、Genatco
    非常感谢您的回答、但我更加困惑。 我不知道我是否不清楚地表达自己。
    //当 DCBH 为高电平时触发事件
    EPWM_setTripZoneDigitalCompareEventCondition (obj->pwmHandle[CnT]、
    EPWM_TZ_DC_OUTPUT_B1、
    EPWM_TZ_EVENT_DCXL_HIGH);
    在上述代码中、注释中提到了该代码
    //当 DCBH 为高电平时触发事件
    但该函数中调用的是 EPWM_TZ_EVENT_DCXL_HIGH。 这是正确的吗? 是否应该是 EPWM_TZ_EVENT_DCXH_HIGH?

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

    刘燕:

    这是 A1下的输出、当 B1 (L)输出状态为高电平时(而不是为低电平时)发生 Tz 事件。 您可以选择哪个状态来设置跳闸事件 H 或 L。高基准和低基准(H/L)也是实现电路可视化的简单方法。 用于功率 MOSFET 的逆变器高侧或低侧栅极驱动器。 宏语法中的放置逻辑从左到右读取、最终 Tz 事件状态为最后状态。

    因此、DCXH_将 A1 (XH_)的 PWMx 寄存器 Tz 二进制位设置为高电平状态_HIGH。  EVENT_DCXL 是发生器 B1低侧的二进制寄存器位。 要检查寄存器位是否正确、请在通过 XDS110探针应用程序加载到闪存中连接 LaunchXL 后进入 CCS 调试。

    检查 x25 TRM 的直流子模块。 但应该非常相似。 事件:1=单触发、2=逐周期  

              B1低直流                             A1高 DC

      

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

    "你在说什么啊,我也不会怪你的。"  我想你绝对不明白我也要问什么

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

    上图用于透视直流事件电路中发生的情况。 看起来应该是 DCXH、而不是 DCXL。它们确实应该更改 DCA_EVENT1或 DCB_EVENT2 跳闸区域的宏名称1A/1B 或2A/2B。 DC-A/B 与 PWM A/B 输出动作限定符直接相关。 另一点是对高侧强制 DC_EVENT_1A 和对低侧强制 DCEVENT_1B 为单触发式 或 CBC、具体取决于您在动作限定符中设置的上述电路的哪一部分。  

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

    感谢您的耐心解释。 我的理解与您的理解一致:尽管由 DCBH 通道触发的 DCBEVT2可能看起来配置不正确、但只要 DCAEVT1可以确保 ePWAxA 被正确停用(或保持低电平)、并且鉴于 ePWMxB 配置为与 ePWAxA 保持互补、这将导致逆变器的上臂在下臂激活时关闭。 这种行为在实际应用中似乎在功能上合理。

    在任何情况下,我感谢您的详细答复!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这将导致在激活下臂时逆变器的上臂被关闭。 这种行为在实际应用中似乎在功能上是合理的。

    似乎电机在这种情况下变成制动器。 选择高阻抗并让半桥输入电阻器将栅极信号下拉至两侧可能更好。 然后、您需要使用发电机为电池充电、并滑行速度降至零。感谢您的患者、设置 CMPSS MUX 选择 H/L 时、这个宏名称甚至更加令人困惑