A stepper motor is a brushless DC electric motor that divides every revolution into a number of equal steps. The motor's position can be then commanded to move and hold at one of these steps without any position sensor for feedback (an open-loop controller), as long as the motor is carefully sized to the application in respect to torque and speed.

A typical stepper motor can be used in three modes: full step, half-stepping, and microstepping. The microstep mode allows rotating the rotor on a smaller angle than full step mode, and makes rotation smoother. The SLG47105 IC supports all of these modes. 

Stepper motors can be divided into two classes according to the type of winding - bipolar and unipolar steppers. 

Unipolar stepper motors have one winding with the center tap per phase. Each section of windings is switched on for each direction of magnetic field. Because in this arrangement a magnetic pole can be reversed without switching the direction of current, the commutation circuit can be made very simple for each winding. Usually, given a phase, the center tap of each winding is made common, giving three leads per phase and six leads for a typical two-phase motor. These two-phase commons are often connected internally, so the motor has only five external leads. 

Bipolar stepper motors have a single winding per phase. To reverse a magnetic pole, the current in a winding needs to be reversed. Therefore, the control circuit must be more complicated. There are two leads per phase, and none is common.

Below we described steps needed to understand how the motor driver has been programmed. However, if you just want to get the result of programming, download GreenPAK software to view the already completed GreenPAK Design File. Plug the GreenPAK Development Kit to your computer and hit the program to design the device.

1. Construction and Operation Principle 

In this project an example of SLG47105 usage is shown for the bipolar stepper motor. Since current flows across entire coil, bipolar motors have greater torque than in the unipolar motor case.  In brief, the SLG47105 is used as a driver for the stepper motor. The MCU controls the driver. In this design example, the driver has two modes: full step and 1/16 step.  

The internal design structure can be divided into several parts:  

- Step/Microstep block that controls step and microstep modes. In step mode, one pulse on ‘Step’ input corresponds to one step for the stepper motor. In microstep mode 16 pulses on ‘Step’ input correspond to one step for the stepper motor, so one step in this mode is divided to 16 microsteps that increases rotation accuracy; 

- Within the SLG47105, a ‘Blanking time’ block determines the PWM frequency and minimum time for HIGH level of PWM. 

- Current CMPs, DAC_PWMs, RegFile, and PWM choppers control the current in two windings with the help of external resistors and set the sine current waveform. RegFile holds 16 DAC_PWM period values that correspond to ¼ of sine wave. DAC_PWM block selects the value from RegFile and sets this value as Current CMP reference. When the current is greater than the required value, the PWM chopper will chop output voltage to decrease output current. 

- PIN logic and HV GPOs toggle the current sine polarity and rotation direction (depending on ‘Rotary Direction’ input pin state). 

The main block diagram is shown in Figure 2.

Typical application circuit requires only two external resistors for current sensing, see Figure 3.

The design has four inputs for motor control: 

1. PIN#2 Step/Microstep mode – to select the stepper motor operation mode. HIGH signal level = full step operation, LOW signal level = 1/16 step operation. 

2. PIN#14 Sleep – to disable the driver. HIGH signal level = sleep, LOW signal level = active mode. 

3. PIN#17 Rotation Direction – to change the direction of motor rotation. HIGH = forward,...

Read more »