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.

[参考译文] TMS320F280048-Q1:强制 TripZoneEvent 和初始关闭 PWM

Guru**** 2435620 points
Other Parts Discussed in Thread: PMP23126

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1254184/tms320f280048-q1-force-tripzoneevent-and-initial-turn-off-pwms

器件型号:TMS320F280048-Q1
主题中讨论的其他器件:PMP23126

您好!

1) 1)在基于 PCMC 且基于 PMP23126设计的 PSFB 转换器中、 我在初始启动序列中使用以下行来关闭 PWM 门控信号。 然后我清除 PWM、以便使用它们。

EPWM_forceTripZoneEvent(EPWM1_BASE, EPWM_TZ_FORCE_EVENT_OST);
EPWM_forceTripZoneEvent(EPWM2_BASE, EPWM_TZ_FORCE_EVENT_OST);
EPWM_forceTripZoneEvent(EPWM3_BASE, EPWM_TZ_FORCE_EVENT_OST);

PWM1和 PWM3工作正常、但 PWM2A 或 PWM2B 未关闭。 如何解决此问题?

2) 2)在电路板的初始启动时、我想初始化 PWM、但在示波器上看不到任何 PWM 信号。 我按照 PMP23126并按顺序进行了应用。 但是、它们会瞬间开启、随后在启动期间立即关闭。 (我的问题是1、PWM2A 或 PWM2B (其中一个)始终提供 PWM 信号)

禁用 PWMCLKCounting

内联

强制 TripzoneEvent 用作 OST

EnablePWMCLKCounting (启用 PWMCLK[启用])

将引脚设置为 PWM

