TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430G2412用P1.2,P1.4输出PWM的问题?

MSP430G2412通过设置P1SEL1和P2SEL2 ,使P1.2,P1.4输出两路相位相反的PWM波,驱动MOS全桥电路,工作时没有问题,但是在停止PWM输出时,两路最后输出是一个高电平,一个低电平,这样MOS电路就电流非常大,简易烧坏。要两路同时是高电平或者同时是低电平,MOS电路才能正常。我想把p1.2,p1.4改为普通的I/O,设置输出,都失败。还是哪里的设置错了,有没有大侠指教一下。

Ling Zhu2:

jian chen9

MSP430G2412通过设置P1SEL1和P2SEL2 ,使P1.2,P1.4输出两路相位相反的PWM波,驱动MOS全桥电路,工作时没有问题,但是在停止PWM输出时,两路最后输出是一个高电平,一个低电平,这样MOS电路就电流非常大,简易烧坏。要两路同时是高电平或者同时是低电平,MOS电路才能正常。我想把p1.2,p1.4改为普通的I/O,设置输出,都失败。还是哪里的设置错了,有没有大侠指教一下。

user3899012:

回复 Ling Zhu2:

怎样设置,能不能给个例子。

灰小子:

回复 user3899012:

你设置的pwm占空比是多少?减小占空比,就会出现两个io同时出现高电平或者低电平,应该就满足要求了

user3899012:

回复 灰小子:

50%的占空比,而且占空比是可调的。

Triton Zhang:

回复 Ling Zhu2:

用带死区的PWM解决不了这个问题,也不是这样用的。建议在控制结束后关闭IO口的PWM功能。用IO输出控制IO口电平。如不能实现,贴代码上来看。

user3899012:

回复 Triton Zhang:

void PwmStart(void){  TACTL = TASSEL_2 + MC_1;           // ACLK, contmode, interrupt enabled                         //  CCTL0 = OUTMOD_4;                  // CCR0 toggle, interrupt enabled  CCTL2 = OUTMOD_3;                  // CCR1 toggle, interrupt enabled  CCTL1 = OUTMOD_6;  CCR0 = ccr0[0];  CCR2 = ccr0[1];  CCR1 = ccr0[1];}void PwmStop(void){    TACTL &= ~(TAIE+MC0);  P1SEL &= ~(PWM1_BIT+PWM2_BIT);   P1SEL2 &= ~(PWM1_BIT+PWM2_BIT);    P1DIR |= PWM1_BIT+PWM2_BIT;  SetPwm1_Low();  SetPwm2_Low();}

这样还是不行的,不知道为什么这样。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430G2412用P1.2,P1.4输出PWM的问题?
分享到: 更多 (0)