Hello All,
I am implementing Space vector modulation technique . I am using MPC5777C controller & trying to generate 3 phase signal that is 6 pwm's out of etpu function. I read that we need to provide the duty cycle to only compliment channels & etpu take care of other non-compliment channels. So I am trying to generate
A1_BOT -- Compliment channel- ETPUA0
A1_TOP
B1_BOT -- Compliment channel- ETPUA2
B1_TOP
C1_BOT -- Compliment channel- ETPUA4
C1_TOP
So after compiling code I am successfully got the PWM out of 2 phase channels that is B1_BOT & TOP, C1_BOT & TOP. But A1_BOT pwm pulse is not getting out. So what is the reason behind it. I am getting A1_TOP pwm of this channel but not getting A1_BOT. So why only a single leg getting problem. The following is pwm_init function which I am using.
err_code = fs_etpu_pwmmac_init_3ph (
PWM_master_channel, /* master_channel */
FS_ETPU_PRIORITY_HIGH, /* priority */
PWM_phaseA_channel, /* phaseA_channel */
FS_ETPU_PWMMAC_DUTY_POS, /* phaseA_negate_duty */
PWM_phaseB_channel, /* phaseB_channel */
FS_ETPU_PWMMAC_DUTY_POS, /* phaseB_negate_duty */
PWM_phaseC_channel, /* phaseC_channel */
FS_ETPU_PWMMAC_DUTY_POS, /* phaseC_negate_duty */
FS_ETPU_PWMMAC_MOD_SVM_STD, /* SVM STD modulation */
&fs_etpu_pwmmac_sin3h_lut[0], /* p_table */
FS_ETPU_PWMMAC_NORMAL, /* update */
FS_ETPU_PWMMAC_CENTER_ALIGNED, /* alignment */
FS_ETPU_PWMMAC_FULL_RANGE_COMPL_PAIRS, /* phases_type */
FS_ETPU_PWMMAC_NO_SWAP, /* swap */
FS_ETPU_PWMMAC_PIN_HIGH, /* base_ch_disable_pin_state */
FS_ETPU_PWMMAC_PIN_LOW, /* compl_ch_disable_pin_state */
10000, /* start_offset */
etpu_a_tcr1_freq/PWM_Switching_Freq, /* period (frequency) */
etpu_a_tcr1_freq/PWM_Switching_Freq/2, /* update_time */
etpu_a_tcr1_freq/1000*PWM_dead_time_ns/1000000, /* dead_time */
etpu_a_tcr1_freq/1000*PWM_dead_time_ns/1000000); /* min_pw */
/*******************************************************************************
* Enable generation of PWM signals
*******************************************************************************/
hsrr = fs_etpu_pwmmac_enable_3ph(PWM_master_channel,
FS_ETPU_PWMMAC_PIN_LOW ,
FS_ETPU_PWMMAC_PIN_LOW );
return (err_code);
for SVM implemenation using following etpu function
fs_etpu_pwmmac_update_svm(PWM_master_channel, (Alpha_Angle * 4194304), (Beta_Angle * 4194304));
Thanks.