工具/软件:Code Composer Studio
您好!
我将 TMS320F28035 (Piccolo)与 CCS Vers 结合使用。 6.1.0.00104 (CPU 和 CLA 均为 C 代码)、以便使用峰值电流模式 controlPWM 控制断续导通模式下的升压转换器(开关间隔开始时的扼流电流应为零、我将在 CLA 中测试此情况)。 CLA 任务1执行控制 PWM1A 的 C 代码、以便从转换器获得恒定输出电压。
如果在开关间隔开始时电流大于阈值、则我尝试在当前开关间隔内使 PWM1A 关闭(在下一个间隔内、它应自动再次打开)。 通过将0输入 DAC 并在模拟比较器的帮助下执行此操作很好(但可能比必要的速度慢)。 我希望更好地避开模拟路径并生成一个关闭 PWM1A 的 SW 跳闸。 不幸的是、这不起作用、在我看来 PWM1只是停止(永远、这不是我想要的、完全不是)。 CLA 中是否存在寻址问题(CPU 中为32位指针、CLA 中为16位指针???) 当我读取和时
在 CPU 和 CLA 中以相同的方式写入 ePWM 寄存器?
非常感谢您提出的任何有用建议。
此致、
Leo Rohrecker
//=== CPU 代码中的初始化:===
EALLOW;
//设置比较:A = PWM 最大直流值、B = ADC SOC
EPwm1Regs.CMPA.half.CMPA = 0;// DC = 0
EPwm1Regs.CMPB = ADC_SOC_OFFSET;
//与 SYSCLKOUT 的时钟比率
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
//周期
EPwm1Regs.TBPRD = PWM_TIMER_TBPRD;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
//设置操作
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; //将 PWM1A 设置为零
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;//最大占空比
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; //将 PWM1B 设置为零
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;// ADC SOC 第一组
// CBC 跳闸,定义事件(DCAEVT2)
//(请参阅 SPRUGE9E、例如 14)
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT; // DCAH =比较器1输出
EPwm1Regs.TZDCSEL.bit.DCAEVT2 = TZ_DCAH_HI; // DCAEVT2 = DCAH 高电平(将作为 COMP 变为有效。 输出变为高电平)
EPwm1Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT2; // DCAEVT2 = DCAEVT2 (未滤波)
EPwm1Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_异 步;//采用异步路径
EPwm1Regs.TZSEL.bit.DCAEVT2 = 1; //启用 CBC 事件
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO; // EPWM1A 将变为低电平
EPwm1Regs.TZCTL.bit.TSB = TZ_NO_CHANGE; // EPWM1B 未更改
//定义 SOC (ADC 触发器)
EPwm1Regs.ETSEL.bit.SOCBEN = 1; //启用 SOC B
EPwm1Regs.ETSEL.bit.SOCBSEL = ET_CTRU_CMPB; //从 CPMB 获取 SOC 递增计数
EPwm1Regs.ETPS.bit.SOCBPRD = 1; //在发生第一个事件时生成脉冲
EDIS;
//=== 在 CLA 代码中运行时间操作:===
//在开关间隔开始时通过电流测量检查 CCM
if (((float32) ADC_U_I1 > U_I_START_THRESH_CCM_til){
//启动电流过高.. 立即关闭
EALLOW;
//EPwm1Regs.TZFRC.bit.DCAEVT2 = 1;//强制 DCAEVT2跳闸条件... 也不起作用 !!!!!
EPwm1Regs.TZFRC.bit.CBC = 1;//强制 CBC 跳闸... 不起作用!!!!!
EDIS;
//Comp1Regs.DACVAL.bit.DACVAL = 0; //通过模拟比较器立即关闭。 (替代方法、工作正常、但比数字路径慢)
}
//控制器代码等...
//...
//-------------------------------------------------------- 结束----------------------------------------