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:通过 CBC 跳闸进行设置

Guru**** 2695575 points

Other Parts Discussed in Thread: PMP23338

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1589060/tms320f28p650dk-setting-by-cbc-trip

器件型号: TMS320F28P650DK
主题: PMP23338 中讨论的其他器件

您好:

 

我需要设置基于 CMPSS 到 ePWM 的 CBC 跳闸。 我遇到了以下信息:

1.我们可以使用 DCAEVT2/DCBEVT2 作为 CBC 的源、因为 CMPSS 没有直接连接到 ePWM。

我使用以下 driverlib 调用将 CMPSS 设置为 XBAR_TRIP2 的源代码。 因为它是双向的、同时使用 H 和 L 跳变阈值。

    /*XBAR 跳闸 2 上的 CBC 跳闸*/
    XBAR_setEPWMMuxConfig (XBAR_TRIP2、XBAR_EPWM_MUX00_CMPSS1_CTRIPH);
    XBAR_setEPWMMuxConfig (XBAR_TRIP2、XBAR_EPWM_MUX01_CMPSS1_CTRIPL);

    XBAR_enableEPWMMux (XBAR_TRIP2、XBAR_MUX00 | XBAR_MUX01);
 
/*以下内容在 DCAEVT2 和 DCBEVT2*/上设置 EPWM 跳闸操作
  EPWM_setTripZoneAction (BASE、EPWM_TZ_ACTION_EVENT_DCAEVT2、 EPWM_TZ_ACTION_LOW);
  EPWM_setTripZoneAction (BASE、EPWM_TZ_ACTION_EVENT_DCBEVT2、 EPWM_TZ_ACTION_LOW);
 
/*CBC 在 ePWM TB CTR = zero*/时被清除
EPWM_selectCycleByCycleTripZoneClearEvent (BASE、EPWM_TZ_CBC_PULSE_CLR_CNTR_ZERO);
 
/*选择 DCB EVT*/的行程来源
EPWM_selectDigitalCompareTripInput (BASE、EPWM_DC_TRIP_TRIPIN2、EPWM_DC_TYPE_DCBH);

我们是否遗漏了一些东西?

了解同时启用 OSHT 和 CBC 跳闸所需的寄存器和 driverlib 函数会非常有用。

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

    我使用 syscfg 工具生成一个示例。 目的是将 DCAEVT1 用于 OSHT 跳闸、将 DCAEVT2 用作 CBC 跳闸。


    /*启用 DCAEVT1/2*/
      EPWM_enableTripZoneSignals (myEPWM0_BASE、EPWM_TZ_SIGNAL_DCAEVT1);    
      EPWM_enableTripZoneSignals (myEPWM0_BASE、EPWM_TZ_SIGNAL_DCAEVT2);  

    /*在期间清除 CBC */
      EPWM_selectCycleByCycleTripZoneClearEvent (myEPWM0_BASE、EPWM_TZ_CBC_PULSE_CLR_CNTR_PERIOD);  

    问题:/*如果我们不需要将其从 CPU 路由出来、这是否必要?*/
      EPWM_enableTripOutSource (myEPWM0_BASE、EPWM_TZ_TRIPOUT_OST);  

    /*为 DCAL 源使用跳闸 IN2 来生成 DCAEVT2 */   
      EPWM_selectDigitalCompareTripInput (myEPWM0_BASE、EPWM_DC_TRIP_TRIPIN2、EPWM_DC_TYPE_DCAL);    

    /*事件为高电平活动*/
      EPWM_setTripZoneDigitalCompareEventCondition (myEPWM0_BASE、EPWM_TZ_DC_OUTPUT_A1、EPWM_TZ_EVENT_DCXH_HIGH);    
      EPWM_setTripZoneDigitalCompareEventCondition (myEPWM0_BASE、EPWM_TZ_DC_OUTPUT_A2、EPWM_TZ_EVENT_DCXL_HIGH);    

    问:/*这是必要的,因为 CBC 是以上设置? DC 模块中的事件可能是肯定的。 这是否可能导致跳闸锁存 2 个周期*/
      EPWM_setDigitalCompareCBCLatchMode (myEPWM0_BASE、EPWM_DC_MODULE_A、EPWM_DC_EVENT_2、EPWM_DC_CBC_LATCH_ENABLED);

    /* CMPSS 至 XBAR*/

    void myEPWMXBAR0_init (){
         
      XBP_setEPWMMuxConfig (myEPWMXBAR0、XBAR_EPWM_MUX00_CMPSS1_CTRIPH);
      XBP_setEPWMMuxConfig (myEPWMXBAR0、XBAR_EPWM_MUX01_CMPSS1_CTRIPL);
      XBar _enableEPWMMux (myEPWMXBAR0、XBAR_MUX00 | XBAR_MUX01);
    }
    void myEPWMXBAR1_init (){
         
      XBP_setEPWMMuxConfig (myEPWMXBAR1、XBAR_EPWM_MUX02_CMPSS2_CTRL.h);
      XBP_setEPWMMuxConfig (myEPWMXBAR1、XBAR_EPWM_MUX03_CMPSS2_CTRIPL);
      XBar _enableEPWMMux (myEPWMXBAR1、XBAR_MUX02 | XBAR_MUX03);
    }

    void myEPWMXBAR0_init ();
    #define myEPWMXBAR0 XBAR_TRIP1
    #define myEPWMXBAR0_ENABLE_MUXS (XBAR_MUX00 | XBAR_MUX01)
    void myEPWMXBAR1_init ();
    #define myEPWMXBAR1 XBAR_TRIP2
    #define myEPWMXBAR1_ENABLED 多路复用器 (XBAR_MUX02 | XBAR_MUX03)

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

    嗨、Jay

    请参阅数字电源 SDK 的 pmp23338 设计。 此设计具有经过测试的 CBC 和 OST 保护设置。 如果您仍有问题、敬请告知。

    谢谢你  

    Amir Hussain