Saturday, June 20, 2009

Microstepping Stepper Motor Driver Project

Microstepping Stepper Motor Data

Microstepping of Stepping Motors
Microstepping serves two purposes. First, it allows a stepping motor to stop and hold a position between the full or half-step positions, second, it largely eliminates the jerky character of low speed stepping motor operation and the noise at intermediate speeds, and third, it reduces problems with resonance.
Although some microstepping controllers offer hundreds of intermediate positions between steps, it is worth noting that microstepping does not generally offer great precision, both because of linearity problems and because of the effects of static friction.
1 Sine-Cosine Microstepping
2 Limits of Microstepping
- Detent Effects
- Quantization
3 Typical Control Circuits
- Practical Examples

Microstepping Stepper Motor Driver Kit

Basic design
It is a unipolar (or 5-wire type) driver. The motor must have
5 or 6 wires (or 8), as 4-wire motors are only for bipolar

The constant current system is crude but simple, it relies on
setting the base of the main transistors at a "set" level, then
this causes a "set" voltage across the sense resistor Rs, ie
maintains constant current. It does get some temp drift with
large currents, but it's simple and accurate enough with the
resistor values i've tested. It actually works quite well!

The brain has control of which of the 4 transistors are ON,
and sets 3 possible current levels, enough to do 6th stepping
and give 1200 steps/rev with hardware alone. The software I
have provided also will do pwm and give 18th stepping, which
is 3600 steps/rev, almost stepless operation.

The PIC has plenty of left over rom if you need to do motion
control or use the board as the complete brains and driver for
an entire machine. Up to 9 PIC in/out pins can be allocated to
the board.

Micro-step driver

This circuit allows to connect a bipolar step motor to a personal computer through the parallel port. The circuit is, for safety reasons, optically isolated from the PC and it allows to manage motors up to 3A for phase. Moreover the digital interface allows to connect up to six motors to a single PC parallel port.
The more interesting aspect of this circuit is its ability to implement the microstep technique and to multiply up to 64 times the motor real steps number. As an example, a 200 steps motor could behave like "a virtual" 12.800 steps motor. This function is particularly useful when the spin speed is very low, in the order of fractions of rpm.


Modern motion control applications need more flexibility that can be addressed only with specialized IC products. The L6208 is a fully integrated stepper motor driver IC specifically developed to drive a wide range
of two phase (bipolar) stepper motors. This IC is a one-chip cost effective solution that includes several unique circuit design features. These features, including a decoding logic that can generate three different stepping sequences, allow the device to be used in many applications including microstepping. The principal aim of this development project was to produce an easy to use, fully protected power IC. In addition several key functions such as protection circuit and PWM current control drastically reduce external components count to meet requirements for many different applications.

Microstepping Stepper Motor Driver Circuit


Stepper motors are very well suited for positioning applications since they can achieve very good positional accuracy without complicated feedback loops associated with servo systems. However their resolution, when driven in the conventional full or half step modes of operation, is limited by the configuration of the motor. Many designers today are seeking alternatives to increase the resolution of the stepper motor drives. This application note will
discuss implementation of microstepping drives using peak detecting current control where the sense resistor is connected between the bottom of the bridge and ground. Examples show the implementation of microstepping drives with several currently available chips and chip sets.

Microstepping a stepper motor may be used to achieve one or both of two objectives; 1) increase the position resolution or 2) achieve smoother operation of the motor. In either case the basic theory of operation is the same. The simplified model of a stepper motor is a permanent magnet rotor and two coils on the stator separated by 90 degrees, as shown in Figure 1. In classical full step operation an equal current is delivered to each of the coils and the rotor will align itself with the resulting magnetic vector along one of the 45 degree axis. To step the motor, the current in one of the two coils is reversed and the rotor will rotate 90 degrees. The complete full step sequence is shown in figure 2. Half step drive, where the current in the coil is turned off for one step period before being turned on in the opposite direction, has been used to double the step resolution of a motor. In either full and half step drive,
the motor can be positioned only at one of the 4 (8 for half step) defined positions.[4][5] Therefore,
the number of steps per electrical revolution and the number of poles on the motor determine the resolution of the motor. Typical motors are designed for 1.8 degree steps (200 steps per revolution) or 7.5 degree steps (48 steps per revolution). The resolution may be doubled to 0.9 or 3.75 degrees by driving the motor in half step. Further increasing the resolution requires positioning the rotor at positions between the full step and half step positions.

Example alignment of microsteping

Precision Microstepping Driver Circuit

Microstepping Stepper Motor Driver Project

Functional description
The circuit can be divided into three functional blocks, Microprocessor simulation logic, micro-stepping controller and stepper motor driver.
A. Micro-stepping simulation.
This block send the control signals normally sent by a microprocessor to the micro-stepping controller, the inputs to the block are the 5 Dip-switches and the clock pulse from pin1 of J2. During normal operation the current level in one of the motor windings is updates at every step pulse (single pulse programming). These mean two step pulses are required to update both winding currents and make the motor turn. Operating the dip-switched S1-6 can change the direction of the motor rotation

Relate Posts