TI论坛
直播中

王永佳

7年用户 240经验值
私信 关注
[问答]

CCS4如何调试C2x?

大家好!
我使用的是C28x芯片,利用其中2组PWM(共4路PWM输出口)作为驱动信号。我的设置方式为:
EPWMxA与EPWMxB之间有死区,死区方式为DB_ACTV_HIC。
然后我发现,如果在程序运行时点HALT,EPWM 的A/B两个输出中一定有一个是输出为高的(即一高一低)。但是这样对我的硬件会造成损害。
我的理解是,因为我把EPWM配置成了互补的方式,所以当程序停下来的时候两者仍是处于互补状态的,所以一定是A/B两个口一个为高一个为低。
我的问题是,有没有办法在我HALT的时候,让EPWM输出全部归零? 或者如果是现实中假设电路出于保护的原因需要封闭PWM输出,那么我要如何设置才能使所有的PWM A/B口都为0,而不是一高一低地停下来?
谢谢各位!

回帖(6)

朱虹博

2020-6-11 15:43:35
我有一个比较笨的办法,抛砖引玉一下。
连续设置2个breakpoint,第一个breakpoint的properties中选择execute expression,在GEL中,利用GEL修改EPwm1Regs.TZFRC,利用TZ让PWM在breakpoint的时候置低。
第二个breakpoint进行HALT.
举报

王秀梅

2020-6-11 15:54:43
1. 建议使用pause而不用halt;
2. 尝试使用TBCTL的FREE,SOFT位设置看看。
                                                                         If a post answers your question, please mark it with the "verify answer" button.
举报

王永佳

2020-6-11 16:12:50
引用: Emily1225 发表于 2020-6-11 20:11
我有一个比较笨的办法,抛砖引玉一下。
连续设置2个breakpoint,第一个breakpoint的properties中选择execute expression,在GEL中,利用GEL修改EPwm1Regs.TZFRC,利用TZ让PWM在breakpoint的时候置低。
第二个breakpoint进行HALT.

谢谢你,我用的是CCS4,好像没有看到breakpoint可以设置properties。 能不能请你告诉我在哪里设?给个截图也行。
谢谢。
或者换个方式说,如果我的EPWM正在正常输出,我突然来个中断需要把EPWM输出全部置0(在已设置为A/B路为互补的情况下),在软件上如何实现呢?我试过关断EPWM的时钟,不过好像不起作用。
举报

王永佳

2020-6-11 16:24:48
引用: szbliy 发表于 2020-6-11 20:22
1. 建议使用pause而不用halt;
2. 尝试使用TBCTL的FREE,SOFT位设置看看。
                                                                         If a post answers your question, please mark it with the "verify answer" button.

谢谢,我用的是CCS4,好像软件里没有PAUSE这一项,只有HALT。
TBCTL的FREE-SOFT位我试过了,没有作用。我感觉是因为A/B被设成了互补的原因,所以无论什么状态下软件停下来,两路输出总会是一高一低的。
大家还有没有其它建议可以让我试试? 谢谢咯
举报

更多回帖

发帖
×
20
完善资料,
赚取积分