Stepper Motor Driver

Driver for stepper motor

Library

Drivers

Description

The Stepper Motor Driver block represents a driver for a stepper motor. It creates the pulse trains, A and B, required to control the motor. This block initiates a step each time the voltage at the ENA port rises above the Enable threshold voltage parameter value.

If the voltage at the REV port is less than or equal to the Reverse threshold voltage parameter value, pulse A leads pulse B by 90 degrees. If the voltage at the REV port is greater than the Reverse threshold voltage value, pulse B leads pulse A by 90 degrees and the motor direction is reversed.

At time zero, pulse A is positive and pulse B is negative.

If you set the Stepping mode parameter to Half stepping, the Stepper Motor Driver block can produce the output waveforms required for half stepping. In this mode, there is an intermediate state between the full steps, in which just one of the A or the B half-windings is powered. As a result, the step size is half of the stepper motor's full step size. At half steps, windings that are not powered are short-circuited. This approximates the effect of a freewheeling diode connected across the windings.

Averaged Mode

If you set the Simulation mode parameter to Averaged, both for a Stepper Motor Driver block and for the Stepper Motor block connected to it, then the individual steps are not simulated. This can be a good way to speed up simulation. The Averaged mode assumes that the external controller provides a step rate demand. This step rate demand is determined from the voltage applied between the ENA and REF ports on the Stepper Motor Driver block, by multiplying this voltage by the value of the Step rate sensitivity parameter. The rotation direction is set by the REF port in the same way as for the Stepping mode.

Averaged mode needs to communicate the step rate demand and also output voltage amplitude information to the Stepper Motor block. To do this, the step rate demand is applied as an equivalent voltage across the A+ and A- ports. Similarly the output voltage amplitude information is conveyed by applying a steady-state voltage across the B+ and B- ports with value equal to the Output voltage amplitude parameter.

Basic Assumptions and Limitations

The model is based on the following assumptions:

  • To use Averaged mode, the Stepper Motor Driver block must be directly connected to a Stepper Motor block also running in Averaged mode.

  • When changing from Stepping to Averaged mode and back, you will need to modify your upstream blocks that provide the input voltages to the Stepper Motor Driver. One way to achieve this easily is to use Simulink® variant subsystems.

Dialog Box and Parameters

Simulation mode

Select Stepping or Averaged. Use Averaged only if the block is connected directly to a Stepper Motor block also running in Averaged mode. The default value is Stepping.

Enable threshold voltage

When the voltage at the ENA port rises above this threshold, the Stepper Motor Driver block initiates a step. This parameter is visible only if Simulation mode is set to Stepping. The default value is 2.5 V.

Step rate sensitivity

This parameter converts the voltage presented across the ENA and REF ports into a step rate demand. This parameter is visible only if Simulation mode is set to Averaged. The default value is 10 steps-per-second per volt.

Reverse threshold voltage

When the voltage at the REV port rises above this threshold, pulse B leads pulse A by 90 degrees, and the motor direction is reversed. The default value is 2.5 V.

Output voltage amplitude

Amplitude of the output pulse trains. The default value is 10 V.

Stepping mode

Select Full stepping or Half stepping. The default value is Full stepping.

Ports

The block has the following ports:

A+

Positive electrical output of pulse A

A-

Negative electrical output of pulse A

B+

Positive electrical output of pulse B

B-

Negative electrical output of pulse B

ENA

Triggering input step voltage

REF

Input floating reference voltage

REV

Input voltage that controls motor direction

Was this topic helpful?