Other Parts Discussed in Thread: TMS320F280039C, C2000WARE
器件型号: TMS320F280039C
主题: C2000WARE 中讨论的其他器件
问题描述
我正在使用 TMS320F280039C 微控制器 多个 ePWM 模块 配置用于 HRPWM Operation.My 目标是首先更新影子寄存器中的比较值、然后加载所有值 同步 对于活动寄存器、至少在每个 ePWM 内、并且理想情况下跨多个 ePWM 模块。为此、我尝试临时冻结影子‑μ s 到‑μ s 活动传输:
编程步骤
- 冻结影子加载
EPwm1Regs.CMPCTL.all = 0x0F; - CLA 更新 CMPA/CMPB + HRPWM 值
EPwm1Regs.CMPA.all = ((long)cmpa) << 16 | cmpab_hr; - Re‑启用正常影子加载
EPwm1Regs.CMPCTL.all = 0x0A;
预期行为
一旦EPwm1Regs.CMPCTL.all = 0x0F; 写入、占空比应保持不变、因为应该会有新的比较值 不会 从影子寄存器传输到活动寄存器。
观察到的行为
即使“Load Mode“设置为 冻结 、比较值 CMPA 和 CMPB 仍然变化 占空比也是如此。
问题
- 是否必须配置任何其他位或寄存器 完全冻结 影子‑到‑主动传输?
特别是结合使用 HRPWM 和 CLA 执行更新? - 确保所有比较值真正同步加载的建议配置是什么?
–在单个 ePWM 模块内、和
–跨多个 ePWM 模块?
–确保即使 PWM 模块之间存在相移、影子到活动加载也会在 PRD 或零处发生 - 是否需要额外的 HRPWM‑特定设置才能同时冻结和加载 CMPAHR/CMPBHR?






(这同样适用于 0x0005 而非 0x000A)