Stepper Motor Controller/Driver Simplifies Stepper Motor System Design
Aug 1, 2010 12:00 PM
Tom Hopkins, Director of Engineering
STMicroelectronics
A stepper motor controller/driver IC integrates a digital control core which enables a single microcontroller to easily manage several motors, because it only has to issue high-level movement commands to the IC.
News & Features From Auto Electronics
Committed to improving hybrid electric cars
New Motors for Hybrid Vehicles
Battery Firms Battle for Hybrid Hegemony
Innovative Bipolar Plates for Fuel Cells
See More Headlines
Top Articles
Exploring Current Transformer Applications
Ultracapacitor Technology Powers Electronic Circuits
Buck-Converter Design Demystified
Sensorless Motor Control Simplifies Washer Drives
PET Resources
Buyer's Guide
Conferences
Engineering Jobs
Power Electronics Events
Rent Our Lists
Spotlight on Digital Power
Find a downloadable version of this story in pdf format at the end of the story.
A new controller IC, the L6470 for stepper motors, integrates the power stage along with a digital control core on a monolithic IC. The device can receive motion profile commands across the SPI interface and autonomously execute the complete movement using the programmed acceleration and speed profile. It can also autonomously accelerate the motor up and keep it running at a programmed speed.
Fig. 1 shows a block diagram of the device. The Control Logic is a programmable state machine that can receive and store parameters for the acceleration rate, deceleration rate, start speed, run speed, phase current control (PWM) parameters and step mode. Eight step modes, from full step to 1/128 microstepping are supported by the controller. For any selected step mode, the internal absolute position counter counts the number of steps, or microsteps, to continually track the motor position with a resolution equal to the step mode. Rotating a 1.8 degree per step motor one full rotation in 1/128 microstepping would increment (or decrement) the position counter by 25600 counts (128 × 200 steps).
An SPI interface receives all the motion parameters and the movement commands. The commands, like move forward a number of steps, are interpreted by the control logic that controls the output step time and number of steps to accelerate the motor from the starting speed to the running speed and back down to stop while moving the total number of steps commanded. Complex movements can be made by programming queuing up and sending a set of movement commands to be sent across the SPI to the device.
Movement and Position Commands
The Digital Core can execute five movement commands and four stop commands included in Table 1.
Before any movement is made the operating parameters, Minimum Speed, Maximum Speed, Acceleration Rate, Deceleration Rate, and other operating values are set using the SetParam command across the SPI interface. To insure motion integrity, many of the motion profile settings are locked during a movement and can only be updated when the motor is stopped.
Fig. 2 shows a typical movement profile for the Move command. When the device receives a Move command, it calculates the required profile and executes the profile to accelerate from the minimum speed to the maximum speed and back down to end at a position N steps from the starting position, all under control of the digital core hardware.
The GoTo command tells the driver to move the motor to a specific position based on the internal 22-bit absolute position counter. There are two GoTo commands, one that will move in the specified direction and the other that will move in most direct path, determining the direction to move that moves the least number of steps to reach the desired position. For a 1.8 degree per step motor operation at 1/128 microstepping, the resolution of the 22-bit position counter is equivalent to about 164 revolutions of the motor. Even with a significant gear reduction, the usable resolution is still well within the range of the position counter. The movement profile for the GoTo command looks the same as a Move command, but the number of steps is automatically calculated to reach the commanded absolute position.
The Run and GoUntil commands are used to run the motor at a constant speed until a stop command (Run) is received or an external event (GoUntil) occurs. When a stop command is received the device either hard stops or decelerates down to a stop, depending on the command. The device can also be commanded to stop, hard or soft, and then tri-state the outputs.
Complex movements can be performed using a series of run commands, as shown in Fig. 3. Each time a new run command is received the device will accelerate, or decelerate, the motor to the new commanded speed and continue to run at that speed until the next run command or a stop command is received. When a command is received to reverse the direction of movement, the motor is decelerated down to the minimum speed and then accelerated up to speed in the opposite direction.
Continue to next page
Acceptable Use Policy blog comments powered by Disqus


