Part Number:TMS320F280049Other Parts Discussed in Thread:C2000WARE
正常情况下,PWM1A和PWM1B以一定频率,50%(带死区)的占空比互补输出。
启动时,希望PWM1A和PWM1B以1%占空慢慢增加,过度到50%占空比进行输出。
请问这样的逻辑要怎样实现。
PWM死区配置如下:
EPwm4Regs.DBCTL.bit.IN_MODE = 0;
EPwm4Regs.DBCTL.bit.OUT_MODE = 3;
EPwm4Regs.DBCTL.bit.POLSEL = 2; EPwm4Regs.DBRED.bit.DBRED = 20; EPwm4Regs.DBFED.bit.DBFED = 20;
Green Deng:
你好,一般控制占空比的话有两种方式,比较常见的是通过设置CMPA、CMPB等比较寄存器的值来控制占空比。这个可以直接参考例程:C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f28004x\examples\epwm\epwm_ex2_updown_aq.c
还有一种可以参考一下TRM中18.8.3.2 Duty Cycle Control的内容。
,
Aiden zhang:
老师,请读清除我的问题。我尽量把我的问题描述清楚了。我的前提是PWMA和PWMB是配置为带死区功能情况下。
如果只是输出不同占空比的情况,确实按照你说的设置CMPA和CMPB的方式就能实现了。
你可以实际测试一下我的问题,看看能不能实现我说的输出波形,怎么实现的,麻烦告诉我一下。
本想让问题更形象一点,画一张图传上来,但是我在插入->图像/视频/文件菜单下无法选择要上传的图片。希望您能理解的意思。
,
Green Deng:
你好,特地去E2E确认了一下这个问题,在互补且带死区的情况下,PWM的占空比还是可以通过调节CMPA,CMPB等比较器的值来调节的。你可以看一下我们的Q&A:e2e.ti.com/…/3711676
有其他异议的话可以再讨论
,
Green Deng:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1004428/tms320f280049-how-to-adjust-the-duty-cycle-of-complementary-pwm-waveform-with-deadbanddea/3711676#3711676
,
Aiden zhang:
首先,非常感谢你把我的问题带到E2E去确认,您辛苦了。
其次,请原谅的一个理工科只能的执着。我觉得还是我的问题描述的不够清楚,我上传一张图片来表达我的意思(千言万语不如一张图)
如果按照这个配置
EPwm4Regs.DBCTL.bit.IN_MODE = 0;
EPwm4Regs.DBCTL.bit.OUT_MODE = 3;
EPwm4Regs.DBCTL.bit.POLSEL = 2;EPwm4Regs.DBRED.bit.DBRED = 20;EPwm4Regs.DBFED.bit.DBFED = 20;
EPwm4Regs.AQCTLA.bit.ZRO = AQ_SET; EPwm4Regs.AQCTLA.bit.CAU = AQ_CLEAR;
运行过程中修改CMPA的值 1%~50%,您将会看到图片中“实际输出PWM波形”,一直以互补的形式输出。
而我期望的波形是下面的输出形式,刚开始PWMA和PWMB都以1%~50%的duty形式输出,当duty为50%时,以互补形式输出。当duty小于50%还可以回到duty形式输出。
希望您能理解我。
谢谢,谢谢。
,
Aiden zhang:
上张图片不太清除
,
Green Deng:
好的,我抽时间研究一下,这几天帖子太多了,有点忙不过来- –