Stepper Motors
Do you need exact position control with great holding torque? If so, then a stepper motor is the best solution. While nearly every microcontroller (MCU) or Digital Signal Controller (DSC) we offer can drive a stepper motor, some devices are better suited for this than others:
- 8-bit PIC® and AVR® MCUs are excellent solutions for traditional stepper motor control
- dsPIC33 DSCs, 32-bit PIC32MK MCUs and Arm® Cortex®-M4F and M7 based SAM MCUs o?er DSP performance and motor control peripherals for advanced closed-loop stepper motor control, sub-microstepping, high-speed rotation and full torque output
- IGLOO®2 and SmartFusion®2 FPGA-based stepper motor control solutions support up to 2048 microsteps, resulting in a reduction of torque ripple and power loss in the motor
We also offer a complete line of dual full-bridge drivers that are designed to drive bipolar stepper motors and that can be easily interfaced to any microcontroller.
Typical Applications
- Idle speed control actuator
- Exhaust gas recirculation valves
- Duct airflow vanes
- Mirror controls
- Telescopes
- Antennas
- Toys
Recommended Products for Stepper Motor Control
Products | Traditional Stepper Motor Control (Full/Half Step) | Microstepping and Sub- Microstepping | Closed-Loop Stepper Motor Control | |
---|---|---|---|---|
Microcontrollers (MCUs). Digital Signal Controllers (DSCs) and Field-Programmable Gate Arrays (FPGAs) | 8-bit PIC® and AVR® MCUs | |||
dsPIC33 DSCs | ||||
32-bit PIC32MK and SAM MCUs | ||||
IGLOO®2 FPGAs SmartFusion® SoC FPGAs |
Products | Bipolar Stepper Motor | Unipolar Stepper Motor |
---|---|---|
Single-Chip Motor Drivers | MTS2916A MTS62C19A | |
Gate Driver | MIC4468 |

Some Basics About Stepper Motors
How a Stepper Motor Works
The rotor of a permanent magnet stepper motor consists of permanent magnets and the stator with two pairs of windings. The rotor is constructed using a single magnet mounted in line with the rotor axis and two pole pieces with many teeth. The teeth are staggered to produce many salient poles. The two phases of the stator alternate between on and off and reverse polarity. The rotor aligns with the stator poles before the next phase of the sequence is energized.
There are four steps in stepper motor commutation:
- One phase lags the other phase by one step, which is equivalent to one-fourth of an electrical cycle or 90°
- Poles are formed using a single magnet mounted in line with the rotor axis and the two pole pieces
- The teeth on the pole pieces are staggered to produce many poles
- The stator poles of a stepper motor also have many teeth, which are arranged so that the two phases are still 90° out of phase
Stepper Motor Characteristics
- Easy to position - moves in steps based on pulses supplied to stator windings
- Direction of rotation is changed by reversing the pulse sequence
- Speed is controlled by frequency of pulses or pulse rate

Implementing Stepper Motor Control
How It Works
The stepper motor is easy to position and moves in steps based on pulses supplied to the stator windings. The direction of rotation is changed by reversing the pulse sequence, and speed is controlled by the frequency of pulses or pulse rate. The section on microstepping below demonstrates this principle for a stepper motor using full step commutation. As the rotor aligns with one of the stator poles, the second phase is energized. The two phases alternate on and off and reverse polarity. There are four steps. One phase lags the other phase by one step. This is equivalent to one fourth of an electrical cycle or 90°. Stepper motors have a high holding torque, but they cannot run at high speeds.
Microcontroller Features for Stepper Motor Control
Basic I/O | To generate full-step or half-step control signals, digital communication/pulse inputs for speed and feedback input from limit switches for homing and safety |
---|---|
Capture/Compare/Pulse-Width Modulation (CCP) | For microstepping (or half stepping) |
Comparators | Overcurrent detection and protection |
Microstepping Details
Each stepper motor will have a defined step angle associated for a full step; microstepping allows the shaft to be positioned in between this angle. In the example on the right, you can see that a two-phase stepper motor has a step angle of 90°. If you implement microstepping techniques, you can position the shaft at a fraction of the full step angle by decreasing the stepping angle. Microstepping offers the following advantages:
- Increases step resolution by dividing a full step into sub-steps
- Offers smoother transitions between steps
- Reduces noise and anti-resonance problems
- Maximizes torque output at both low and high step rates
Gate Driver Configuration

Multi-Axis Stepper Motor Control Using FPGAs
Build safe and reliable multi-axis deterministic motor control on a single System-on-Chip (SoC) FPGA. FPGAs provide many advantages for motor control applications, including:
- Compact solution to save board space and reduce product size
- Design flexibility with modular IP suite
- SoC integration of system functions to reduce Total Cost of Ownership (TCO)
Motor Control Hardware and Software Solutions
Featured Software Tools

Motor Control Application Algorithm and Application Software
To support the development of motor applications, we provide motor control examples for half-step, full-step and microstep control of stepper motors.

MPLAB® X Integrated Development Environment (IDE)
MPLAB X Integrated Development Environment (IDE) is an expandable, highly configurable software program that incorporates powerful tools to help you discover, configure, develop, debug and qualify embedded designs for Microchip’s microcontrollers and digital signal controllers.

MPLAB Code Configurator (MCC)
MPLAB Code Configurator (MCC) is a free, graphical programming environment that generates seamless, easy-to-understand C code to be inserted into your project.
Featured Hardware Tools
Featured Application Notes
Motor control application notes on control algorithms include example software and source code.
- AN906 - Stepper Motor Control using the PIC16F684
- AN907 - Stepping Motor Fundamentals
- AN1307 - Stepper Motor Control with dsPIC® DSCs
- AN2326 - High-Torque/High-Power Bipolar Stepper Motor Driver Using 8-bit PIC® Microcontroller
- AC445: Motor Control Design using SmartFusion®2 andIGLOO®2 Devices
- UG0609: Stepper Theta Generation IP User Guide for SmartFusion2/IGLOO2 FPGAs