When controlling a BLDC motor which has hall sensors, are the hall sensors always enough when combined with suitable logic in software?

Whether using Hi/Lo PWM block commutation or a sinusoidal wave with all 3 windings used at any time, it is possible to get a reasonable approximation of the current motor position with the 1st, 2nd and 3rd derivatives of the motor position with respect to time (speed, acceleration and rate of change of acceleration). With timings for the each hall state for the phase rotation of the motor this is fairly simply to calculate and to adjust based on changes in power levels. This does require the motor to be moving above around 60rpm but this is not generally a problem.

So given I have this... why would I want to consider measuring the back EMF or the current on each phase?

Both would add complexity to the circuits, and with sinusoidal commutation you are pretty much limited to the current sensing method as each winding is in use with possibly very minimal off time.

Am I missing something obvious where there is a distinct advantage in the calculation of rotor position based on current sensing?

For the purposes of this question I'd like to limit this to small, low voltage motors in the range of 25-500W, 12-48V.

Note: This is not looking to consider sensor less design which has specific reasons for needing other forms of measurement.


1 Answer 1


Back EMF sensing is used for sensorless control, so is less important given that you have sensors.

(In a high integrity system you may want it as a backup so that you can either keep going, or at least accurately diagnose faults, in the event of a sensor failure).

Current sensing however is still important : it's about torque control as well as system protection. If the torque load suddenly increases, you want to know about it : either to stop the car window before it cuts somebody's fingers off, or to protect the motor and its controller against destructive overcurrent when the motor stalls.

  • \$\begingroup\$ I accept what you are saying, particularly on system protection (better to turn off than blow a fuse or worse) If my understanding is correct then current per winding is less relevant in this case and overall current is more important? Since a single high or low side sensor is much simpler than a per winding sensor. Also for torque changes due to blockage or stall, wouldn't a change in the position timings also indicate the increased load within 10's of ms? Or is your point that that would be too slow? \$\endgroup\$
    – Simm
    Commented Apr 20, 2020 at 13:41
  • \$\begingroup\$ Torque increase and speed reduction may not be closely related e.g. due to momentum so sensing a speed reduction is not always adequate. However a single current sense is often adequate. \$\endgroup\$
    – user16324
    Commented Apr 20, 2020 at 15:16
  • \$\begingroup\$ thanks - since this is primarily error cases which I would assume are going to be large changes, is a hall sensor based current sensor likely to be good enough rather than a shunt based sensor which while more accurate are also more complicated? \$\endgroup\$
    – Simm
    Commented Apr 20, 2020 at 15:27
  • 1
    \$\begingroup\$ Now you're into detail design decisions, I have no idea of your design criteria or accuracy budget, but you are asking the right questions. FWIW a low side shunt need not be very complicated. \$\endgroup\$
    – user16324
    Commented Apr 20, 2020 at 15:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.