今天发现,F28035的PWM在updown模式下无法通过HRpwm模块来解决分辨率问题,当PWM采用updown模式时,如果高分辨率PWMD的边沿模式位EPwm1Regs.HRCNFG.bit.EDGMODE设置成0x02(HR_FEP),由于仅下降沿获得高分辨率,上升沿无法获得高分辨率,会导致PWM事实上的分辨率仍然只有1/60M。另一方面,如果EPwm1Regs.HRCNFG.bit.EDGMODE设置成0x03(HR_BEP),这种工况下,高分辨率的部分在上升沿和下降沿均为延迟,也就是说高分辨率的部分在HR_BEP模式下,只能造成相移,不能改变占空比。
从这一点来讲,TI提供的双向BuckBoost的例程应该是有问题的,无法实现高分辨率的PWM。各位大神,有没有人有遇到过这个问题,是否可以提供解决方案。
Green Deng:
感谢您对TI产品的关注!为更加有效地解决您的问题,我需要多一些时间查看这款芯片/由于问题比较复杂,我需要询问更了解这款芯片的TI资深工程师,再为您解答,一旦得到回复会立即回复给您。
,
Green Deng:
1.即使仅对下降沿应用边缘控制,与禁用HRPWM功能相比,您仍将具有更高的分辨率。
2.如果将CTLMODE(HRCNFG寄存器的位2)设置为1,则这是正确的,这意味着TBPHSHR寄存器控制边沿位置。 如果将CTLMODE设置为0,表示CMPAHR或TBPRDHR寄存器控制边沿位置,则可以更改占空比。
,
user4754328:
1.仅用下降沿应用边缘控制,在一半的范围获得高分辨率,另外一半的分辨率仍为1/60M,如果您同意这一点,那么我们在第一个问题上算是达成一致,只是对更高分辨率的定义略有不同。
2.我的设置如下:
EALLOW; EPwm1Regs.HRCNFG.all = 0x0; EPwm1Regs.HRCNFG.bit.EDGMODE = HR_BEP; // MEP control on both edges EPwm1Regs.HRCNFG.bit.CTLMODE = HR_CMP; EPwm1Regs.HRCNFG.bit.HRLOAD = HR_CTR_PRD;
EPwm1Regs.HRCNFG.bit.AUTOCONV = 1; // Enable autoconversion
EPwm1Regs.HRPCTL.bit.HRPE = 0; EDIS;
为了对比,PWM1和2分别设置如下
实测波形如下
,
user4754328:
如果你们查到问题,请回复我哦
,
Green Deng:
好的,我在咨询其他工程师,收到答案会尽快回复你。