AnsweredAssumed Answered

ETPU Phase A compliment channel not working

Question asked by Amey Murkute on Jan 13, 2020
Latest reply on Jan 16, 2020 by David Tosenovjan

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.

Outcomes