The secret to a good motor control microcontroller, is not having the individual peripherals on board, but tying the peripherals together in such a way that they control the motor operation automatically. For example, the FMC16100 PWM module provides the signals to drive the power stage based upon one timer setting. Then the ADC samples the back EMF based on interrupts from the general purpose timer and samples the motor current based upon an automatic interrupt from the PWM module. The built-in op-amp amplifies and offsets the motor current sense waveform then feeds directly to the ADC. The on-board comparator monitors the motor current for cycle-by-cycle current limiting, which ties directly to the PWM module if an over load condition happens.