COMP_PWM is an option on SimonK ESC firmware for sensorless brushless DC motors,
Above is a capture of the waveform during two commutation steps where this FET is low side modulated. You can see that when the low side FET turns off, voltage rapidly rises to just above battery as the energy stored in the winding inductance drives current through the high side FET body diode (which drops 0.7+V) and the other high side FET that is on.
After a little while, the winding discharge current falls to zero, and the motor terminal voltage falls to some floating value.
Above is the same motor with COMP_PWM=1. In this case, almost instantly the low side FET is turned off, the high side FET is turned on. Again the energy stored in the winding inductance drives current, but this time through the high side FET in third quadrant mode (and the other high side FET that is on). The FET drops less voltage than the body diode, so the current decays more quickly.
After a little while, the winding discharge current falls to zero, and the motor terminal voltage falls to battery voltage via the conducting high side FET.
The somewhat cleaner waveform of the COMP_PWM case may reduce both noise and bias in the zero crossing detection process, potentially making it more reliable. Issues with zero crossing detection are a major cause of sync problems that some people have experienced.
Additionally, COMP_PWM gives regenerative braking. But that is a two-edged sword, and the power supply needs to cope with current fed back into it, not usually a problem with a battery but it is a problem to regulated power supplies. The improved braking is a feature more important to planes than ‘copters.
I have measured only a few off-the-shelf ESCs (ie with stock FW), some did COMP_PWM drive out of the box, some didn’t.
In the case of SimonK, it has defaulted to non COMP_PWM in the past but that may change.
- Kirby, S. 2011.SimonK ESC firmware. https://github.com/sim-/tgy (accessed 30/04/2014).