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.

[参考译文] TMS320F280049C:使用 OST 触发区的三相 SiC 逆变器故障、导致杂散关断

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1023558/tms320f280049c-fault-of-3-phase-sic-inverter-using-ost-trip-zone-causing-spurious-shutdowns

器件型号:TMS320F280049C

我目前正在使用 F280049C Launch Pad、使用 SiC MOSFET 实现三相逆变器。 我主要使用 driverlib 函数  

我使用3个 EPWM2、EPWM2和 EPWM3)和120kHz 中心对齐 SVPWM。 通过将3个 ePWM 配置为生成死区、可生成200ns 的死区。

我往往会遇到伪故障跳闸、导致我的固件关断逆变器门控。

我正在使用 OST 模式,并且在3条故障 GPIO 线路(分配给 TZ1、TZ2和 TZ3)上的任何一条逻辑低电平都会导致我的 ISR (所使用的3个 ePWM 中的每条都有一个 Tripzone ISR)

还可以通过启用这些 EPWM OST 位来关闭其他半桥。

即使我向电路板通电、逆变器也会获得关断信号(即使我没有向逆变器施加任何直流链路电压也是如此)。 我按下 Launchpad 上的复位按钮

 (或强制执行看门狗复位以重置固件)我没有收到该上电 tripzone 故障。   

是否有另一种通常更好的方法(可能是一种去抖检查功能)用于使关断对所用 GPIO 引脚上的杂散逻辑低电平不敏感?

谢谢

David Nyarko

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

    尊敬的 David:

    请您澄清您所面临的问题。 您想使用外部 GPIO 电平信号触发所有三个半桥 PWM、还是需要在中断触发 PWM 之前处理中断中的输入?

    此外、您能否澄清您所面临的问题。 您是否在复位时看到错误跳闸? 您应该在 MCU 复位后清除跳闸条件。 谢谢。

    韩文

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

    您好、Han、

    -我想使用外部 GPIO 电平信号跳闸所有3个半桥。

    我目前正在使用 Tripzone ISR 处理该问题

    -我遇到了将电源应用到 launchpad 上的错误跳闸。 我可以通过按下 LaunchPad 复位按钮来清除此问题  

    或强制对电路板进行看门狗复位。

    对于我的代码中与中断相关的启动部分、

    这就是我拥有的东西

    //
    //禁用全局中断。
    //
    Dint;

    //
    //初始化 PIE 并清除 PIE 寄存器。 禁用 CPU 中断。
    //
    interrupt_initModule();

    //
    //使用指向 shell 中断的指针初始化 PIE 矢量表
    //服务例程(ISR)。
    //
    interrupt_initVectorTable();

    //
    //启用 Tripzone 中断
    //
    INTERRUPT_ENABLE (INT_EPWM1_TZ);
    INTERRUPT_ENABLE (INT_EPWM2_TZ);
    INTERRUPT_ENABLE (INT_EPWM3_TZ);

    **** SCI 代码****

    //清除任何 OST 触发区以启用 PWM
    //也许这就是为什么 PWM 在连接到电源时会冻结、但会运行的原因
    //在按下重置按钮后
    ePWM_clearTripZoneFlag (EPWM1_base、ePWM_TZ_FLAG_OST);
    ePWM_clearTripZoneFlag (EPWM2_base、ePWM_TZ_FLAG_OST);
    ePWM_clearTripZoneFlag (EPWM3_base、ePWM_TZ_FLAG_OST);

    ***。 其他变量初始化****

    //
    //启用全局中断(INTM)和实时中断(DBGM)
    //


    EINT;
    ERTM;

    也许:

    我应该尝试添加:  Interrupt_clearACKGroup (interrupt_ACK_group2);

     在'EINT'之前

    谢谢

    David