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.

[参考译文] TMS320F28P650DK:跳闸区信号问题

Guru**** 2529560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1551899/tms320f28p650dk-tripzone-signal-issues

器件型号:TMS320F28P650DK


工具/软件:

您好、

我考虑在许多不同的 EPWM 基础 (9) 上实现 GPIO 控制的跳闸区触发信号来执行。 我想执行 CBC 跳闸区信号、这样我就能够在故障期间打开和关闭门控信号、而不会重置任何标志(避免 OST)。 这是我目前拥有的。

我已将 GPIOx 配置为输出引脚、并将其作为 XBAR_TRIP1 通过 XBAR 路由到 EPWM XBAR

  XBar setInputPin (INPUTXBAR_BASE、XBAR_INPUT11、TRIPZONE_GPIO_PIN);
  XBAR_setEPWMMuxConfig (XBAR_TRIP1、XBAR_EPWM_MUX25_INPUTXBAR1_INPUT11);
  XBAR_clearInputFlag (XBAR_INPUT_FLG_INPUT11);
  XBAR_enableEPWMMux (XBAR_TRIP1、XBAR_MUX25);
然后在设置过程中为每个 EPWM 基础调用此函数
configEPWMTripZone (EPWMx_base);
  /*将 XBAR 输入 11 连接到直流跳闸事件 GPIO 以在跳闸时变为高电平*/
  EPWM_selectDigitalCompareTripInput (epwmbase、EPWM_DC_TRIP_TRIPIN1、EPWM_DC_TYPE_DCAH);
  EPWM_setTripZoneDigitalCompareEventCondition (epwmbase、
      EPWM_TZ_DC_OUTPUT_A1、EPWM_TZ_EVENT_DCXH_HIGH);
  EPWM_setDigitalCompareEventSource (epwmbase、EPWM_DC_MODULE_A、EPWM_DC_EVENT_1、
      EPWM_DC_EVENT_SOURCE_ORIG_SIGNAL);
  EPWM_setDigitalCompareEventSyncMode (epwmbase、EPWM_DC_MODULE_A、EPWM_DC_EVENT_1、
      EPWM_DC_EVENT_INPUT_Synchronous);
  
  /*跳闸时的操作 A — 低 B — 低*/
  EPWM_setTripZoneAction (epwmbase、
              EPWM_TZ_ACTION_EVENT_TZA、
              EPWM_TZ_ACTION_LOW);
  EPWM_setTripZoneAction (epwmbase、
              EPWM_TZ_ACTION_EVENT_TZB、
              EPWM_TZ_ACTION_LOW);

  /*清除并启动跳闸区*/
  EPWM_enableTripZoneSignals (epwmbase、EPWM_TZ_SIGNAL_CBC1);

  /* CBC 允许根据输入 DCEVTA */切换 TZ
  EPWM_setDigitalCompareCBCLatchMode (epwmbase、EPWM_DC_MODULE_A、EPWM_DC_EVENT_1、
        EPWM_DC_CBC_LATCH_DISABLED);
  EPWM_selectCycleByCycleTripZoneClearEvent (epwmbase、
        EPWM_TZ_CBC_PULSE_CLR_CNTR_ZERO);
  ePWM_clearTripZoneFlag (epwmbase、ePWM_TZ_FLAG_DCAEVT1);
跳闸区似乎仅在前两个基地工作,我称之为 BASE1 和 BASE2。 但是、对于其余基底、似乎可以正确地触发 ePWMA 线路上的操作、但当我使用 GPIO 引脚触发此操作时、ePWMB 仍会运行。 我有关于如何解决此问题的几个问题。
1.一个跳闸信号能否跳闸所有 ePWM 模块? 这些 TRIP1-6 是否专门与特定底座相连? 我目前正在使用 TZ1 执行我的所有操作。
2.当我手动将 GPIO 拉高时、我可以在基底和不起作用的基底中看到 TZFLG 寄存器中的 DCAEVTA 被锁存、但它不会为剩余的 7 个基底触发 ePWMB 的事件。
3.死区模块是否会对行程产生任何影响? 我在每个 ePWM 模块中都使用该参数来生成具有设定死区时间的补充文件
关于如何进一步调试这将是很好的建议! 此功能一直参考 EPWM_EX7 边沿滤波器。
谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ayden:

    1) ePWM X-BAR 的跳闸不会连接到特定的 ePWM;可以在每个 ePWM 模块上路由/启用相同的跳闸源。

    2) 如果您更喜欢使用 TZ1 引脚作为一切事物的 CBC 源、请通过输入 X-BAR 将 GPIO 直接路由到 TZ1、并在所有 ePWM 上启用 EPWM_TZ_SIGNAL_CBC1(在这种情况下不需要直流路径)。
    如果您需要 CBC Via Digital Compare、请启用 DC 事件。 现在、您启用 EPWM_TZ_SIGNAL_CBC1、它对应于 TZ1 引脚跳闸。 但您的代码通过数字比较路径创建 DCAEVT1。

    3) 死区设置不会阻止跳闸操作;它们只会形成正常的边沿时序。

    希望这对您有所帮助!
    Masoud