A spinning motor will generate its own alternating voltage in the windings, known as back-electromotive force or back-EMF. The magnitude of the back-EMF is directly proportional to the motor speed, and it acts in opposition to the external winding voltage your motor driver is applying:
simulate this circuit – Schematic created using CircuitLab
The higher the back-EMF is relative to the supply, the lower the voltage over the winding resistance is. The torque developed by a motor is directly proportional to the winding current, so if the voltage over the winding resistance is too low, the winding resistance will eventually limit the current to a value that won't generate enough torque to overcome friction. Thus the faster a motor spins, the more voltage you need to allow the same amount of current to flow.
The "KV" rating of RC brushless motors is a simple ratio between rotation speed in RPM and the level of generated back-EMF in volts.
I want the motor to run faster. The key issue is my code has a delay in it as it steps through passing PWMs to the three inputs to the L6234D, and if I shorten that delay to a small number of milliseconds, the motor stops turning and just jitters.
The motor speed increases → the back-EMF increases → the voltages over the winding resistances decrease → the winding currents decrease → the torque decreases. Eventually the decreasing torque gets overcome by friction, and the motor slows down slightly.
Being a synchronous motor (brushless DC motors are also known as permanent magnet synchronous AC motors) and being driven open loop, slowing down even slightly relative to the motor driver output will cause the motor to fall out of phase (known as loss of synchronization) and grind to a halt, making weird noises in the process.
Does anyone have any suggestions for how I can increase the speed of the motor?
Sure, you can increase the motor supply voltage proportionally with increasing speed to counteract the effects of the back-EMF. This can be done simply by increasing the amplitude of the PWM-synthesized sine wave, or by increasing the supply voltage to the L6234D triple half bridge chip.
Be aware that you can't just increase the voltage forever. Motors are rated for a maximum current and a maximum voltage. Also, brushless gimbal motors are very ill-suited for high speed operation. They are wound to a very low KV, with many turns of very thin wire for maximum torque at low speed.
Your current brushless motor driver is driving the motor open loop, so you are effectively driving the motor as a three phase stepper motor with microstepping. This is fine for brushless gimbals where the motors are driven at extremely slow speeds (even below 1 RPM) and feedback is provided by MEMS gyroscopes, but makes little sense for higher speeds.
Typically brushless motors are driven closed loop, with the rotor position being continuously sensed to keep the driver output always in sync with the motor. Speed control is then achieved by varying the voltage fed to the motor.