I have an OTS BLDC motor controller as well as one that I just made myself and both seem to be dramatically slower at higher frequencies.  When I look at how much current is being drawn it makes sense, but it does not make sense otherwise.

I have two tests:

1. 20% duty cycle, f_PWM = 3kHz draws about I = 0.8A from power supply, motor spins faster
2. 20% duty cycle, f_PWM = 8kHz draws about I = 0.25A from power supply, motor spins slower

This is particularly bad because I want to drive the motor at f_PWM ~30kHz.

To be honest, these tests were done with my controller which is limited from ever getting to 100% duty cycle so that I will never have any crossover that could lead to shoot-through.  That said, I do NOT think the losses are switching losses (the current is also much lower).

Any ideas or common reasons why?

Thanks in advance

ADDED:
by f_PWM I mean the frequency of the square wave I am sending to the MOSFET gates at each commutation step.  I have not yet attempted speed control but my plan was to adjust this frequency.

I guess I'm not entirely sure of the dead time.  On a single commutation step I:
  1. turn off all square wave outputs
  2. re-map the appropriate outputs according to what the hall effect sensor state is.
     I put the same square wave on the appropriate high and low side transistors
     Additionally, 1.5us before and after the square wave rises and falls, I fill the rest of the period with a square wave on the low-side counterpart of the high-side transistor to re-charge a charge-pump capacitor.  This is necessary because I am using N-Channel MOSFETs on the high-side as well.

I know that's a little sloppy of a description, but please let me know if there's anything I can clarify.