提前感谢。

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

    尊敬的 Gokhan:

    您能否在所列的每种配置(启用 PWM 时钟、将引脚设置为 PWM 等)之间设置一个断点、并在示波器上设置触发器以确认何时发生与代码相关的输出干扰?

    a.k.a.您能否确定在启用 PWMCLKCounting 后是否立即发生干扰、或者直到将引脚配置为 PWM?

    谢谢!

    卢克

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

    Luke、您好!

    在这条线之后、PWM 波形开始生成、PWM 的波形如下所示。 它们都变高了。

        PSFB_setPinsAsPWM();            // safe to setup PWM pins
        
        void PSFB_setPinsAsPWM(void)
    {
    
        // GPIO0    - O_UC_PWM_L1H
        // GPIO1    - O_UC_PWM_L1L
        // GPIO0 is the PWM1A pin.
        // GPIO1 is the PWM1B pin.
        GPIO_setPinConfig(GPIO_0_EPWM1_A);
        GPIO_setPadConfig(0, GPIO_PIN_TYPE_STD);
        GPIO_setQualificationMode(0, GPIO_QUAL_ASYNC);
        GPIO_setDirectionMode(0, GPIO_DIR_MODE_OUT);
        GPIO_setMasterCore(0, GPIO_CORE_CPU1);
    
        GPIO_setPinConfig(GPIO_1_EPWM1_B);
        GPIO_setPadConfig(1, GPIO_PIN_TYPE_STD);
        GPIO_setQualificationMode(1, GPIO_QUAL_ASYNC);
        GPIO_setDirectionMode(1, GPIO_DIR_MODE_OUT);
        GPIO_setMasterCore(1, GPIO_CORE_CPU1);
    ....


    你还能评论一下我的第一个问题吗?

    提前感谢。

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

    您好,Gokhan,

    我看到这个帖子、想要评论。  

    Unknown 说:
    PWM1和 PWM3工作正常、但 PWM2A 或 PWM2B 不能关闭。 如何解决此问题?

    您能否指出哪个 PWM 用作相移 PWM? 该 PWM 将从 PCMC 比较器获取跳闸输入、因此将使用 CBC 跳闸。 在这种情况下,不可能也使用 OST 跳闸。 我想我们已经在另一个主题中讨论了这一点。 另外、您为 PWM2A 和 PWM2B 配置了哪些跳闸区操作?

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

    您好、Gus:

    感谢您的回复。  很抱歉重复同一个问题。 我在你提醒后还记得。

    PWM1是主控的、PWM2是受控的。 PWM2使用 CBC、不采用任何 OST。 在 PWM2是否有其他方法使用 OST?

    绿色是我的 PWM2、其他是 PWM1。 如何解决 PWM 的初始开启问题?

    PWM2触发区操作如下所示。

        EPWM_selectCycleByCycleTripZoneClearEvent(EPWM2_BASE,
                                                  EPWM_TZ_CBC_PULSE_CLR_CNTR_ZERO_PERIOD);
        
            //
        // Trip-zone event actions
        // What do we want the CBC events to do?
        // TZAx events can force EPWMxA
        // TZBx events can force EPWMxB
        //
        EPWM_setTripZoneAdvAction(EPWM2_BASE, EPWM_TZ_ADV_ACTION_EVENT_TZA_D,
                                  EPWM_TZ_ADV_ACTION_LOW);
        EPWM_setTripZoneAdvAction(EPWM2_BASE, EPWM_TZ_ADV_ACTION_EVENT_TZA_U,
                                  EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAdvAction(EPWM2_BASE, EPWM_TZ_ADV_ACTION_EVENT_TZB_U,
                                  EPWM_TZ_ADV_ACTION_LOW);
        EPWM_setTripZoneAdvAction(EPWM2_BASE, EPWM_TZ_ADV_ACTION_EVENT_TZB_D,
                                  EPWM_TZ_ADV_ACTION_DISABLE);
        EPWM_setTripZoneAction(EPWM2_BASE, EPWM_TZ_ACTION_EVENT_TZA,
                               EPWM_TZ_ACTION_DISABLE);
        EPWM_setTripZoneAction(EPWM2_BASE, EPWM_TZ_ACTION_EVENT_TZB,
                               EPWM_TZ_ACTION_DISABLE);

    以下行是否清除 OST?

    EPWM_selectCycleByCycleTripZoneClearEvent(EPWM2_BASE,
                                                  EPWM_TZ_CBC_PULSE_CLR_CNTR_ZERO_PERIOD);
        

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

    尊敬的 Gokhan:

    此代码将为 EPWM2清除 OST:

    ePWM_clearTripZoneFlag (EPWM2_base、 ePWM_TZ_FLAG_OST);
    您是否仍然看到 EPWM2输出未被强制跳闸事件清除、或者是否按照 Gus 的建议解决了此问题?
    谢谢!
    卢克
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Luke、您好!

    我无法跳 EPWM2。 Gus 说,如果任何 EPWM 作为 CBC 进行编程,它就不能是 OST。 我的 ePWM2是 CBC、我无法使用 OST 跳闸。  如果它是不可能的旅行使用 OST,我需要知道它。 然后选择 OK。

    除此之外、我需要进一步的指导来改善 epwm2以外的示波器上 PWM 的初始导通。 我的第一个问题中的问题2是有效的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我无法跳过我的 EPWM2。 Gus 说,如果任何 EPWM 作为 CBC 进行编程,它就不能是 OST。 我的 ePWM2是 CBC、我无法使用 OST 跳闸。  如果它是不可能的旅行使用 OST,我需要知道它。 然后单击确定[/报价]

    只有一个由 CBC 和 OST 逻辑共享的跳闸区域模块。 如果您强制 OST、则会触发您为 CBC 指定的行程操作。  

    [报价 userid="533074" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1254184/tms320f280048-q1-force-tripzoneevent-and-initial-turn-off-pwms/4757131 #4757131"]除此之外,我需要进一步的指导来改进示波器上除 epwm2以外的 PWM 初始开启。 我的第一个问题中的问题2是有效的。

    我注意到 PMP23126固件上的某处从技术角度而言不正确。 在 PSFB_HAL_setupDevice ()中有一个调用 Device_init (),它会调用 Device_enableAllPeripheral() 。 在这里、TBCLKSYNC 被置位。 确保不在代码中执行此操作。 这将启动 PWM 计数、从技术上讲、这不应该在配置 PWM 之后进行。 只需注释掉设置  TBCLKSYNC (如果使用多核器件、则为 GTBCLKSYNC)的任何代码。 在 PSFB_HAL_enablePWMCLKCounting ()中设置 TBCLKSYNC。

    关于问题、您也可以使用 CCS 检查 ePWM TBCTR 寄存器、看看它是否在递增。 如果不是这样、那么 PWM 不计数、这就是 PWM 引脚没有切换的原因。