Thread 中讨论的其他器件:controlSUITE
您好!
请为我提供一个使用 ePWM X bar 寄存器配置跳闸区域的示例。 我从控制套件的开发套件示例中获取了一段代码。 请参阅以下示例文件夹 C:\ti\controlSUITE\development_kits\HV_1PH_DCAC\v1_04_00_00\f2837x\connectedinfltr
下面我附上了参考代码
计划:
EALLOW;
Cmpss3Regs.COMPCTL.bit.COMPDACE=1;
//NEG 信号来自低电平比较器的 DAC
Cmpss3Regs.COMPCTL.bit.COMPLSOURCE=0;
//NEG 信号来自高比较器的 DAC
Cmpss3Regs.COMPCTL.bit.COMPHSOURCE=0;
//使用 VDDA 作为比较器 DAC 的基准
Cmpss3Regs.COMPDACCTL.bit.SELREF= 0;
//将 DAC 设置为 H~75%和 L ~25%值
Cmpss3Regs.DACHVALS.bit.DACVAL=3000;
cmps3Regs.DACLVALS bit.DACVAL = 1000;
//比较器输出"不"反相、以实现高比较事件
Cmpss3Regs.COMPCTL.bit.COMPHINV=0;
//比较器输出针对低比较事件被反转
Cmpss3Regs.COMPCTL.bit.COMPLINV=1;
//配置数字过滤器
//最大 CLKPRESCALE 值可在两次采样之间提供最多的时间
Cmpss3Regs.CTRIPHFILCLKCTL.bit.CLKPRESCALE = 0x1;
//最大 SAMPWIN 值可提供最大数量的样本
Cmpss3Regs.CTRIPHFILCTL.bit.SAMPWIN = 0x1F;
//最大阈值要求整个窗口的静态值
// THRESH 应该大于 SAMPWIN 的一半
Cmpss3Regs.CTRIPHFILCTL.bit.THRESH = 0x1F;
//复位滤波器逻辑&开始滤波
cmps3Regs.CTRIPHFILCTL.bit.FILINIT = 1;
//配置 CTRIPOUT 路径
//数字滤波器输出馈送 CTRIPH 和 CTRIPOUTH
Cmpss3Regs.COMPCTL.bit.CTRIPHSEL = 0x2;
Cmpss3Regs.COMPCTL.bit.CTRIPOUTHSEL = 0x2;
//确保异步路径比较高事件和低事件
//不会进入带有锁存数字滤波器输出的或门
Cmpss3Regs.COMPCTL.bit.ASYNCHEN=0;
Cmpss3Regs.COMPCTL.bit.ASYNCLEN=0;
//比较器迟滞控制,设置为2个典型值
Cmpss3Regs.COMPHYSCTL.bit.COMPHYS=2;
// DAC 值在 sysclock 上更新
Cmpss3Regs.COMPDACCTL.bit.SWLOADSEL=0;
//斜坡被绕过
Cmpss3Regs.COMPDACCTL.bit.DACSOURCE=0;
//清除锁存的比较器事件
Cmpss3Regs.COMPSTSCLR.bit.HLATCHCLR=1;
Cmpss3Regs.COMPSTSCLR.bit.LLATCHCLR=1;
EDIS;
EALLOW;
OutputXbarRegs.OUTPUT3MUX0TO15CFG.bit.MUX5 = 0;//配置 OUTPUTXBAR3 MUX5 = CTRIPOUTL spruhm8i.pdf 选项卡。 第1195页
OutputXbarRegs.OUTPUT4MUX0TO15CFG.bit.MUX4 = 0;//配置 OUTPUTXBAR4 MUX4 CTRIPOUTH spruhm8i.pdf 选项卡。 第1195页
OutputXbarRegs.OUTPUT4MUXENABLE.BIT.MUX4 = 1;//为输出启用 OUTPUTXBAR3多路复用器
OutputXbarRegs.OUTPUT3MUXENABLE.BIT.MUX5 = 1;//为输出启用 OUTPUTXBAR3多路复用器
EDIS;
EALLOW;
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX4=0;//配置 EPWMXBarRegs MUX4 = CTRIPH spruhm8i.pdf 选项卡。 9-2页1191.
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX5=0;//配置 EPWMXBarRegs MUX5 = CTRIPL spruhm8i.pdf 选项卡。 9-2页1191.
// EPwmXbarRegs.TRIP4MUXENABLE.ALL=0x0000;
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX4=1;
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX5=1;
EDIS;
EALLOW;
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL=3;//TRIP 4是 DCAHCOMPSEL 的输入
EPwm1Regs.TZDCSEL.bit.DCAEVT1=TZ_DCAH_HI;
EPwm1Regs.DCACTL.bit.EVT1SRCSEL=DC_EVT1;
EPwm1Regs.DCACTL.bit.EVT1FRCSYNCSEL=DC_EVT_SYNC;
EPwm1Regs.TZSEL.bit.DCAEVT1=1;
EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL=3;//TRIP 4是 DCAHCOMPSEL 的输入
EPwm2Regs.TZDCSEL.bit.DCAEVT1=TZ_DCAH_HI;
EPwm2Regs.DCACTL.bit.EVT1SRCSEL=DC_EVT1;
EPwm2Regs.DCACTL.bit.EVT1FRCSYNCSEL=DC_EVT_SYNC;
EPwm2Regs.TZSEL.bit.DCAEVT1=1;
//我们希望 OST/CBC 事件做什么?
// TZA 事件会强制 EPWMxA
// ZB 事件会强制 EPWMxB
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;// EPWMxA 将变为低电平
EPwm1Regs.TZCTL.bit.TSB = TZ_FORCE_LO;// EPWMxB 将变为低电平
EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO;// EPWMxA 将变为低电平
EPwm2Regs.TZCTL.bit.TSB = TZ_FORCE_LO;// EPWMxB 将变为低电平
EDIS;