工具/软件:
e2e.ti.com/.../_5553F8760690D85368565553816727602D00CC5381672760_.pdf
#ifdef UNIPOLA_MODULATION EALLOW;
/*------------------------------------ EPWM 1 ------------------------ *//*设置计时器周期、周期= CPUClockFreq/PWMfrequency*/
EPwm1Regs.TBPRD = PERIOD>>1;
/*对称波*/
EPwm1Regs.TBCTL.BIT.CTRMODE = TB_COUNT_UPdown;
/*禁用相位加载*/
EPwm1Regs.TBCTL.BIT.PHSEN = TB_ENABLE;
/*时钟比与 SYSCLKOUT*/
EPwm1Regs.TBCTL.BIT.HSPCLKDIV = 0;
/* SYSCLKOUT/1*/
EPwm1Regs.TBCTL.BIT.CLKDIV = 0;
/*同步输入信号*/
EPwm1Regs.TBCTL.BIT.SYNCOSEL = TB_CTR_ZERO;
/* PRD*/的影子加载
EPwm1Regs.TBCTL.BIT.PRDLD = TB_SHADOW;
/*设置重影*/
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
/*设置操作*/
EPwm1Regs.AQCTLA.bit.cad = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQCLEAR;
EPwm1Regs.AQCTLA.bit.ZRO = AQNO_ACTION;
/*设置死区、1A 时的上升延迟和1B 时的下降延迟*/
EPwm1Regs.DBCTL.BIT.OUT_MODE = DB_FULL_ENABLE;
/*低电平有效互补模式(EPWMxB 反相)*/
EPwm1Regs.DBCTL.BIT.POLSEL = DB_ACTV_HIC;
/* 1B 是上升沿和下降沿延迟源*/
EPwm1Regs.DBCTL.BIT.IN_MODE = DBA_ALL;
/*上升沿和下降沿延迟*/
EPwm1Regs.DBRED = DEADTIME_RISING;
EPwm1Regs.DBFED = DEADTIME_FALLING;
/*------------------------------------ 结束 EPWM 1 ------------------------ */
/*------------------------------------ EPWM 2 ---------------------------- */
/*设置计时器周期、周期= CPUClockFreq/PWMfrequency */
EPwm2Regs.TBPRD = PERIOD>>1;
/*对称波*/
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
/*时钟比与 SYSCLKOUT*/
EPwm2Regs.TBCTL.BIT.HSPCLKDIV = 0;
/* SYSCLKOUT /*/
EPwm2Regs.TBCTL.BIT.CLKDIV = 0;
/*启用相位加载*/
EPwm2Regs.TBCTL.BIT.PHSEN = TB_ENABLE;
/*同步输入信号和传递*/
EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_sync_in;
/* PRD*/的影子加载
EPwm2Regs.TBCTL.BIT.PRDLD = TB_SHADOW;
/*配置时基以在接收到同步事件时进行计数*/
EPwm2Regs.TBCTL.bit.PHSDIR = TB_UP;
/* fo 2的值用于逻辑延迟*/
EPwm2Regs.TBPHS.half.TBPHS = 2;
/*设置重影*/
EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
/*设置操作*/
EPwm2Regs.AQCTLA.bit.cad = AQ_SET;
EPwm2Regs.AQCTLA.bit.CAU = AQCLEAR;
EPwm2Regs.AQCTLA.bit.ZRO = AQNO_ACTION;
/*设置 PWM1的死区、1A 时的上升延迟和1B 时的下降延迟*/
EPwm2Regs.DBCTL.BIT.OUT_MODE = DB_FULL_ENABLE;
/*高电平有效互补模式(EPWMxA 反相)*/
EPwm2Regs.DBCTL.BIT.POLSEL = DB_ACTV_HIC;
/* 1A 用于上升和下降*/
EPwm2Regs.DBCTL.BIT.IN_MODE = DBA_ALL;
/*上升沿和下降沿延迟*/
EPwm2Regs.DBRED = DEADTIME_RISING;
EPwm2Regs.DBFED = DEADTIME_FALLING;
/*---------------------------- 结束初始化 EPWM n+1 ---------------------------- */
/*清除 TB 计数器*/
EPwm1Regs.TBCTR = 0x0;
EPwm2Regs.TBCTR = 0x0;
/* counter=zero 处一个组上的 ADC SOC */
EPwm1Regs.ETSEL.bit.SOCAEN = 1;
EPwm1Regs.etsel.bit.SOCASEL = ET_CTR_ZERO;
EPwm1Regs.ETPS.bit.SOCAPRD = ET_1st;
/*为所有 PWM 模块发出同步信号*/
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
/* CPU 暂停跳闸的逐周期中断*/
EPwm1Regs.TZSEL.bit.CBC6=0x1;
EPwm2Regs.TZSEL.bit.CBC6=0x1;
/*我们希望 OST/CBC 事件做什么*/
/* EPWMxA 和 B 将走低*/
EPwm1Regs.TZCTL.BIT.TZA = TZ_FORCE_LO;
EPwm1Regs.TZCTL.BIT.TZB = TZ_FORCE_LO;
EPwm2Regs.TZCTL.BIT.TZA = TZ_FORCE_LO;
EPwm2Regs.TZCTL.BIT.TZB = TZ_FORCE_LO;
/*软件强制跳闸以禁用逆变器*/
EPwm1Regs.TZFRC.bit.OST=0x1;
EPwm2Regs.TZFRC.bit.OST=0x1;
伊迪斯;
#endif
#ifdef UNIPOLAL_MODULATION
Duty=_IQ24mpy、InvSine(InvModIndex);
Half_period =((int32)EPwm1Regs.TBPRD)>>1;
/*_IQ24mpy(I8Q24(占空比)、I32Q0(half_period))= I32 */
EPwm1Regs.CMPA.half.CMPA=_IQ24mpy(、Half_period(_IQ24mpy、Duty(_IQ24))))-1.0 μ s+Half_period;
EPwm2Regs.CMPA.half.CMPA=_IQ24mpy、half_period)Duty(+half_period;
#endif
这是单极调制的代码。我想知道 InvSine 和 InvModIndex 是如何配置的?