A motor controller for an electric motor having a plurality of motor terminals
is connected to a power supply and comprises a commutation control, a current sensor,
a peak target circuit, a pulse width control and a reverse current control. The
commutation control is connected to the motor terminals for causing current pulses
to flow through selected terminals during each commutation state. The current sensor
provides a sense signal representative of the current pulses, and the peak current
target circuit provides a target signal. The pulse width control controls pulse
width of the current pulses as a function of the sense signal and the target signal.
The reverse current control prevents reverse current from flowing into the power
supply during change of commutation state.