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:CMPSS 触发 TZ 的时序。

Guru**** 2524460 points
Other Parts Discussed in Thread: TMS320F280025

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1120360/tms320f280025-timing-of-cmpss-trigger-tz

器件型号:TMS320F280025

尊敬的团队:

我的客户使用 CMPSS 模块来检测 和比较 AD 端口电压。 检测有效后、TZ 信号被触发以关闭 PWM 输出。  他的设置如下:

CLKPRESCALE = 2,SAMWIN = 25,SYSCLK = 100M。

在上述设置之后、理论保护触发时间是否为500ns?

但是、客户测量需要1.56us。 是设置问题还是计算问题?

此致、

绿色

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

    器件型号:TMS320F280025

    使用 f280025时、我有一些问题。 请帮助我回答这些问题。我使用 cmpss 模块检测和比较 AD 端口的电压、并在检测有效后触发 TZ 波阻断。 发现保护时间与设计有很大的偏差、这是我的 cmpss 的配置。 理论保护时间为500ns、测量值为1.56us

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

    您能否对 THRESH 的值进行注释、因为这也会在输出发生变化时生效。

    此外、您能否分享您传递到 ePWM 的信号的详细信息、它是否也来自滤波器或异步等?

    最棒的

    Matthew

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

    绿色、

    客户是否确保将 THRESH 载入一个大于 SAMPWIN/2的值?  此外、他们还需要在设置好所有内容后执行 FILINT、以使其正常工作。

    最棒的

    Matthew

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

    根据您的看法、我正在查看问题

    这是我们的 cmpss--Xbar--PWM 的寄存器配置

    1. CMPSS 配置

    #define CFG_BSP_CURR_CMPSS_FILTER_CLK_PRESCAL 1.

    #define CFG_BSP_IU_CMPSS 高位 SAMPLEWINDOW   25.

    //CMPSS1-input1

       //选择 CMPHPM[object Object]SEL 的值。

       ASysCtl_selectCMPHPMUX (ASYSCTL_CMPHPMUX_SELECT_1、CFG_BSP_IU_CMPSS INPUT_NUM);

       //选择 CMPLPM[object Object]SEL 的值。

       ASysCtl_selectCMPLPMUX (ASYSCTL_CMPLPMUX_SELECT_1、CFG_BSP_IU_CMPSS INPUT_NUM);

       CMPSS_CONFIGHighComparator (CFG_BSP_IU_CMPSS_BASE、(CMPSS_INSRC_DAC));

       //设置低电平比较器的配置。

       CMPSS_CONFIGLowComparator (CFG_BSP_IU_CMPSS_BASE、(CMPSS_INSRC_DAC)| CMPSS_INV_IN倒 相);

       //设置内部比较器 DAC 的配置。

       CMPSS_CONFIGDAC (CFG_BSP_IU_CMPSS、(CMPSS_DACVAL_SYSCLK | CMPSS_DACREF_VDDA | CMPSS_DACSRC_Shdw);

       //设置高比较器的内部 DAC 值。

       CMPSS_setDACValueHigh (CFG_BSP_IU/CMPSS_BASE、2048 + CFG_BSP_IU/CMPSS_HIGH_VALUE);

       //设置低比较器的内部 DAC 的值。

       CMPSS_setDACValueLow (CFG_BSP_IU/CMPSS_BASE、2048 - CFG_BSP_IU/CMPSS_LOW_VALUE);

       // 配置高比较器的数字滤波器。

       CMPSS_CONFIGFILTERHigh (CFG_BSP_IU/CMPSS_BASE、CFG_BSP_CURR_CMPSS_FILTER_CLK_PRESCAL、CFG_BSP_IU/CMPSS_HIGH_SAMPLEWINDOW、(CFG_BSP_IU/CMPSS_HIGH_SAMPLEWINDOW / 2)+) 1U;

       //配置低比较器的数字滤波器。

       CMPSS 配置滤波器低电平(CFG_BSP_IU_CMPSS 基本输入、CFG_BSP_CURR_CMPSS 滤波器_CLK_PRESCAL、CFG_BSP_IU_CMPSS 低电平_SAMPLEWINDOW、(CFG_BSP_IU_CMPSS 低电平_SAMPLEWINDOW / 2)+);1U;

     CMPSS_initFilterHigh (CFG_BSP_IU_CMPSS_BASE);

       CMPSS_initFilterLow (CFG_BSP_IU_CMPSS_BASE);

       CMPSS_CONFIGOutputsHigh (CFG_BSP_IU_CMPSS_BASE、(CMPSS_TRIPOUT_FILTER | CMPSS_TRIP_FILTER));

       //设置低电平比较器的输出信号配置。

       CMPSS_CONFIGOutputsLow (CFG_BSP_IU_CMPSS_BASE、(CMPSS_TRIPOUT_FILTER | CMPSS_TRIP_FILTER));

       //设置比较器迟滞设置。

       CMPSS_set迟滞(CFG_BSP_IU/CMPSS_BASE、1U);

       CMPSS clearFilterLatchHigh (CFG_BSP_IU_CMPSS);

       CMPSS clearFilterLatchLow (CFG_BSP_IU_CMPSS);

       CMPSS_disableLatchResetOnPWMSYNCHigh (CFG_BSP_IU_CMPSS);

       //禁用 PWMSYNC 上低比较器数字滤波器输出锁存的复位

       CMPSS_disableLatchResetOnPWMSYNCLow (CFG_BSP_IU_CMPSS);

       //设置保持复位跳闸的 EPWM 模块消隐信号。

       CMPSS_CONFIG消 隐(CFG_BSP_IU/CMPSS_BASE、1U);

       //禁用 ePWM 消隐信号,使跳闸保持在复位状态。

       CMPSS_disableBlanking (CFG_BSP_IU_CMPSS_BASE);

       //配置数字滤波器锁存器是否由 PWMSYNC 复位

    CMPSS_CONFIGLatchOnPWMSYNC (CFG_BSP_IU_CMPSS_BASE、false、false);

     

    1. Xbar 配置

     Xbar_setEPWMMuxConfig (XBAR_TRIP4XBAR_EPWM_MUX00_CMPSS1_CTRIPH_OR_L);

       Xbar_enableEPWMMUX (XBAR_TRIP4、XBAR_MUX00);

       Xbar_setEPWMMuxConfig (XBAR_TRIP5XBAR_EPWM_MUX04_CMPSS3_CTRIPH_OR_L);

       Xbar_enableEPWMMUX (XBAR_TRIP5、XBAR_MUX04);

       Xbar_setEPWMMuxConfig (XBAR_TRIP7XBAR_EPWM_MUX02_CMPSS2_CTRIPH_OR_L);

       Xbar_enableEPWMMUX (XBAR_TRIP7、XBAR_MUX02);

       Xbar_setEPWMMuxConfig (XBAR_TRIP8XBAR_EPWM_MUX06_CMPSS4_CTRIPH_OR_L);

    Xbar_enableEPWMMUX (XBAR_TRIP8、XBAR_MUX06);

     

    1. ePWM 配置

    ePWM_setTripZoneAction (EPWM1_base、ePWM_TZ_ACT_EVENT_TZA

                              ePWM_TZ_ACT_HIGH_Z);

       // DCAH 为高电平时触发事件

       //

       ePWM_setTripZoneDigitalCompareEventCondition (EPWM1_BASE、

                                                    ePWM_TZ_DC_OUTPUT _A1

                                                    ePWM_TZ_EVENT_DCXH_HIGH);

       //

       //将 DCAH 配置为使用 TRIP4 或 TRIP5作为输入

       //

       ePWM_enableDigitalCompareTripCombinationInput (EPWM1_base、

                                                     (ePWM_DC_combinational_TRIPIN4 | ePWM_DC_combinational_TRIPIN5

                                                     |ePWM_DC_combinational_TRIPIN7 | ePWM_DC_combinational_TRIPIN8)、

                                                     ePWM_DC_TYPE_DCAH);

       //将 DCA 启用为 OST

       //

       ePWM_enableTripZoneSignals (EPWM1_base、ePWM_TZ_SIGNEL_DCAEVT1);

     

       //

       //将 DCA 路径配置为未过滤和异步

       //

       ePWM_setDigitalCompareEventSource (EPWM1_BASE、

                                         ePWM_DC_MODULE_A

                                         ePWM_DC_EVENT_1

                                         ePWM_DC_EVENT_SOURC_ORIG_SIGNAL);

     

       ePWM_setDigitalCompareEventSyncMode (EPWM1_BASE、

                                           ePWM_DC_MODULE_A

                                           ePWM_DC_EVENT_1

                                           ePWM_DC_EVENT_INPUT_NOT 已同步);

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

    您好 Matthew:

    客户表示做过、但感觉不好。 这是它们的 cmpss--Xbar--PWM 配置:

    1、CMPSS 配置:

    #define CFG_BSP_CURR_CMPSS_FILTER_CLK_PRESCAL  1
    
    #define CFG_BSP_IU_CMPSS_HIGH_SAMPLEWINDOW    25
    
    //CMPSS1-input1
    
        // Select the value for CMPHPM[object Object]SEL.
    
        ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_1,CFG_BSP_IU_CMPSS_INPUT_NUM);
    
        // Select the value for CMPLPM[object Object]SEL.
    
        ASysCtl_selectCMPLPMux(ASYSCTL_CMPLPMUX_SELECT_1,CFG_BSP_IU_CMPSS_INPUT_NUM);
    
        CMPSS_configHighComparator(CFG_BSP_IU_CMPSS_BASE,(CMPSS_INSRC_DAC));
    
        // Sets the configuration for the Low comparator.
    
        CMPSS_configLowComparator(CFG_BSP_IU_CMPSS_BASE,(CMPSS_INSRC_DAC)| CMPSS_INV_INVERTED);
    
        // Sets the configuration for the internal comparator DACs.
    
        CMPSS_configDAC(CFG_BSP_IU_CMPSS_BASE,(CMPSS_DACVAL_SYSCLK | CMPSS_DACREF_VDDA | CMPSS_DACSRC_SHDW));
    
        // Sets the value of the internal DAC of the high comparator.
    
        CMPSS_setDACValueHigh(CFG_BSP_IU_CMPSS_BASE,2048 + CFG_BSP_IU_CMPSS_HIGH_VALUE);
    
        // Sets the value of the internal DAC of the low comparator.
    
        CMPSS_setDACValueLow(CFG_BSP_IU_CMPSS_BASE, 2048 - CFG_BSP_IU_CMPSS_LOW_VALUE);
    
        //  Configures the digital filter of the high comparator.
    
        CMPSS_configFilterHigh(CFG_BSP_IU_CMPSS_BASE, CFG_BSP_CURR_CMPSS_FILTER_CLK_PRESCAL, CFG_BSP_IU_CMPSS_HIGH_SAMPLEWINDOW, (CFG_BSP_IU_CMPSS_HIGH_SAMPLEWINDOW / 2) + 1u);
    
        // Configures the digital filter of the low comparator.
    
        CMPSS_configFilterLow(CFG_BSP_IU_CMPSS_BASE, CFG_BSP_CURR_CMPSS_FILTER_CLK_PRESCAL, CFG_BSP_IU_CMPSS_LOW_SAMPLEWINDOW, (CFG_BSP_IU_CMPSS_LOW_SAMPLEWINDOW / 2) + 1u);
    
      CMPSS_initFilterHigh(CFG_BSP_IU_CMPSS_BASE);
    
        CMPSS_initFilterLow(CFG_BSP_IU_CMPSS_BASE);
    
        CMPSS_configOutputsHigh(CFG_BSP_IU_CMPSS_BASE,(CMPSS_TRIPOUT_FILTER | CMPSS_TRIP_FILTER));
    
        // Sets the output signal configuration for the low comparator.
    
        CMPSS_configOutputsLow(CFG_BSP_IU_CMPSS_BASE, (CMPSS_TRIPOUT_FILTER | CMPSS_TRIP_FILTER));
    
        // Sets the comparator hysteresis settings.
    
        CMPSS_setHysteresis(CFG_BSP_IU_CMPSS_BASE,1U);
    
        CMPSS_clearFilterLatchHigh(CFG_BSP_IU_CMPSS_BASE);
    
        CMPSS_clearFilterLatchLow(CFG_BSP_IU_CMPSS_BASE);
    
        CMPSS_disableLatchResetOnPWMSYNCHigh(CFG_BSP_IU_CMPSS_BASE);
    
        // Disables reset of LOW comparator digital filter output latch on PWMSYNC
    
        CMPSS_disableLatchResetOnPWMSYNCLow(CFG_BSP_IU_CMPSS_BASE);
    
        // Sets the ePWM module blanking signal that holds trip in reset.
    
        CMPSS_configBlanking(CFG_BSP_IU_CMPSS_BASE,1U);
    
        // Disables an ePWM blanking signal from holding trip in reset.
    
        CMPSS_disableBlanking(CFG_BSP_IU_CMPSS_BASE);
    
        // Configures whether or not the digital filter latches are reset by PWMSYNC
    
    CMPSS_configLatchOnPWMSYNC(CFG_BSP_IU_CMPSS_BASE,false,false);

    2、 XBAR 配置

    XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX00_CMPSS1_CTRIPH_OR_L);
    
        XBAR_enableEPWMMux(XBAR_TRIP4, XBAR_MUX00);
    
        XBAR_setEPWMMuxConfig(XBAR_TRIP5, XBAR_EPWM_MUX04_CMPSS3_CTRIPH_OR_L);
    
        XBAR_enableEPWMMux(XBAR_TRIP5, XBAR_MUX04);
    
        XBAR_setEPWMMuxConfig(XBAR_TRIP7, XBAR_EPWM_MUX02_CMPSS2_CTRIPH_OR_L);
    
        XBAR_enableEPWMMux(XBAR_TRIP7, XBAR_MUX02);
    
        XBAR_setEPWMMuxConfig(XBAR_TRIP8, XBAR_EPWM_MUX06_CMPSS4_CTRIPH_OR_L);
    
    XBAR_enableEPWMMux(XBAR_TRIP8, XBAR_MUX06);

    3、 ePWM 配置

    EPWM_setTripZoneAction(EPWM1_BASE, EPWM_TZ_ACTION_EVENT_TZA,
    
                               EPWM_TZ_ACTION_HIGH_Z);
    
        // Trigger event when DCAH is high
    
        //
    
        EPWM_setTripZoneDigitalCompareEventCondition(EPWM1_BASE,
    
                                                     EPWM_TZ_DC_OUTPUT_A1,
    
                                                     EPWM_TZ_EVENT_DCXH_HIGH);
    
        //
    
        // Configure DCAH to use TRIP4  OR TRIP5 as an input
    
        //
    
        EPWM_enableDigitalCompareTripCombinationInput(EPWM1_BASE,
    
                                                      (EPWM_DC_COMBINATIONAL_TRIPIN4 | EPWM_DC_COMBINATIONAL_TRIPIN5
    
                                                      |EPWM_DC_COMBINATIONAL_TRIPIN7 | EPWM_DC_COMBINATIONAL_TRIPIN8),
    
                                                      EPWM_DC_TYPE_DCAH);
    
        // Enable DCA as OST
    
        //
    
        EPWM_enableTripZoneSignals(EPWM1_BASE, EPWM_TZ_SIGNAL_DCAEVT1);
    
     
    
        //
    
        // Configure the DCA path to be unfiltered and asynchronous
    
        //
    
        EPWM_setDigitalCompareEventSource(EPWM1_BASE,
    
                                          EPWM_DC_MODULE_A,
    
                                          EPWM_DC_EVENT_1,
    
                                          EPWM_DC_EVENT_SOURCE_ORIG_SIGNAL);
    
     
    
        EPWM_setDigitalCompareEventSyncMode(EPWM1_BASE,
    
                                            EPWM_DC_MODULE_A,
    
                                            EPWM_DC_EVENT_1,
    
                                            EPWM_DC_EVENT_INPUT_NOT_SYNCED);

    此致、

    绿色

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

    绿色、

    我将需要另外一天来更仔细地研究这个问题。  感谢您的耐心等待。

    最棒的

    Matthew

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

    Tony、

    我认为这篇文章和 TI 员工的另一篇文章涉及同一个问题。  您能告诉我这是否相同、我将合并线程吗?

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1120360/tms320f280025-timing-of-cmpss-trigger-tz

    最棒的

    Matthew

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

    降级器、

    是否有任何更新? 谢谢!

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

    是的、你是对的!

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

    Tony、

    您能否在下面的 TBCTL 寄存器中对 CLKDIV 的值进行注释?  TRIP 信号将在3TBCLK 后锁存、但如果这里设置了分频器、它将增加跳闸时间。

    如果缺省值为"0"= div/1、那么我们应该只需要30ns (SYSCLK*3)来锁存 CMPSS 信号。

    最棒的
    Matthew

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

    默认情况下、我始终设置它。 请给我您的电子邮件、我们将再次向您发送电子邮件。 谢谢!

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

    Tony、

    我将向您发送一个私人聊天请求、我们可以从那里获取。

    最棒的

    Matthew

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

    请向我提供您的电子邮件。 通过电子邮件进行通信应该更方便。 谢谢!