AnsweredAssumed Answered

deadtime on 100%duty of flexPWM in MPC5744P

Question asked by liu jinhang on Oct 13, 2016
Latest reply on Oct 14, 2016 by Petr Stancik

hi everyone,

i found a problem about 100% duty of flexPWM in MPC5744P.

when initial the flexPWM, i set below:

 

#define FlexPWM0_DTSRCSEL          0x0000u    

#define FlexPWM0_MCTRL                 0xff00u //PWM45 ( PWM submodule ) is used to generate complementary PWM pair. 

 

#define FlexPWM0_CTRL2_sub0         0xc2A0u  //PWMA and PWMB form a complementary PWM pair.
#define FlexPWM0_INIT_sub0             0xF060u

#define FlexPWM0_VAL1_sub0           0x0FA0u    //period is 8000

#define FlexPWM0_OCTRL_sub0       0x0610u    //invert PWMA, invert PWMB

#define FlexPWM0_DTCNT0_sub0     112u          //PWM A dead time
#define FlexPWM0_DTCNT1_sub0     112u          //PWM B dead time

 

then i set the "FlexPWM0_VAL4_sub0   = 0xF060u;" and  "FlexPWM0_VAL5_sub0   = 0x0FA0u    ;"  

in my opinion, i think the PWMB will output 100% duty and PWMA will output 0% duty, but i strangely found that PWMB output 100% duty but PWMA output not 0% duty. the PWMA scope like below:

i measured the high level time pluse is equal to the deadtime set in FlexPWM0_DTCNT0_sub0. to verify the relationship between FlexPWM0_DTCNT0_sub0 and PWMA, i set "FlexPWM0_DTCNT0_sub0 = 0" and then the PWMA can output 0% duty successfully.

 

in this case, my problem is three:

1. why PWMA cannot complementary from PWMB all the time?

2. when i set PWMB 100% duty, how the relationship between FlexPWM0_DTCNT0_sub0 and PWMA appeared? 

3. if the "FlexPWM0_DTCNT0_sub0 = 0", is there any risk exists in my high bridge and low bridge motor control circle application?

 

please help me , thank you very much.

Outcomes