Other Parts Discussed in Thread: C2000WARE, SYSCONFIG
器件型号: F28377D-SEP
Thread 中讨论的其他器件: C2000WARE、 SysConfig
尊敬的 TI 专家:
我正在 C2000 MCU 上的 HRPWM 模块采用向上/向下双向计数模式。 我的目标是使用 CMPAHR 在高分辨率下调整占空比、同时使用具有固定高分辨率死区的死区模块(DBFEDHR = 20 步)。
不过、我在调试期间发现了以下问题:
当我通过 CCS 表达式的 cmpahr_ofs 动态更改 CMPAHR 寄存器时、物理输出的占空比根本不会改变(我已经确认寄存器值在存储器中成功更新)。
fTmr=0.5*EPWM_TIMER_TBPRD;
fTmr=__fsat(fTmr,EPWM_MAX_CMPA,EPWM_MIN_CMPA);
Tmr_int =(Uint16)fTmr;
Tmr_frac=(fTmr-Tmr_int)*MEP_ScaleFactor+0.5;
EPwmRegs->CMPA.bit.CMPA =Tmr_int;
EPwmRegs->CMPA.bit.CMPAHR=(cmpahr_ofs<<8);

另一方面、如果在“Expressions“视图中手动更改 DBFEDHR 寄存器、就可以看到示波器上的边缘完美移动。
当 HR 死区处于活动状态时、CMPAHR 值被硬件完全忽略或被该边缘覆盖。
我的问题是:
启用高分辨率死区 (HRDB) 是否会完全覆盖或禁用 CMPAHR 对死区模块生成的边沿的影响?
如果这是预期的硬件行为(MEP 多路复用)、建议使用什么软件权变措施来同时独立控制动态高分辨率占空比和固定高分辨率死区?
我们非常感谢您对底层硬件路由的任何见解。 谢谢!