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.

[参考译文] TMS320F280039:死区模块下的击穿

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1355931/tms320f280039-shoot-through-despite-of-dead-band-module

器件型号:TMS320F280039
主题中讨论的其他器件:C2000WAREPMP

您好、TI 支持团队、  

我正在实施对称的峰值电流控制、如 https://www.ti.com/tool/PMP23069中所述

奇怪的是、即使使用了死区模块、T1事件也会导致有源至无源桥臂上的直通模式。

以下是相关的 DB 配置代码:

EPWM_setRisingEdgeDeadBandDelayInput(EPWM5_BASE, EPWM_DB_INPUT_EPWMA);
EPWM_setFallingEdgeDeadBandDelayInput(EPWM5_BASE, EPWM_DB_INPUT_EPWMA);
EPWM_setDeadBandDelayMode(EPWM5_BASE, EPWM_DB_RED, true);
EPWM_setDeadBandDelayMode(EPWM5_BASE, EPWM_DB_FED, true);

由于 FED 和 RED 由同一信号(ePWM_DB_INPUT_EPWMA)提供、因此我不明白是否可能存在任何穿透。

我希望死区时间始终正确插入、而与 INPUT_EPWMA 的形状和形式无关。

请注意、如果我通过将 CMPSS DAC 设置为足够高的值来禁用 T1事件、则 PWM5A/B 引脚的行为符合预期、并具有正确的死区时间。

任何见解都将不胜感激。

谢谢!

