Hi all, I'm new to VESC project and have only worked with trapezoidal BLDC control before (no FOC)
I am testing a VESC custom design and it draws a very irregular current spike at the PWM frequency (20kHz). The worst case is when the motor is at 0RPM but the spikes are still visible when the motor is spinning. This is the input current measured over a 0.0025Ohm resistor with the motor stopped:
Frequency of the spikes are at 20kHz (switching frequency)
Close up of the spikes. Peak is about 80mV/0.0025Ohm = 32A
I suspect this is current shoot-through from high to low side of the FETs. The design uses the DRV8302 chip so I increased the hardware deadtime to the maximum 500ns with a 150kOhm resistor. I also changed the firmware "#define mcpwm_dead_time_cycles 60" to 200 but neither had any change.
I have done some reading about shoot-through caused by dv/dt on the FETs but I'm not sure if that is what is happening here or if I just have a setting in VESC incorrect. I scope'd the high side and low side gates of one phase. Channel 1 (yellow) is low side gate, Channel 2 (blue) is high side gate. Every pulse is different on Channel 2 and the first "ledge" as it falls is different timing every time. The driver seems to release the high side gate about 800-1200ns before the low side gate turns on, but the high side gate does not fall to zero quick enough.
Also, here is a scope capture of the motor phase (channel 1 - yellow) and the low side gate (channel 2 - blue)
About 3 divisions (750ns) before the low side gate (blue) increases, the motor phase voltage (yellow) increases about 1V, I think this is when the high side is released and the body diode is conducting?
Then when the low side gate (blue) turns on, the shoot-through occurs?
Could anyone more familiar with this type of BLDC driving comment on if this is normal or what can be done to eliminate the current surges? I've mitigated them somewhat with more bulk capacitance but the current spike will damage and degrade the capacitors over time.
Here is the FET driving circuit. The nodes M_Hx are directly connected to the pins of the DRV8302
Thanks in advance for any help