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.

[参考译文] TMS320F28379D:可使用死区同时打开 PWM 输出。 半桥损坏。

Guru**** 2586865 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1216111/tms320f28379d-possibility-of-simultaneous-turning-on-of-pwm-outputs-with-dead-band-half-bridge-getting-damaged

器件型号:TMS320F28379D
"Thread:SysConfig"中讨论的其他器件

我们使用死区方法配置了两个 ePWM 模块以实现互补运行。 这些互补对正在驱动电池转换器的两个半桥、以将直流母线电压调节到370伏左右。 已经有几次发生,一个桥臂的两个晶体管已严重损坏(爆炸)。 我们知道、这是由于来自流经两个晶体管的直流母线的短路电流造成的。 相桥臂的两个晶体管可能都会在某些罕见的情况下导通、我们无法了解这种情况。 请在下方查看使用 SysConfig 工具完成的互补 PWM 输出配置:

我还要附上栅极驱动电路的原理图作为参考。  

使用死区设置配置时、两个 PWM 是否可以同时开启? 我知道死区应确保两个输出绝不会同时开启。

这可能是由一些其他感应噪声导致两个栅极同时打开引起的吗?

请帮助我们正确诊断和解决问题。 我们在过去5-6周损坏了大约5个转换器。  如果需要更多信息、请告知我们。  


