The axi_mc_controller contains a switch to select betwen open loop and closed loop (e.g. Matlab FOC).
We use closed loop mode (foc_ctrl_s = 1) and implemented a dedicated control algorith, using the Vivado HLS flow.
However, in this closed loop mode the PWM input signals pwm_a_i, pwm_b_i and pwm_c_i of the axi_mc_controller wrapper are passed through to the FPGA PWM outputs.
assign pwm_ah_o = foc_ctrl_s ? !pwm_a : dpwm_ah_s;
assign pwm_al_o = foc_ctrl_s ? pwm_a : dpwm_al_s;
In this case, the dead time insertion (DTI) to prevent shoot-through current (as implemented in motor_driver.v/delay.v [1.28 us DTI] for open loop) is not applied.
How should this be solved and how is this done for FOC control?
Shall we solve this inside axi_mc_controller?
Thanks and regards,