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.

LLC谐振套件软件程序的同步整流关断的问题



请问下面这个构建3程序,使用的是模拟比较器来控制后级同步整流管的开通和关断

当ADC采样到的同步整流管电流值大于比较器模块的设定值时,comp模块输出低电平,然后pwm模块的ET模块检测到comp过来的低电平时触发TZ来强制PWM输出为高。PWM强制为高时,此时同步整流管的MOSFET是导通的。但是何时将同步整流MOSFET关断呢?是如何关断的呢?因为同步整流管导通之后肯定还是需要关断的啊,不关断的话不行的啊。

盼望回复,十分感谢。

#if (INCR_BUILD == 3) // Closed Loop PID with SR timing based on Current (and Primary switches)
// Configure SR current trips
EALLOW;
// Configure Analog Comparators
Comp1Regs.COMPCTL.bit.SYNCSEL = 1; // Sync with SYSCLK / use Qualification
Comp1Regs.COMPCTL.bit.QUALSEL = 3; // Require input be stable for 3 consecutive SYSCLKs 
Comp1Regs.COMPCTL.bit.CMPINV = 1; // Output Low when true
Comp1Regs.COMPCTL.bit.COMPSOURCE = 0; // Use internal DAC
Comp1Regs.COMPCTL.bit.COMPDACEN = 1; // Enable DAC
Comp1Regs.DACVAL.bit.DACVAL = COMP1; // Trip Current = DACVAL/1023*82.5

Comp2Regs.COMPCTL.bit.SYNCSEL = 1; // Sync with SYSCLK / use Qualification
Comp2Regs.COMPCTL.bit.QUALSEL = 3; // Require input be stable for 3 consecutive SYSCLKs 
Comp2Regs.COMPCTL.bit.CMPINV = 1; // Output Low when true
Comp2Regs.COMPCTL.bit.COMPSOURCE = 0; // Use internal DAC
Comp2Regs.COMPCTL.bit.COMPDACEN = 1; // Enable DAC
Comp2Regs.DACVAL.bit.DACVAL = COMP2; // Trip Current = DACVAL/1023*82.5

// Configure ePWM Digital Compare modules
EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT; // DCAH = Comparator 1 output
EPwm2Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_LOW; // DCAEVT1 on DCAH low (will become active as Comparator1 output goes low), DCAL = don't care
EPwm2Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT_FLT; // DCAEVT1 filtered
EPwm2Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_ASYNC; // Take async path
EPwm2Regs.DCFCTL.bit.BLANKE = DC_BLANK_ENABLE; // Enable Blanking window
EPwm2Regs.DCFCTL.bit.SRCSEL = DC_SRC_DCAEVT1; // Filter source = DCAEVT1
EPwm2Regs.DCFCTL.bit.PULSESEL = DC_PULSESEL_ZERO; // Filter start on TBCTR = ZERO
EPwm2Regs.DCFOFFSET = 0; // Filter offset
EPwm2Regs.DCFWINDOW = 0; // Blanking window duration

EPwm3Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP2OUT; // DCAH = Comparator 2 output
EPwm3Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_LOW; // DCAEVT1 on DCAH low (will become active as Comparator2 output goes low), DCAL = don't care
EPwm3Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT_FLT; // DCAEVT1 filtered
EPwm3Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_ASYNC; // Take async path
EPwm3Regs.DCFCTL.bit.BLANKE = DC_BLANK_ENABLE; // Enable Blanking window
EPwm3Regs.DCFCTL.bit.SRCSEL = DC_SRC_DCAEVT1; // Filter source = DCAEVT1
EPwm3Regs.DCFCTL.bit.PULSESEL = DC_PULSESEL_ZERO; // Filter start on TBCTR = ZERO
EPwm3Regs.DCFOFFSET = 0; // Filter offset
EPwm3Regs.DCFWINDOW = 0; // Blanking window duration

// Configure ePWM Trip-Zone module 
EPwm2Regs.TZCTL.bit.DCAEVT1 = TZ_FORCE_HI; // EPWM2A will go HIGH

EPwm3Regs.TZCTL.bit.DCAEVT1 = TZ_FORCE_HI; // EPWM3A will go HIGH

EDIS;

#endif // (INCR_BUILD == 3)