Part Number:TMS320F280049C
up-down模式下产生中心对称的波形,如何使用高分辨率的占空比调节?(1)开启both edge模式时,CMPAHR会使波形产生移相而不是改变占空比 (2)开启falling edge模式时,有高分辨率的占空比调节 但不能表示所有占空比 如:100M 频率 TBper:100 时想表示50.8%的占空比 CMPA取50 即使高分辨率时间最大 理论也只是50.5%;可以想到的解决方案是同时使用CMPA和CMPB,其中CMPA和CMPAHR一起负责下降沿,但这种方法会产生不完全中心对称的波形 。
我参考了历程hrpwm_ex4_duty_updown_sfo,但历程只能进行移相。
已经开启SFO。
请问,有什么更好的方法去使用吗 ,或者说(2)中我能想到的解决方案是正确做法吗。
Green Deng:
你好,问题已经收到,我会尽快回复。
,
user6427321:
非常感谢,我等待你的回复
,
Green Deng:
user6427321 说:(1)开启both edge模式时,CMPAHR会使波形产生移相而不是改变占空比
这里不应该发生相移的情况(使两条边沿同一方向移动?)。应该是使两个边缘相互靠近/远离,仅引起占空比的变化。你试一下非对称模式下修改这个寄存器值会有什么效果?
,
user6427321:
通过示波器观察的 开启both edge模式 使用除CMPAHR外完全相同且同步的epwm1和epwm2 先上升的信号先下降 产生相移效果 不改变占空比 (确实是两条边沿同一方向移动)。
非对称模式下可以正常高精度修改占空比。
,
Green Deng:
你好,请问你的AQ模块配置是什么样的?
,
user6427321:
这是发生相移的配置
EPWM_setActionQualifierAction(ePWM[j],EPWM_AQ_OUTPUT_A,EPWM_AQ_OUTPUT_HIGH,EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(ePWM[j],EPWM_AQ_OUTPUT_A,EPWM_AQ_OUTPUT_LOW,EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
HRPWM_setMEPEdgeSelect(ePWM[j], HRPWM_CHANNEL_A, HRPWM_MEP_CTRL_RISING_AND_FALLING_EDGE); HRPWM_setMEPControlMode(ePWM[j], HRPWM_CHANNEL_A, HRPWM_MEP_DUTY_PERIOD_CTRL); HRPWM_setCounterCompareShadowLoadEvent(ePWM[j], HRPWM_CHANNEL_A, HRPWM_LOAD_ON_CNTR_ZERO);
,
Green Deng:
HRPWM_setCounterCompareShadowLoadEvent(ePWM[j], HRPWM_CHANNEL_A, HRPWM_LOAD_ON_CNTR_ZERO);
这里更改为加载CNTR ZERO和PRD。
它必须是CNTR ZERO和PRD。
,
user6427321:
非常感谢,是我的疏忽没有看到正确的历程。
此外还想请教一个问题,历程中注释写出了CMPA的加载方式也必须为ZERO和PRD。
手册中写出HRPWM虽然模式为ZERO和PRD,但实际只在ZERO处装载影子寄存器的值,PRD用于内部逻辑。
那CMPA会在ZERO和PRD处装载影子寄存器的值,还是会跟随HRPWM只在ZERO处装载影子寄存器的值;
,
Green Deng:
这个问题我咨询了一下其他工程师,对方给出的答复如下:
So it's a bit tricky. The user must set the load mode to ZERO AND PRD. BUT the user shadow value will only be loaded at ZERO. THE PRD load is used internally to update some internal settings hidden to the customer.
,
user6427321:
请问我这样的理解正确吗
1.当开启HRPWM,上下计数模式,并且产生对称的波形时,必须设置CMPA(EPWM_setCounterCompareShadowLoadMode)和CMPAHR(HRPWM_setCounterCompareShadowLoadEvent)均为ZERO和PRD。但PRD事件为芯片内部逻辑,实际CMPA和CMPAHR都只会在ZERO处装载影子寄存器的值。
2.当不开启HRPWM,上下计数模式,将CMPA设置为ZERO和PRD时,会真正的在ZERO处和PRD两处装载CMPA。
,
Green Deng:
你好,我认为你的理解是正确的。
,
user6427321:
非常感谢您的帮助。