www.ti.com

Controlling Dual 3-Phase Inverters for Motors (ACI and PMSM)

Example 3-3. Code Snippet for Configuration in Figure 3-7

//=====================================================================

//Config //=====================================================================

//Initialization Time

//========================

 

 

// EPWM Module 1 config

 

 

EPwm1Regs.TBPRD = 600;

 

// Period = 1200 TBCLK counts

EPwm1Regs.TBPHS = 0;

 

// Set Phase register to zero

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Symmetrical mode

EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;

// Master module

EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;

 

EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;

// Sync down-stream module

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

 

EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;

 

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;

// load on CTR=Zero

EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

// load on CTR=Zero

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;

// set actions for EPWM1A

EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;

 

EPwm1Regs.AQCTLB.bit.ZRO = AQ_CLEAR;

// set actions for EPWM1B

EPwm1Regs.AQCTLB.bit.CAD = AQ_SET;

 

// EPWM Module 2 config

 

 

EPwm2Regs.TBPRD = 600;

 

// Period = 1200 TBCLK counts

EPwm2Regs.TBPHS = 0;

 

// Set Phase register to zero

EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;// Symmetrical mode

EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;

// Slave module

EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;

 

EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;

// sync flow-through

EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

 

EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;

 

EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // load on CTR=Zero

EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // load on CTR=Zero

EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET;

// set actions for EPWM1A

EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;

 

EPwm2Regs.AQCTLB.bit.ZRO = AQ_CLEAR;

// set actions for EPWM1B

EPwm2Regs.AQCTLB.bit.CAD = AQ_SET;

 

//============================================================

EPwm1Regs.CMPA.half.CMPA = 400; // adjust duty for output EPWM1A & EPWM1B

EPwm1Regs.CMPB = 200;

// adjust point-in-time for ADCSOC trigger

EPwm2Regs.CMPA.half.CMPA = 500; // adjust duty for output EPWM2A & EPWM2B

EPwm2Regs.CMPB = 250;

// adjust point-in-time for ADCSOC trigger

3.6Controlling Dual 3-Phase Inverters for Motors (ACI and PMSM)

The idea of multiple modules controlling a single power stage can be extended to the 3-phase Inverter case. In such a case, six switching elements can be controlled using three PWM modules, one for each leg of the inverter. Each leg must switch at the same frequency and all legs must be synchronized. A master + two slaves configuration can easily address this requirement. Figure 3-9shows how six PWM modules can control two independent 3-phase Inverters; each running a motor.

As in the cases shown in the previous sections, we have a choice of running each inverter at a different frequency (module 1 and module 4 are masters as in Figure 3-9), or both inverters can be synchronized by using one master (module 1) and five slaves. In this case, the frequency of modules 4, 5, and 6 (all equal) can be integer multiples of the frequency for modules 1, 2, 3 (also all equal).

80

Applications to Power Topologies

SPRU791D–November 2004–Revised October 2007

Submit Documentation Feedback

Page 80
Image 80
Texas Instruments TMS320x28xx, 28xxx manual Controlling Dual 3-Phase Inverters for Motors ACI and Pmsm