I am trying make a Gimbal BLDC motor spin slowly (~0.2Hz).
For some reason I have problems with the motor stuttering, as shown in this video. At the end of the video I also show PWM signal from the MCU (yellow), and what goes to the motor (light blue).
The driver circuit is based around an ST L6234 (see picture), with the Enable-pins bound to high. The motor is an iPower GBM2804H-100T (12N14P) with a winding resistance of 6.5 Ohm.
The input-pins on the L6243 is driven with a PWM-signal at 42kHz, so that the motor is unaudible. The stuttering disappears if I reduce the frequency to 5kHz, but this causes the motor to make a terrible whining noise. The stuttering also reduces a bit if I increase the driving voltage from 12V to 20V. However I have only 12V available in the final application, so I would prefer to use that.
What causes this stuttering - and is there any way to remove the stuttering without increasing the voltage/decreasing PWM frequency?
Edit: Added additional info below.
- The Sense-resistor I am using is 0.47 Ohm.
- The power supply to the L6234 is decoupled according to an ST application note (Google "AN1088 L6234", first page. My rep is too low to add more links). Basically I have two capacitors totalling 200uF on the main input. The power supply to the microcontroller is separate, and does not have additional decoupling except what was provided in the kit I am using (MikroElektronika Mini-M4).
- The waveform I am using to drive the motor is a normal sine wave. I have also tried space vector modulation (see berryjam.eu spinning BLDC at super slow speeds). The result is that the stuttering has two "stutters" in close succession where there only used to be one. To give a stupid image, it goes zzzzz dok dok zzzzz dok dok instead of zzzzz dok zzzzz dok.