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.