节拍

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

    节拍、

    我假设您在死区配置中将 PWMB 配置为 PWMA 的反相版本、因为 RED 和 FED 输入始终是 EPWMA。

    您针对 T1事件的 AQ 配置是什么?  

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

    您好 Gus -感谢您的答复。

    是的、PWMB 被配置为 PWMA 的反相版本、插入了死区时间、因此我对看到(实质性的!)感到困惑。 重叠、从而导致在 T1事件处于活动状态时出现半桥击穿。  

    下面是 AQ 配置:

    EPWM_setActionQualifierT1TriggerSource(EPWM5_BASE,
                                         EPWM_AQ_TRIGGER_EVENT_TRIG_DC_EVTFILT);
    
    EPWM_setActionQualifierAction(EPWM5_BASE, EPWM_AQ_OUTPUT_A,
                                EPWM_AQ_OUTPUT_HIGH,
                                EPWM_AQ_OUTPUT_ON_T1_COUNT_UP);
    EPWM_setActionQualifierAction(EPWM5_BASE, EPWM_AQ_OUTPUT_A,
                                EPWM_AQ_OUTPUT_LOW,
                                EPWM_AQ_OUTPUT_ON_T1_COUNT_DOWN);
    
    EPWM_setActionQualifierAction(EPWM5_BASE, EPWM_AQ_OUTPUT_A,
                                EPWM_AQ_OUTPUT_NO_CHANGE,
                                EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
    EPWM_setActionQualifierAction(EPWM5_BASE, EPWM_AQ_OUTPUT_A,
                                EPWM_AQ_OUTPUT_NO_CHANGE,
                                EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
    
    EPWM_setActionQualifierAction(EPWM5_BASE, EPWM_AQ_OUTPUT_A,
                                  EPWM_AQ_OUTPUT_LOW,
                                  EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
    EPWM_setActionQualifierAction(EPWM5_BASE, EPWM_AQ_OUTPUT_A,
                                  EPWM_AQ_OUTPUT_HIGH,
                                  EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);

    但同样、我看不出这有多大的相关性、因为这些设置应用于 死区模块的上游、并仅影响  进入死区模块的信号 ePWM_DB_INPUT_EPWMA。  无论 AQ 配置如何、我都希望在 EPM5A/B 引脚上看到 ePWM_DB_INPUT_EPWMA 的互补版本、其中插入了死区时间。

    此致、

    节拍

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

    节拍、

    嗯、是的、我明白您的观点。 在互补模式中、T1偶数配置对于您所面临的这个问题应该无关紧要。

    您能否分享相关 PWM 信号的示波器图?

    您可能还需要检查 c2000ware 中的死区示例。

    C:\ti\c2000\c2000Ware_5_01_00\driverlib\f28003x\examples\epwm

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

    Gus、您好!

    好的。 下面是一些用于说明该问题的测量值。

    下面的示波器图像以黄色显示了连接到 CMPSS HP 引脚(CMP4_HP5)的 ADC B11引脚看到的电桥电流测量值。

    下面的数字迹线对应于无源至有源和有源至无源桥臂的互补 PWM 信号。 可以看到、它们稍微移相了。 这两个都是通过 Z 和 P 上的 AQ 事件进行 配置的、此外、有源至无源桥臂还配置了 T1事件(如上面的代码片段所示)。 所有比较事件被禁用。

    此测量是在比较器输入之上设置 CMPSS DAC 值(DACHVALA)的情况下进行的、因此不会触发 T1事件、有源至无源桥臂状态良好、并与插入的死区时间互补、如上文所述。

    下面是对显示正确死区时间和零击穿的 PWM 信号的放大测量结果。

    在存在实际功率级时、此操作在没有 T1事件的情况下正常运行。

    但是、如果我现在降低 CMPSS DAC 值(通过手段 CMPSS_setMaxRampValue)以使 T1事件发生、则有源转无 源 PWM 将不再是互补的、从而导致在有源/无源桥臂上发生短穿。

    请参见 以下迹线。


    需要说明的是、 与其他测量值相比、唯一的变化是我降低了 CMPSS DAC 值(通过使用 CMPSS_setMaxRampValue) 、以便发生 T1事件

    希望这些测量结果对您的分析有所帮助。

    很高兴根据您的建议进行进一步的测试和测量。

    此致、

    节拍

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

    节拍、

    PWM 中的跳闸区域模块还能够通过直接控制 EPWM_A 和 EPWM_B 输出来覆盖 AQ 和 DB 模块。 您的代码中是否使用了此模块?

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

    嗨、Beat、

    ePWM_setFallingEdgeDeadBandDelayInput (EPWM5_base、ePWM_DB_INPUT_EPWMA);

    对于真正的互补 PWM 驱动信号对死区发生器、似乎需要单独的输入、影子负载 A/B 比较器。 在一些 DB 发生器上生成 B 方案的反相 A 可能会产生不确定性周期、其中 A 保持高电平、因此时钟数不多。 也许单独的 DB 输入也会分配_EPWB。 取决于向上/向下计数(互补信号对的典型值)模式和技术资源手册中讨论的边沿对齐方法。

    问题、为什么通过 CMPA 为低/高信号方向设置不同的时间源?

    EPWM_setActionQualifierAction (EPWM5_base、EPWM_AQ_OUTPUT_A、
    ePWM_AQ_OUTPUT_LOW、
    epwm_aQ_output_on_timebase_zero);
    EPWM_setActionQualifierAction (EPWM5_base、EPWM_AQ_OUTPUT_A、
    ePWM_AQ_OUTPUT_HIGH、
    ePWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);

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

    您好、Gus、在我完全了解正在发生的事情之前、我不想将 TZ 用作权变措施。

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

    您好 Genatco、

    这是一个有趣的建议。 我将尝试使用第二个动作限定符和独立路径通过死区模块、看看这是否造成了影响。

    能否请您指出 TRM 中的相关部分、该部分解释了这一带有"不确定性时期"的 DB 问题?

    至于您的问题、我没有使用 任何比较操作。 AQ 被配置为仅使用零和周期动作在向上向下双向计数模式下产生占空比为50%的信号。   与"无源/有源"桥臂相比、相移全桥的"有源/无源"桥臂配置为反相操作、并利用 T1操作实现峰值电流控制相移(请参阅 PMP 23069)。

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

    我并不是建议您使用 TZ、而是想指出这是一件值得关注的事情。 默认情况下、TZ 配置为将引脚置于高阻态、这需要注意。 您提供了 PWM 引脚的逻辑分析仪捕捉、那么可能忽略了什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请您参考 TRM 中解释此数据库问题与"不确定性期"的相关部分吗?

    也许是修订版2 PWM 模块 DB 发生器的一个一般问题、在同一个时钟周期内、两个输出都可能随机为高电平。 另一个问题:为什么不使用零开关技术在一段时间内非常流行、以降低噪声、TRM 部分 PWM 使用的展示了相移过零配置。 您能展示自己的相移设置代码吗? 当为影子化全局或即时设置占空比更新时、DB 生成和两个不同的 TB 操作限定符可能会出现问题? 拆分 DB 模式没有在 C2000 driverlib 中准确地拼写出来、添加了一个结构成员、因此符号名称更多地被识别为通过(A/B)输入进行拆分(互补)死区控制。

    此 DB 切换图 x49c、以显示互补信号、其中 CMPA/B 加载了占空比值。

      。  

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

    你好 Gus,这是它!

    在我的代码中、T1事件由 DCBEVT2生成、实际上、我没有意识到 DCBEVT2也附带 将 PWM B 引脚置于高阻抗状态的默认操作!

    我已经配置了 TZCTL。 DCBEVT2和3、问题消失了。

    谢谢您(也是@Genatco)帮助我解决这个问题。

    节拍

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

    奇怪的是、跳闸区动作限定器(默认 POR 寄存器值)与 B 输出上的死区生成无关、因为 TRM 中描述的死区图没有 CCMPSS 连接。

    即使 EPWM_B 输出进入高阻抗、也应该被死区发生器 ePWMxB 输入忽略-对吧? DBCTL (HalfCycle)输入看起来以相同的方式影响两个死区输出。

    也许 DB 工作模式毕竟配置为互补输出、并且 ePWMxB 输入确实有效。