e2e.ti.com/.../Batt_5F00_Converter_5F00_Circuit.pdf

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

    您好、Asad、

    您可以将您的 SysConfig 源发送给我吗? 我想确保得到 PWM 的准确设置、并且不要错过已配置的 PWM 中的其他子模块。

    此致!

    Ryan Ma

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

    当然可以。 明天早上当我回到办公室时、我会发送我项目的 SysConfig 文件。 我是否应该只连接到该线程? 谢谢你。

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

    好的、就是这样。

    谢谢!

    Ryan Ma

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

    请在下面找到我的 SysConfig 的源代码。  请注意、逆变器和电池 ePWM 均同步。  

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "F2837xS" --package "F2837xS_176PTP" --part "F2837xS_176PTP" --context "system" --product "C2000WARE@4.02.00.00"
     * @versions {"tool":"1.12.1+2446"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const adc              = scripting.addModule("/driverlib/adc.js", {}, false);
    const adc1             = adc.addInstance();
    const adc2             = adc.addInstance();
    const adc3             = adc.addInstance();
    const adc4             = adc.addInstance();
    const cla              = scripting.addModule("/driverlib/cla.js", {}, false);
    const cla1             = cla.addInstance();
    const cputimer         = scripting.addModule("/driverlib/cputimer.js", {}, false);
    const cputimer1        = cputimer.addInstance();
    const cputimer2        = cputimer.addInstance();
    const cputimer3        = cputimer.addInstance();
    const dac              = scripting.addModule("/driverlib/dac.js", {}, false);
    const dac1             = dac.addInstance();
    const ecap             = scripting.addModule("/driverlib/ecap.js", {}, false);
    const ecap1            = ecap.addInstance();
    const epwm             = scripting.addModule("/driverlib/epwm.js", {}, false);
    const epwm1            = epwm.addInstance();
    const epwm2            = epwm.addInstance();
    const epwm3            = epwm.addInstance();
    const epwm4            = epwm.addInstance();
    const epwm5            = epwm.addInstance();
    const epwm6            = epwm.addInstance();
    const epwm7            = epwm.addInstance();
    const epwm8            = epwm.addInstance();
    const epwm9            = epwm.addInstance();
    const epwm10           = epwm.addInstance();
    const epwm11           = epwm.addInstance();
    const gpio             = scripting.addModule("/driverlib/gpio.js", {}, false);
    const gpio1            = gpio.addInstance();
    const gpio2            = gpio.addInstance();
    const gpio3            = gpio.addInstance();
    const gpio4            = gpio.addInstance();
    const gpio5            = gpio.addInstance();
    const gpio6            = gpio.addInstance();
    const gpio7            = gpio.addInstance();
    const gpio8            = gpio.addInstance();
    const gpio9            = gpio.addInstance();
    const gpio10           = gpio.addInstance();
    const gpio11           = gpio.addInstance();
    const gpio12           = gpio.addInstance();
    const gpio13           = gpio.addInstance();
    const gpio14           = gpio.addInstance();
    const gpio15           = gpio.addInstance();
    const gpio16           = gpio.addInstance();
    const gpio17           = gpio.addInstance();
    const gpio18           = gpio.addInstance();
    const gpio19           = gpio.addInstance();
    const gpio20           = gpio.addInstance();
    const gpio21           = gpio.addInstance();
    const gpio22           = gpio.addInstance();
    const inputxbar        = scripting.addModule("/driverlib/inputxbar.js", {}, false);
    const inputxbar1       = inputxbar.addInstance();
    const inputxbar_input  = scripting.addModule("/driverlib/inputxbar_input.js");
    const inputxbar_input1 = inputxbar_input.addInstance();
    const inputxbar_input2 = inputxbar_input.addInstance();
    const inputxbar_input3 = inputxbar_input.addInstance();
    const inputxbar_input4 = inputxbar_input.addInstance();
    const memcfg           = scripting.addModule("/driverlib/memcfg.js");
    const sci              = scripting.addModule("/driverlib/sci.js", {}, false);
    const sci1             = sci.addInstance();
    const sci2             = sci.addInstance();
    const spi              = scripting.addModule("/driverlib/spi.js", {}, false);
    const spi1             = spi.addInstance();
    const sync             = scripting.addModule("/driverlib/sync.js");
    const sysctl           = scripting.addModule("/driverlib/sysctl.js");
    
    /**
     * Write custom configuration values to the imported modules.
     */
    adc1.adcClockPrescaler              = "ADC_CLK_DIV_4_0";
    adc1.interruptPulseMode             = "ADC_PULSE_END_OF_CONV";
    adc1.enabledInts                    = ["ADC_INT_NUMBER1"];
    adc1.enableInterrupt1               = true;
    adc1.enableInterrupt1ContinuousMode = true;
    adc1.soc0Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc1.soc1Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc1.soc2Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc1.soc3Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc1.interrupt1SOCSource            = "ADC_SOC_NUMBER3";
    adc1.registerInterrupts             = ["1"];
    adc1.soc0Channel                    = "ADC_CH_ADCIN1";
    adc1.enabledSOCs                    = ["ADC_SOC_NUMBER0","ADC_SOC_NUMBER1","ADC_SOC_NUMBER2","ADC_SOC_NUMBER3","ADC_SOC_NUMBER4"];
    adc1.soc1Channel                    = "ADC_CH_ADCIN2";
    adc1.soc2Channel                    = "ADC_CH_ADCIN3";
    adc1.soc3Channel                    = "ADC_CH_ADCIN4";
    adc1.soc4Channel                    = "ADC_CH_ADCIN5";
    adc1.$name                          = "ADC_A";
    adc1.soc4Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc1.soc0Name                       = "Vbus";
    adc1.soc3Name                       = "Vbat";
    adc1.soc2Name                       = "Ipv_Mux";
    adc1.soc1Name                       = "Vpv_Mux";
    adc1.soc4Name                       = "Ibat";
    adc1.soc0SampleWindow               = 25;
    adc1.soc1SampleWindow               = 25;
    adc1.soc2SampleWindow               = 25;
    adc1.soc3SampleWindow               = 25;
    adc1.soc4SampleWindow               = 25;
    adc1.adcInt1.enableInterrupt        = true;
    adc1.adcInt1.interruptHandler       = "ADC_EOC_ISR";
    
    adc2.adcBase                        = "ADCB_BASE";
    adc2.soc0Channel                    = "ADC_CH_ADCIN0_ADCIN1";
    adc2.adcSignalMode                  = "ADC_MODE_DIFFERENTIAL";
    adc2.adcResolutionMode              = "ADC_RESOLUTION_16BIT";
    adc2.soc1Channel                    = "ADC_CH_ADCIN2_ADCIN3";
    adc2.$name                          = "ADC_B";
    adc2.enabledSOCs                    = ["ADC_SOC_NUMBER0","ADC_SOC_NUMBER1","ADC_SOC_NUMBER2","ADC_SOC_NUMBER3"];
    adc2.soc2Channel                    = "ADC_CH_ADCIN0_ADCIN1";
    adc2.soc3Channel                    = "ADC_CH_ADCIN2_ADCIN3";
    adc2.enableInterrupt1               = true;
    adc2.interruptPulseMode             = "ADC_PULSE_END_OF_CONV";
    adc2.interrupt1SOCSource            = "ADC_SOC_NUMBER3";
    adc2.enabledInts                    = ["ADC_INT_NUMBER2"];
    adc2.enableInterrupt2               = true;
    adc2.interrupt2SOCSource            = "ADC_SOC_NUMBER3";
    adc2.registerInterrupts             = ["2"];
    adc2.soc0Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc2.soc1Trigger                    = "ADC_TRIGGER_EPWM1_SOCA";
    adc2.adcClockPrescaler              = "ADC_CLK_DIV_4_0";
    adc2.enableInterrupt2ContinuousMode = true;
    adc2.soc0Name                       = "Vgrid1";
    adc2.soc1Name                       = "Vgrid2";
    adc2.soc2Name                       = "Vgrid1_FFT";
    adc2.soc3Name                       = "Vgrid2_FFT";
    adc2.soc0SampleWindow               = 64;
    adc2.soc1SampleWindow               = 64;
    adc2.soc2SampleWindow               = 64;
    adc2.soc3SampleWindow               = 64;
    adc2.soc2Trigger                    = "ADC_TRIGGER_GPIO";
    adc2.soc3Trigger                    = "ADC_TRIGGER_GPIO";
    adc2.adcInt2.enableInterrupt        = true;
    adc2.adcInt2.interruptHandler       = "INT_JEM_ADC_ISR";
    
    adc3.adcBase           = "ADCC_BASE";
    adc3.enabledSOCs       = ["ADC_SOC_NUMBER0","ADC_SOC_NUMBER1","ADC_SOC_NUMBER2","ADC_SOC_NUMBER3","ADC_SOC_NUMBER4"];
    adc3.soc3Channel       = "ADC_CH_ADCIN14";
    adc3.soc4Channel       = "ADC_CH_ADCIN15";
    adc3.soc0Channel       = "ADC_CH_ADCIN4";
    adc3.soc1Channel       = "ADC_CH_ADCIN2";
    adc3.soc2Channel       = "ADC_CH_ADCIN3";
    adc3.$name             = "ADC_C";
    adc3.adcClockPrescaler = "ADC_CLK_DIV_4_0";
    adc3.soc0Name          = "Vinv1";
    adc3.soc1Name          = "Vbus_c1";
    adc3.soc2Name          = "Vbus_c2";
    adc3.soc3Name          = "Vaux";
    adc3.soc4Name          = "Iaux";
    adc3.soc0Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc3.soc2Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc3.soc3Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc3.soc4Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc3.soc1Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc3.soc0SampleWindow  = 25;
    adc3.soc1SampleWindow  = 25;
    adc3.soc3SampleWindow  = 25;
    adc3.soc2SampleWindow  = 25;
    adc3.soc4SampleWindow  = 25;
    
    adc4.adcBase           = "ADCD_BASE";
    adc4.$name             = "ADC_D";
    adc4.adcClockPrescaler = "ADC_CLK_DIV_4_0";
    adc4.soc0Name          = "Vinv2";
    adc4.soc1Name          = "Iinv1";
    adc4.soc0Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc4.soc1Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc4.soc2Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc4.soc3Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc4.soc4Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc4.soc0SampleWindow  = 25;
    adc4.soc1SampleWindow  = 25;
    adc4.soc2SampleWindow  = 25;
    adc4.soc3SampleWindow  = 25;
    adc4.soc4SampleWindow  = 25;
    adc4.soc1Channel       = "ADC_CH_ADCIN1";
    adc4.enabledSOCs       = ["ADC_SOC_NUMBER0","ADC_SOC_NUMBER1","ADC_SOC_NUMBER2","ADC_SOC_NUMBER3","ADC_SOC_NUMBER4","ADC_SOC_NUMBER5"];
    adc4.soc5Name          = "Igrid2";
    adc4.soc5Channel       = "ADC_CH_ADCIN4";
    adc4.soc5Trigger       = "ADC_TRIGGER_EPWM1_SOCA";
    adc4.soc5SampleWindow  = 25;
    adc4.soc4Name          = "Igrid1";
    adc4.soc4Channel       = "ADC_CH_ADCIN3";
    adc4.soc3Name          = "Iinv2";
    adc4.soc3Channel       = "ADC_CH_ADCIN2";
    adc4.soc2Channel       = "ADC_CH_ADCIN1";
    
    cla1.$name             = "myCLA0";
    cla1.enable_CLA_TASK_6 = false;
    cla1.enable_CLA_TASK_7 = false;
    cla1.enable_CLA_TASK_8 = false;
    cla1.cpuint_CLA_TASK_2 = false;
    cla1.cpuint_CLA_TASK_3 = false;
    cla1.cpuint_CLA_TASK_4 = false;
    cla1.cpuint_CLA_TASK_5 = false;
    cla1.cpuint_CLA_TASK_6 = false;
    cla1.cpuint_CLA_TASK_7 = false;
    cla1.cpuint_CLA_TASK_8 = false;
    cla1.cpuint_CLA_TASK_1 = false;
    
    cputimer1.$name                    = "Periodic_Tick_100mSec";
    cputimer1.enableInterrupt          = true;
    cputimer1.registerInterrupts       = true;
    cputimer1.timerPrescaler           = 20000;
    cputimer1.cputimerBase             = "CPUTIMER2_BASE";
    cputimer1.startTimer               = true;
    cputimer1.timerPeriod              = 1000;
    cputimer1.timerInt.enableInterrupt = true;
    
    cputimer2.cputimerBase   = "CPUTIMER1_BASE";
    cputimer2.$name          = "Freq_Blanking_Timer";
    cputimer2.timerPrescaler = 50;
    cputimer2.timerPeriod    = 100000;
    
    cputimer3.$name          = "SPI_TimeOut_Timer";
    cputimer3.timerPrescaler = 20000;
    cputimer3.timerPeriod    = 2000;
    
    dac1.enableOutput     = true;
    dac1.$name            = "DAC_Debug";
    dac1.referenceVoltage = "DAC_REF_ADC_VREFHI";
    
    ecap1.$name                   = "Freq_Capture";
    ecap1.registerInterrupts      = true;
    ecap1.enableInterrupt         = true;
    ecap1.interruptSourceCapture  = ["ECAP_ISR_SOURCE_CAPTURE_EVENT_1"];
    ecap1.syncOutMode             = "ECAP_SYNC_OUT_DISABLED";
    ecap1.emulationMode           = "ECAP_EMULATION_FREE_RUN";
    ecap1.ecapInt.enableInterrupt = true;
    
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm1.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm1.epwmCounterCompare_shadowLoadModeCMPA                      = "EPWM_COMP_LOAD_ON_CNTR_PERIOD";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowEvent           = "EPWM_AQ_LOAD_ON_CNTR_PERIOD";
    epwm1.epwmTimebase_syncOutPulseMode                              = "EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEnable                  = true;
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar          = "1";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerSource                  = "EPWM_SOC_TBCTR_ZERO";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_B_ON_TIMEBASE_UP_CMPB   = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_B_ON_TIMEBASE_DOWN_CMPB = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm1.epwmCounterCompare_cmpB                                    = 1250;
    epwm1.$name                                                      = "AC_OL_REF_PWM0";
    epwm1.epwmTimebase_period                                        = 3125;
    epwm1.epwmCounterCompare_cmpA                                    = 1562;
    epwm1.epwm.$assign                                               = "EPWM1";
    epwm1.epwm.epwmaPin.$assign                                      = "GPIO0";
    epwm1.epwm.epwmbPin.$assign                                      = "GPIO1";
    
    epwm2.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm2.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm2.epwmTimebase_phaseEnable                                   = true;
    epwm2.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm2.$name                                                      = "BATT_H1_L1_PWM";
    epwm2.epwmTimebase_syncOutPulseMode                              = "EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN";
    epwm2.epwmCounterCompare_enableShadowLoadModeCMPB                = false;
    epwm2.epwmCounterCompare_enableShadowLoadModeCMPC                = false;
    epwm2.epwmCounterCompare_enableShadowLoadModeCMPD                = false;
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_B_shadowMode            = true;
    epwm2.epwmDeadband_polarityFED                                   = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm2.epwmDeadband_enableRED                                     = true;
    epwm2.epwmDeadband_enableFED                                     = true;
    epwm2.epwmTimebase_period                                        = 3125;
    epwm2.epwmCounterCompare_cmpA                                    = 1562;
    epwm2.epwmDeadband_delayRED                                      = 100;
    epwm2.epwmDeadband_delayFED                                      = 100;
    epwm2.epwm.$assign                                               = "EPWM2";
    epwm2.epwm.epwmaPin.$assign                                      = "GPIO2";
    epwm2.epwm.epwmbPin.$assign                                      = "GPIO3";
    
    epwm3.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm3.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm3.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm3.epwmTimebase_phaseEnable                                   = true;
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm3.copyFrom                                                   = "myEPWM1";
    epwm3.$name                                                      = "BATT_H2_L2_PWM";
    epwm3.epwmCounterCompare_enableShadowLoadModeCMPB                = false;
    epwm3.epwmCounterCompare_enableShadowLoadModeCMPD                = false;
    epwm3.epwmCounterCompare_enableShadowLoadModeCMPC                = false;
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_B_shadowMode            = true;
    epwm3.epwmDeadband_polarityFED                                   = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm3.epwmDeadband_enableRED                                     = true;
    epwm3.epwmDeadband_enableFED                                     = true;
    epwm3.epwmTimebase_period                                        = 3125;
    epwm3.epwmCounterCompare_cmpA                                    = 1562;
    epwm3.epwmTimebase_phaseShift                                    = 3125;
    epwm3.epwmDeadband_delayRED                                      = 100;
    epwm3.epwmDeadband_delayFED                                      = 100;
    epwm3.epwm.$assign                                               = "EPWM3";
    epwm3.epwm.epwmaPin.$assign                                      = "GPIO4";
    epwm3.epwm.epwmbPin.$assign                                      = "GPIO5";
    
    epwm4.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm4.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm4.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm4.epwmTimebase_phaseEnable                                   = true;
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_HIGH";
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm4.copyFrom                                                   = "myEPWM1";
    epwm4.$name                                                      = "INV_H1_L1_PWM";
    epwm4.epwmCounterCompare_enableShadowLoadModeCMPB                = false;
    epwm4.epwmCounterCompare_enableShadowLoadModeCMPC                = false;
    epwm4.epwmCounterCompare_enableShadowLoadModeCMPD                = false;
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_B_shadowMode            = true;
    epwm4.epwmDeadband_polarityFED                                   = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm4.epwmDeadband_enableRED                                     = true;
    epwm4.epwmDeadband_enableFED                                     = true;
    epwm4.epwmTimebase_period                                        = 3125;
    epwm4.epwmCounterCompare_cmpA                                    = 1562;
    epwm4.epwmDeadband_delayRED                                      = 100;
    epwm4.epwmDeadband_delayFED                                      = 100;
    epwm4.epwm.$assign                                               = "EPWM4";
    epwm4.epwm.epwmaPin.$assign                                      = "GPIO6";
    epwm4.epwm.epwmbPin.$assign                                      = "GPIO7";
    
    epwm5.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm5.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm5.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm5.epwmTimebase_phaseEnable                                   = true;
    epwm5.copyFrom                                                   = "myEPWM1";
    epwm5.$name                                                      = "INV_H2_L2_PWM";
    epwm5.epwmCounterCompare_enableShadowLoadModeCMPB                = false;
    epwm5.epwmCounterCompare_enableShadowLoadModeCMPC                = false;
    epwm5.epwmCounterCompare_enableShadowLoadModeCMPD                = false;
    epwm5.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm5.epwmActionQualifier_EPWM_AQ_OUTPUT_B_shadowMode            = true;
    epwm5.epwmDeadband_polarityFED                                   = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm5.epwmDeadband_enableRED                                     = true;
    epwm5.epwmDeadband_enableFED                                     = true;
    epwm5.epwmTimebase_period                                        = 3125;
    epwm5.epwmCounterCompare_cmpA                                    = 1562;
    epwm5.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_LOW";
    epwm5.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_HIGH";
    epwm5.epwmDeadband_delayRED                                      = 100;
    epwm5.epwmDeadband_delayFED                                      = 100;
    epwm5.epwm.$assign                                               = "EPWM5";
    epwm5.epwm.epwmaPin.$assign                                      = "GPIO8";
    epwm5.epwm.epwmbPin.$assign                                      = "GPIO9";
    
    epwm6.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm6.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm6.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm6.epwmTimebase_phaseEnable                                   = true;
    epwm6.copyFrom                                                   = "myEPWM1";
    epwm6.$name                                                      = "AUX_H_L_PWM";
    epwm6.epwmCounterCompare_enableShadowLoadModeCMPB                = false;
    epwm6.epwmCounterCompare_enableShadowLoadModeCMPC                = false;
    epwm6.epwmCounterCompare_enableShadowLoadModeCMPD                = false;
    epwm6.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm6.epwmActionQualifier_EPWM_AQ_OUTPUT_B_shadowMode            = true;
    epwm6.epwmDeadband_polarityFED                                   = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm6.epwmTimebase_period                                        = 3125;
    epwm6.epwmCounterCompare_cmpA                                    = 1562;
    epwm6.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_LOW";
    epwm6.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_HIGH";
    epwm6.epwmActionQualifier_EPWM_AQ_OUTPUT_B_ON_TIMEBASE_UP_CMPB   = "EPWM_AQ_OUTPUT_HIGH";
    epwm6.epwmActionQualifier_EPWM_AQ_OUTPUT_B_ON_TIMEBASE_DOWN_CMPB = "EPWM_AQ_OUTPUT_LOW";
    epwm6.epwm.$assign                                               = "EPWM6";
    epwm6.epwm.epwmaPin.$assign                                      = "GPIO10";
    epwm6.epwm.epwmbPin.$assign                                      = "GPIO11";
    
    epwm7.useInterfacePins = ["EPWM#A"];
    epwm7.$name            = "OL_BATT_REF_PWM";
    
    epwm8.$name                                                      = "PV1_PWM";
    epwm8.useCase                                                    = "CUSTOM";
    epwm8.useInterfacePins                                           = ["EPWM#A"];
    epwm8.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm8.epwmTimebase_period                                        = 3125;
    epwm8.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm8.epwmTimebase_phaseEnable                                   = true;
    epwm8.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm8.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm8.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_LOW";
    epwm8.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_HIGH";
    epwm8.epwm.epwmaPin.$assign                                      = "GPIO14";
    
    epwm9.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm9.epwmTimebase_period                                        = 3125;
    epwm9.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm9.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm9.epwmTimebase_phaseEnable                                   = true;
    epwm9.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm9.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_LOW";
    epwm9.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_HIGH";
    epwm9.$name                                                      = "PV2_PWM";
    epwm9.useCase                                                    = "CUSTOM";
    epwm9.useInterfacePins                                           = ["EPWM#A"];
    epwm9.copyFrom                                                   = "PV1_PWM";
    epwm9.epwm.epwmaPin.$assign                                      = "GPIO16";
    
    epwm10.epwmTimebase_hsClockDiv                                    = "EPWM_HSCLOCK_DIVIDER_1";
    epwm10.epwmTimebase_period                                        = 3125;
    epwm10.epwmTimebase_counterMode                                   = "EPWM_COUNTER_MODE_UP_DOWN";
    epwm10.epwmTimebase_counterModeAfterSync                          = "EPWM_COUNT_MODE_UP_AFTER_SYNC";
    epwm10.epwmTimebase_phaseEnable                                   = true;
    epwm10.epwmActionQualifier_EPWM_AQ_OUTPUT_A_shadowMode            = true;
    epwm10.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA   = "EPWM_AQ_OUTPUT_LOW";
    epwm10.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_DOWN_CMPA = "EPWM_AQ_OUTPUT_HIGH";
    epwm10.$name                                                      = "PV3_PWM";
    epwm10.useCase                                                    = "CUSTOM";
    epwm10.useInterfacePins                                           = ["EPWM#A"];
    epwm10.copyFrom                                                   = "PV1_PWM";
    epwm10.epwm.epwmaPin.$assign                                      = "GPIO18";
    
    epwm11.$name                 = "Spare_EPWM";
    epwm11.epwm.$assign          = "EPWM11";
    epwm11.epwm.epwmaPin.$assign = "GPIO20";
    epwm11.epwm.epwmbPin.$assign = "GPIO21";
    
    gpio1.direction       = "GPIO_DIR_MODE_OUT";
    gpio1.$name           = "Debug_LED1";
    gpio1.gpioPin.$assign = "GPIO15";
    
    gpio2.direction         = "GPIO_DIR_MODE_OUT";
    gpio2.$name             = "Debug_LED2";
    gpio2.writeInitialValue = true;
    gpio2.gpioPin.$assign   = "GPIO17";
    
    gpio3.$name             = "V_MUX_IN1";
    gpio3.direction         = "GPIO_DIR_MODE_OUT";
    gpio3.writeInitialValue = true;
    gpio3.initialValue      = 1;
    gpio3.gpioPin.$assign   = "GPIO28";
    
    gpio4.$name             = "V_MUX_IN2";
    gpio4.direction         = "GPIO_DIR_MODE_OUT";
    gpio4.writeInitialValue = true;
    gpio4.gpioPin.$assign   = "GPIO29";
    
    gpio5.$name             = "I_MUX_IN1";
    gpio5.direction         = "GPIO_DIR_MODE_OUT";
    gpio5.writeInitialValue = true;
    gpio5.initialValue      = 1;
    gpio5.gpioPin.$assign   = "GPIO30";
    
    gpio6.$name             = "I_MUX_IN2";
    gpio6.writeInitialValue = true;
    gpio6.direction         = "GPIO_DIR_MODE_OUT";
    gpio6.gpioPin.$assign   = "GPIO31";
    
    gpio7.$name             = "Disc_Grid_4_PSU";
    gpio7.direction         = "GPIO_DIR_MODE_OUT";
    gpio7.writeInitialValue = true;
    gpio7.gpioPin.$assign   = "GPIO36";
    
    gpio8.$name           = "Aux_Disc_Relay";
    gpio8.direction       = "GPIO_DIR_MODE_OUT";
    gpio8.gpioPin.$assign = "GPIO37";
    
    gpio9.$name           = "Aux_Balance_Relay";
    gpio9.direction       = "GPIO_DIR_MODE_OUT";
    gpio9.gpioPin.$assign = "GPIO38";
    
    gpio10.$name           = "Off_Grid_Relay";
    gpio10.direction       = "GPIO_DIR_MODE_OUT";
    gpio10.gpioPin.$assign = "GPIO39";
    
    gpio11.$name           = "On_Grid_Relay";
    gpio11.direction       = "GPIO_DIR_MODE_OUT";
    gpio11.gpioPin.$assign = "GPIO40";
    
    gpio12.$name           = "Master_Relay";
    gpio12.direction       = "GPIO_DIR_MODE_OUT";
    gpio12.gpioPin.$assign = "GPIO41";
    
    gpio13.$name           = "JET_Test_Signal_1";
    gpio13.direction       = "GPIO_DIR_MODE_OUT";
    gpio13.gpioPin.$assign = "GPIO88";
    
    gpio14.$name           = "JET_Test_Signal_2";
    gpio14.direction       = "GPIO_DIR_MODE_OUT";
    gpio14.gpioPin.$assign = "GPIO89";
    
    gpio15.$name           = "JET_Test_Signal_3";
    gpio15.direction       = "GPIO_DIR_MODE_OUT";
    gpio15.gpioPin.$assign = "GPIO90";
    
    gpio16.$name           = "JET_Test_Signal_4";
    gpio16.direction       = "GPIO_DIR_MODE_OUT";
    gpio16.gpioPin.$assign = "GPIO91";
    
    gpio17.$name           = "JET_Test_Signal_5";
    gpio17.direction       = "GPIO_DIR_MODE_OUT";
    gpio17.gpioPin.$assign = "GPIO92";
    
    gpio18.$name           = "JET_Test_Signal_6";
    gpio18.direction       = "GPIO_DIR_MODE_OUT";
    gpio18.gpioPin.$assign = "GPIO93";
    
    gpio19.$name             = "Aux_Gate_Disable";
    gpio19.writeInitialValue = true;
    gpio19.initialValue      = 1;
    gpio19.direction         = "GPIO_DIR_MODE_OUT";
    gpio19.gpioPin.$assign   = "GPIO80";
    
    gpio20.$name             = "Inv_Gate_Disable";
    gpio20.writeInitialValue = true;
    gpio20.initialValue      = 1;
    gpio20.direction         = "GPIO_DIR_MODE_OUT";
    gpio20.gpioPin.$assign   = "GPIO81";
    
    gpio21.$name             = "Batt_Gate_Disable";
    gpio21.writeInitialValue = true;
    gpio21.initialValue      = 1;
    gpio21.direction         = "GPIO_DIR_MODE_OUT";
    gpio21.gpioPin.$assign   = "GPIO82";
    
    gpio22.$name             = "PV_Gate_Enable";
    gpio22.writeInitialValue = true;
    gpio22.direction         = "GPIO_DIR_MODE_OUT";
    gpio22.gpioPin.$assign   = "GPIO83";
    
    inputxbar1.$name = "InputXbar";
    
    inputxbar_input1.$name         = "myINPUTXBARINPUT0";
    inputxbar_input1.inputxbarGpio = "GPIO61";
    inputxbar_input1.inputxbarLock = true;
    
    inputxbar_input2.$name          = "myINPUTXBARINPUT1";
    inputxbar_input2.inputxbarInput = "XBAR_INPUT2";
    inputxbar_input2.inputxbarGpio  = "GPIO62";
    inputxbar_input2.inputxbarLock  = true;
    
    inputxbar_input3.$name          = "myINPUTXBARINPUT2";
    inputxbar_input3.inputxbarInput = "XBAR_INPUT5";
    inputxbar_input3.inputxbarGpio  = "GPIO65";
    inputxbar_input3.inputxbarLock  = true;
    
    inputxbar_input4.$name          = "myINPUTXBARINPUT3";
    inputxbar_input4.inputxbarInput = "XBAR_INPUT7";
    inputxbar_input4.inputxbarGpio  = "GPIO44";
    inputxbar_input4.inputxbarLock  = true;
    
    memcfg.config_MEMCFG_SECT_LS1 = "CLA_data";
    memcfg.config_MEMCFG_SECT_LS5 = "CLA_prog";
    
    sci1.$name                    = "Debug_UART";
    sci1.registerInterrupts       = true;
    sci1.enabledFIFOInterrupts    = ["SCI_INT_RXFF"];
    sci1.rxFifo                   = "SCI_FIFO_RX8";
    sci1.baudRates                = 230400;
    sci1.sci.$assign              = "SCIB";
    sci1.sci.scirxdPin.$assign    = "GPIO55";
    sci1.sci.scitxdPin.$assign    = "GPIO54";
    sci1.sciRXInt.enableInterrupt = true;
    
    sci2.$name                    = "CM4_UART";
    sci2.registerInterrupts       = true;
    sci2.enabledFIFOInterrupts    = ["SCI_INT_RXFF"];
    sci2.baudRates                = 230400;
    sci2.rxFifo                   = "SCI_FIFO_RX1";
    sci2.sci.$assign              = "SCIA";
    sci2.sci.scirxdPin.$assign    = "GPIO85";
    sci2.sci.scitxdPin.$assign    = "GPIO84";
    sci2.sciRXInt.enableInterrupt = true;
    
    spi1.$name                           = "CM4_SPI";
    spi1.bitRate                         = 1000000;
    spi1.transferProtocol                = "SPI_PROT_POL0PHA1";
    spi1.useDMARX                        = true;
    spi1.useDMATX                        = true;
    spi1.txFifo                          = "SPI_FIFO_TX8";
    spi1.rxFifo                          = "SPI_FIFO_RX8";
    spi1.enabledFIFOInterrupts           = ["SPI_INT_RXFF","SPI_INT_TXFF"];
    spi1.emulationMode                   = "SPI_EMULATION_FREE_RUN";
    spi1.spi.$assign                     = "SPIA";
    spi1.spi.spisimoPin.$assign          = "GPIO58";
    spi1.spi.spisomiPin.$assign          = "GPIO59";
    spi1.spi.spiclkPin.$assign           = "GPIO56";
    spi1.spi.spistePin.$assign           = "GPIO57";
    spi1.spiRXDMA.databusWidthConfig     = scripting.forceWrite("DMA_CFG_SIZE_16BIT");
    spi1.spiRXDMA.useInterrupts          = true;
    spi1.spiRXDMA.registerInterrupts     = true;
    spi1.spiRXDMA.enableInterrupts       = true;
    spi1.spiRXDMA.interruptMode          = "DMA_INT_AT_END";
    spi1.spiRXDMA.continuousModeConfig   = "DMA_CFG_CONTINUOUS_ENABLE";
    spi1.spiRXDMA.destAddressInputMode   = "VARIABLE";
    spi1.spiRXDMA.destBurstStep          = 1;
    spi1.spiRXDMA.destTransferStep       = 1;
    spi1.spiRXDMA.destAddressVariable    = "rx_Data";
    spi1.spiRXDMA.enableTriggers         = true;
    spi1.spiRXDMA.emulationMode          = "DMA_EMULATION_FREE_RUN";
    spi1.spiRXDMA.burstSize              = 8;
    spi1.spiRXDMA.transferSize           = 14;
    spi1.spiRXDMA.destWrapSize           = 112;
    spi1.spiRXDMA.dmaInt.enableInterrupt = true;
    spi1.spiTXDMA.databusWidthConfig     = scripting.forceWrite("DMA_CFG_SIZE_16BIT");
    spi1.spiTXDMA.dmaBase                = "DMA_CH2_BASE";
    spi1.spiTXDMA.useInterrupts          = true;
    spi1.spiTXDMA.registerInterrupts     = true;
    spi1.spiTXDMA.enableInterrupts       = true;
    spi1.spiTXDMA.interruptMode          = "DMA_INT_AT_END";
    spi1.spiTXDMA.continuousModeConfig   = "DMA_CFG_CONTINUOUS_ENABLE";
    spi1.spiTXDMA.srcBurstStep           = 1;
    spi1.spiTXDMA.srcTransferStep        = 1;
    spi1.spiTXDMA.srcAddressInputMode    = "VARIABLE";
    spi1.spiTXDMA.srcAddressVariable     = "tx_Data";
    spi1.spiTXDMA.enableTriggers         = true;
    spi1.spiTXDMA.burstSize              = 8;
    spi1.spiTXDMA.emulationMode          = "DMA_EMULATION_FREE_RUN";
    spi1.spiTXDMA.transferSize           = 14;
    spi1.spiTXDMA.srcWrapSize            = 112;
    spi1.spiTXDMA.dmaInt.enableInterrupt = true;
    
    sysctl.enable_SYSCTL_PERIPH_CLK_EMIF1  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_EMIF2  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_ECAP2  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_ECAP3  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_ECAP4  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_ECAP5  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_ECAP6  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_EQEP1  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_EQEP2  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_EQEP3  = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_SD1    = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_SD2    = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_SCID   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_SCIC   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_SPIB   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_SPIC   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_I2CA   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_I2CB   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CANA   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CANB   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_MCBSPA = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_MCBSPB = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_USBA   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_UPPA   = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS1 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS2 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS3 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS4 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS5 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS6 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS7 = false;
    sysctl.enable_SYSCTL_PERIPH_CLK_CMPSS8 = false;
    sysctl.secMasterFrame2                 = "SYSCTL_SEC_MASTER_DMA";
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    epwm7.epwm.$suggestSolution          = "EPWM7";
    epwm7.epwm.epwmaPin.$suggestSolution = "GPIO12";
    epwm7.epwm.epwmbPin.$suggestSolution = "GPIO13";
    epwm8.epwm.$suggestSolution          = "EPWM8";
    epwm9.epwm.$suggestSolution          = "EPWM9";
    epwm10.epwm.$suggestSolution         = "EPWM10";
    

    为 ePWM 初始化生成的代码如下所示:

    void EPWM_init(){
        EPWM_setClockPrescaler(AC_OL_REF_PWM0_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(AC_OL_REF_PWM0_BASE, 3125);	
        EPWM_setTimeBaseCounter(AC_OL_REF_PWM0_BASE, 0);	
        EPWM_setTimeBaseCounterMode(AC_OL_REF_PWM0_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_disablePhaseShiftLoad(AC_OL_REF_PWM0_BASE);	
        EPWM_setPhaseShift(AC_OL_REF_PWM0_BASE, 0);	
        EPWM_setSyncOutPulseMode(AC_OL_REF_PWM0_BASE, EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);	
        EPWM_setCounterCompareValue(AC_OL_REF_PWM0_BASE, EPWM_COUNTER_COMPARE_A, 1562);	
        EPWM_setCounterCompareShadowLoadMode(AC_OL_REF_PWM0_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_PERIOD);	
        EPWM_setCounterCompareValue(AC_OL_REF_PWM0_BASE, EPWM_COUNTER_COMPARE_B, 1250);	
        EPWM_setCounterCompareShadowLoadMode(AC_OL_REF_PWM0_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setActionQualifierShadowLoadMode(AC_OL_REF_PWM0_BASE, EPWM_ACTION_QUALIFIER_A, EPWM_AQ_LOAD_ON_CNTR_PERIOD);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(AC_OL_REF_PWM0_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_enableADCTrigger(AC_OL_REF_PWM0_BASE, EPWM_SOC_A);	
        EPWM_setADCTriggerSource(AC_OL_REF_PWM0_BASE, EPWM_SOC_A, EPWM_SOC_TBCTR_ZERO);	
        EPWM_setADCTriggerEventPrescale(AC_OL_REF_PWM0_BASE, EPWM_SOC_A, 1);	
        EPWM_setClockPrescaler(BATT_H1_L1_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(BATT_H1_L1_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(BATT_H1_L1_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(BATT_H1_L1_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(BATT_H1_L1_PWM_BASE);	
        EPWM_setPhaseShift(BATT_H1_L1_PWM_BASE, 0);	
        EPWM_setSyncOutPulseMode(BATT_H1_L1_PWM_BASE, EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);	
        EPWM_setCounterCompareValue(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_A, 1562);	
        EPWM_setCounterCompareShadowLoadMode(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_disableCounterCompareShadowLoadMode(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_B);	
        EPWM_setCounterCompareShadowLoadMode(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_disableCounterCompareShadowLoadMode(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_C);	
        EPWM_disableCounterCompareShadowLoadMode(BATT_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_D);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(BATT_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setDeadBandDelayPolarity(BATT_H1_L1_PWM_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);	
        EPWM_setDeadBandDelayMode(BATT_H1_L1_PWM_BASE, EPWM_DB_RED, true);	
        EPWM_setRisingEdgeDelayCount(BATT_H1_L1_PWM_BASE, 100);	
        EPWM_setDeadBandDelayMode(BATT_H1_L1_PWM_BASE, EPWM_DB_FED, true);	
        EPWM_setFallingEdgeDelayCount(BATT_H1_L1_PWM_BASE, 100);	
        EPWM_setClockPrescaler(BATT_H2_L2_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(BATT_H2_L2_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(BATT_H2_L2_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(BATT_H2_L2_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(BATT_H2_L2_PWM_BASE);	
        EPWM_setPhaseShift(BATT_H2_L2_PWM_BASE, 3125);	
        EPWM_setCounterCompareValue(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_A, 1562);	
        EPWM_setCounterCompareShadowLoadMode(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_disableCounterCompareShadowLoadMode(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_B);	
        EPWM_setCounterCompareShadowLoadMode(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_disableCounterCompareShadowLoadMode(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_C);	
        EPWM_disableCounterCompareShadowLoadMode(BATT_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_D);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(BATT_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setDeadBandDelayPolarity(BATT_H2_L2_PWM_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);	
        EPWM_setDeadBandDelayMode(BATT_H2_L2_PWM_BASE, EPWM_DB_RED, true);	
        EPWM_setRisingEdgeDelayCount(BATT_H2_L2_PWM_BASE, 100);	
        EPWM_setDeadBandDelayMode(BATT_H2_L2_PWM_BASE, EPWM_DB_FED, true);	
        EPWM_setFallingEdgeDelayCount(BATT_H2_L2_PWM_BASE, 100);	
        EPWM_setClockPrescaler(INV_H1_L1_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(INV_H1_L1_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(INV_H1_L1_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(INV_H1_L1_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(INV_H1_L1_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(INV_H1_L1_PWM_BASE);	
        EPWM_setPhaseShift(INV_H1_L1_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_A, 1562);	
        EPWM_setCounterCompareShadowLoadMode(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_disableCounterCompareShadowLoadMode(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_B);	
        EPWM_setCounterCompareShadowLoadMode(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_disableCounterCompareShadowLoadMode(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_C);	
        EPWM_disableCounterCompareShadowLoadMode(INV_H1_L1_PWM_BASE, EPWM_COUNTER_COMPARE_D);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(INV_H1_L1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setDeadBandDelayPolarity(INV_H1_L1_PWM_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);	
        EPWM_setDeadBandDelayMode(INV_H1_L1_PWM_BASE, EPWM_DB_RED, true);	
        EPWM_setRisingEdgeDelayCount(INV_H1_L1_PWM_BASE, 100);	
        EPWM_setDeadBandDelayMode(INV_H1_L1_PWM_BASE, EPWM_DB_FED, true);	
        EPWM_setFallingEdgeDelayCount(INV_H1_L1_PWM_BASE, 100);	
        EPWM_setClockPrescaler(INV_H2_L2_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(INV_H2_L2_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(INV_H2_L2_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(INV_H2_L2_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(INV_H2_L2_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(INV_H2_L2_PWM_BASE);	
        EPWM_setPhaseShift(INV_H2_L2_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_A, 1562);	
        EPWM_setCounterCompareShadowLoadMode(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_disableCounterCompareShadowLoadMode(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_B);	
        EPWM_setCounterCompareShadowLoadMode(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_disableCounterCompareShadowLoadMode(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_C);	
        EPWM_disableCounterCompareShadowLoadMode(INV_H2_L2_PWM_BASE, EPWM_COUNTER_COMPARE_D);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(INV_H2_L2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setDeadBandDelayPolarity(INV_H2_L2_PWM_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);	
        EPWM_setDeadBandDelayMode(INV_H2_L2_PWM_BASE, EPWM_DB_RED, true);	
        EPWM_setRisingEdgeDelayCount(INV_H2_L2_PWM_BASE, 100);	
        EPWM_setDeadBandDelayMode(INV_H2_L2_PWM_BASE, EPWM_DB_FED, true);	
        EPWM_setFallingEdgeDelayCount(INV_H2_L2_PWM_BASE, 100);	
        EPWM_setClockPrescaler(AUX_H_L_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(AUX_H_L_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(AUX_H_L_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(AUX_H_L_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(AUX_H_L_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(AUX_H_L_PWM_BASE);	
        EPWM_setPhaseShift(AUX_H_L_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_A, 1562);	
        EPWM_setCounterCompareShadowLoadMode(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_disableCounterCompareShadowLoadMode(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_B);	
        EPWM_setCounterCompareShadowLoadMode(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_disableCounterCompareShadowLoadMode(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_C);	
        EPWM_disableCounterCompareShadowLoadMode(AUX_H_L_PWM_BASE, EPWM_COUNTER_COMPARE_D);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(AUX_H_L_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setDeadBandDelayPolarity(AUX_H_L_PWM_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);	
        EPWM_setClockPrescaler(OL_BATT_REF_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_2);	
        EPWM_setTimeBasePeriod(OL_BATT_REF_PWM_BASE, 0);	
        EPWM_setTimeBaseCounter(OL_BATT_REF_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(OL_BATT_REF_PWM_BASE, EPWM_COUNTER_MODE_STOP_FREEZE);	
        EPWM_disablePhaseShiftLoad(OL_BATT_REF_PWM_BASE);	
        EPWM_setPhaseShift(OL_BATT_REF_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(OL_BATT_REF_PWM_BASE, EPWM_COUNTER_COMPARE_A, 0);	
        EPWM_setCounterCompareShadowLoadMode(OL_BATT_REF_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(OL_BATT_REF_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_setCounterCompareShadowLoadMode(OL_BATT_REF_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(OL_BATT_REF_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setClockPrescaler(PV1_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(PV1_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(PV1_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(PV1_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(PV1_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(PV1_PWM_BASE);	
        EPWM_setPhaseShift(PV1_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(PV1_PWM_BASE, EPWM_COUNTER_COMPARE_A, 0);	
        EPWM_setCounterCompareShadowLoadMode(PV1_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(PV1_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_setCounterCompareShadowLoadMode(PV1_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(PV1_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setClockPrescaler(PV2_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(PV2_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(PV2_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(PV2_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(PV2_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(PV2_PWM_BASE);	
        EPWM_setPhaseShift(PV2_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(PV2_PWM_BASE, EPWM_COUNTER_COMPARE_A, 0);	
        EPWM_setCounterCompareShadowLoadMode(PV2_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(PV2_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_setCounterCompareShadowLoadMode(PV2_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(PV2_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setClockPrescaler(PV3_PWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);	
        EPWM_setTimeBasePeriod(PV3_PWM_BASE, 3125);	
        EPWM_setTimeBaseCounter(PV3_PWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(PV3_PWM_BASE, EPWM_COUNTER_MODE_UP_DOWN);	
        EPWM_setCountModeAfterSync(PV3_PWM_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);	
        EPWM_enablePhaseShiftLoad(PV3_PWM_BASE);	
        EPWM_setPhaseShift(PV3_PWM_BASE, 0);	
        EPWM_setCounterCompareValue(PV3_PWM_BASE, EPWM_COUNTER_COMPARE_A, 0);	
        EPWM_setCounterCompareShadowLoadMode(PV3_PWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(PV3_PWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_setCounterCompareShadowLoadMode(PV3_PWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(PV3_PWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setClockPrescaler(Spare_EPWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_2);	
        EPWM_setTimeBasePeriod(Spare_EPWM_BASE, 0);	
        EPWM_setTimeBaseCounter(Spare_EPWM_BASE, 0);	
        EPWM_setTimeBaseCounterMode(Spare_EPWM_BASE, EPWM_COUNTER_MODE_STOP_FREEZE);	
        EPWM_disablePhaseShiftLoad(Spare_EPWM_BASE);	
        EPWM_setPhaseShift(Spare_EPWM_BASE, 0);	
        EPWM_setCounterCompareValue(Spare_EPWM_BASE, EPWM_COUNTER_COMPARE_A, 0);	
        EPWM_setCounterCompareShadowLoadMode(Spare_EPWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setCounterCompareValue(Spare_EPWM_BASE, EPWM_COUNTER_COMPARE_B, 0);	
        EPWM_setCounterCompareShadowLoadMode(Spare_EPWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);	
        EPWM_setActionQualifierAction(Spare_EPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);	
    }
    

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

    您好、Asad、

    感谢您发送此信息、要回答您有关死区的问题、死区可确保有延迟添加到下降沿或上升沿、也可以根据您的配置同时添加到这两者。 是否还有示波器捕获了重叠的这两个 PWM 信号? 我将联系板载设计专家、了解它是否可能是感应噪声问题。

    此致!

    Ryan Ma

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

    您好、Ryan、

      非常感谢您的帮助。 我们在最初配置 ePWM 时验证了死区。 但我会再次捕获并与您分享。  

    我们注意到、每次我们同时操作 PV 转换器时都会发生损坏。 这些转换器安装在单独的板上。 PV 转换器和电池转换器之间的唯一功率共享链路是直流母线。 尽管总线似乎调节到可接受的限值、但我们的 PV 转换代码确实存在一些 MPPT 跟踪问题、会导致功率摆幅。 我添加了此信息、因为这可能有助于考虑电池转换器的感应开关可能性。   

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

    您的最小死区限制是什么? 增加此延迟是否有助于解决此问题?  

    此致!

    Ryan Ma

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

    您好、Ryan、

    我们正处在输出电压谐波的极限、因此无法通过一些资质认证测试。 因此、我们没有太大的自由度来增加这个死区。

    您是否验证了我们的 ePWM 设置以实现正确的死区和互补运行?  

    请分享您对我们的腿部短路的合理原因的想法。

    我认为、缩小原因的可能性会有所帮助、至少在某种程度上考虑是与软件相关的设置还是硬件设计问题。

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

    您好、Asad、

    您的 PWM 配置软件代码似乎没有问题。 如图所示、我已在示波器上输出。

    必须存在导致短路的其他一些问题。 我将与电路板设计专家一起查看原理图、以了解哪些因素可能会影响这一点。

    此致!

    Ryan Ma

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

    您好、Asad、

    我检查了原理图、看上去一切正常。

    当您的意思是快速失败时、我有一些您可以检查的问题/建议

    1.在施加闸极脉冲前是否验证了硬件? 我假设您在设计时会考虑开关降额因数。

    2.故障事件是一段时间后发生,还是在运行 PWM 逻辑后模拟?

    3.输入侧电容器是否完好无损或出现故障?  

    4.  我引述"一些在一些罕见的情况下如何"- 您是否有这个板工作与任何特定的逻辑之前?

    5.您是否曾尝试限制从电源到硬件的输入电流? 如果是、限制是多少? -这消除了任何硬件问题

    。  

    请告诉我您的想法、我们可以进行进一步调试。

    此致!

    Uttam Reddy Pailla

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

    尊敬的 Utham Reddy Pailla:

      非常感谢您的建议和考虑要点。 请在下方找到答案:

    1.在施加闸极脉冲前是否验证了硬件? 我假设您在设计时会考虑开关降额因数。

      硬件已经过测试、并在损坏之前保持很长时间正常运行。 实际上系统中有三个转换器:电池侧、PV 侧和逆变器。 如果我们仅操作电池和逆变器、则不存在任何短路/损坏事件。 它只在我们操作 PV 转换器时发生、更具体地说就是多个 PV 转换器。 我们的 PV 控制存在一些导致功率变化较大的稳定性问题、我们认为它会引起一些故障原因。

    2.故障事件是一段时间后发生,还是在运行 PWM 逻辑后模拟?

    如第1点所述、仅当电池和逆变器转换器正常运行时、不会发生故障。 当 PV 转换器开始推动直流母线中出现波动的电源时、将在 PV 连接后的5到10秒内发生电压波动。  

    3.输入侧电容器是否完好无损或出现故障?  

    电容器永远不会损坏。  

    4.  我引述"一些在一些罕见的情况下如何"- 您是否有这个板工作与任何特定的逻辑之前?

    我想前面的几点解答了这个问题。

    5.您是否曾尝试限制从电源到硬件的输入电流? 如果是、限制是多少? -这消除了任何硬件问题

    我们正在监控@ 16KHz 输入电源的峰值电流、还具有针对过压/过流情况下跳闸的软件安全监控功能。 有一些额外的仪表带有电压和电流探针。 我们不会记录任何过度的测量值。 能量的路径似乎通过直流母线电容器。  

    同时、我们发现 ePWM 输出在跳闸状态下配置为高阻抗。 我们还注意到、在一种情况下、损坏发生在我们的软件监控检测到逆变器输出中存在过流、并对 ePWM 输出执行软件跳闸之时。 由于输出配置为跳闸状态下的高阻抗、因此高侧和低侧开关可能会产生高电压、从而导致直流母线和接地之间发生直接短路。 我们现在已配置为在跳闸状态下将两个互补输出驱动为低电平。 我们现在正在测试、看看这是否解决了问题。

    如果需要更多信息、敬请告知。

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

    您好、Asad、

    是的、您说得对、虽然启用了 TZ、但 PWM 不应该处于高阻抗状态(这与未定义状态类似)。  相反、将其设置为低电平 、这样应该可以解决您的问题。  

    我即将结束此主题帖、如果您有任何进一步的问题、请随时与我们联系。  

    谢谢。此致、

    Uttam Reddy Pailla