Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 8

SYNOPSIS ON MINOR PROJECT

FPGA Based Stepper Motor Control GUIDED BY Er. Poonam Yadav AUG 2O12- DEC 2012
Submitted in partial fulfillment of the requirements for the award of degree of

BACHELOR OF TECHNOLOGY IN
ELECTRONICS & COMMUNICATION ENGINEERING

KURUKSHETRA INSTITUTE OF TECHNOLOGY & MANAGEMENT

SUBMITTED TO: BY:


Er. Rakesh Garg Dureja(2909269) H.O.D Tomar (2909260) department

SUBMITTED
Himanshu Arun ECE

Introduction :
Recently, stepper motors have become popular in motion control systems because of their simplicity and reliability. Precise positioning operation is easier by using a stepper motor without a gear system. To control the stepper motor, the driver can apply an open loop control algorithm or closed loop algorithm. With applications where load torque is stable and operations are at low speed, an open loop driver is preferred since it needs a simple control algorithm and an encoder is not required. In an open loop stepper motor driver, in order to perform position control, the current in the phase of the motor must be changed gradually. Therefore, the performance of the current controller in an open loop motor driver is important. There are 2 approaches to control current in stepper motor drivers. The duty cycle of switching pulse can be adjusted by using a DAC(digital to analog converter) and analog comparator [1-3]. Another approach is using an ADC (analog to digital converter) and a regular sample to adjust the duty cycle of the switching pulse [4-11]. With the first approach, the analog comparator will determine the state (on or off) of the switching pulse. So the control algorithm in the microprocessor is simple. However, with this method, the control algorithm cannot be changed, and the flexibility and the accuracy of the controller depend on analog components such as resistor, capacitor, op-amp, etc. With the second approach, the current controller samples the feedback current using an ADC, then the digital control law is applied to adjust the duty cycle of switching pulses. With this method, it is easy to change the parameters of the controller and apply digital filters. The accuracy of the current controller can be increased by using more bits for representing a fixed point number when executing the control algorithm. In this approach, the control algorithm and program become more complicated than the first method. The control algorithm can be built on different kinds of microprocessors. When the open loop driver is implemented with a DSP in the C programming language, the coding and debugging is straightforward [5-9]. The performance of the DSP based driver is excellent. On the other hand, the stepper motor driver can be implemented with FPGA and VHDL (VHSIC Hardware Description Language) programming [1, 10- 11]. With this method, the programming and debugging are more difficult. Because of this reason, the performance of the FPGA based driver is still limited. However, with the FPGA based driver with VHDL program it is easier in ASIC manufacturing. This paper introduces a FPGA based open loop driver. With the current controller using a PI control

algorithm and at high sampling frequency, the open loop driver can perform precise and fast positioning. The driver is built on FPGA XC2V8000 from Xilinx. The performance of the driver is checked by using an encoder (10000 positions per round), so the speed and position error can be monitored. The experiment results verify the performance of the control driver algorithm. This paper presents FPGA technology, current controller, an open-loop driver, implementation, and experiment results, to verify the performance of the control driver algorithm.

What is a Stepper Motor?


A stepper motor (also referred to as step or stepping motor) is an electromechanical device achieving mechanical movements through conversion of electrical pulses. Stepper motors are driven by digital pulses rather than by a continuous applied voltage. Unlike conventional electric motors which rotate continuously, stepper motors rotate or step in fixed angular increments. A stepper motor is most commonly used for position control. With a stepper motor/driver/controller system design, it is assumed the stepper motor will follow digital instructions. One important aspect of stepper motors is the lack of feedback to maintain control of position, which classifies stepper motors as open-loop systems.

How Does a Stepper Motor Work?


The main use of stepper motors is to control motion, whether it is linear or rotational. In the case of rotational motion, receiving digital pulses in a correct sequence allows the shaft of a stepper motor to rotate in discrete step increments. A pulse (also referred to as a clock or step signal) used in a stepper motor system can be produced by microprocessors, timing logic, a toggle switch or relay closure. A train of digital pulses translates into shaft revolutions. Each revolution requires a given number of pulses and each pulse equals one rotary increment or step, which is only a portion of one complete rotation. There are numerous relationships between the motors shaft rotation and input pulses. One such relationship is the direction of rotation and the sequence of applied pulses. With proper sequential pulses being delivered to the device, the rotation of the shaft motor will undergo a clockwise or counterclockwise rotation. Another relation between the motors rotation and input pulses is the relationship between frequency and speed. Increasing the frequency of the input pulses allows for the speed of the motor shaft rotation to increase.

How are Stepper Motors Controlled?


A stepper motor performs the conversion of logic pulses by sequencing power to the stepper motor windings; generally, one supplied pulse will yield one rotational step of the motor. This precise control is provided by a stepper driver which controls speed and positioning of the motor. The stepper motor increments a precise amount with each control pulse, converting digital information into exact incremental rotation without the need for feedback devices, such as tachometers or encoders. Since the stepper motor and driver is an open-loop system, the problems of feedback loop phase shift and resultant instability, common with servo motor systems are eliminated.

Block Diagram :

Stepper Motor Driver :

1. The control logic for the circuit can be obtained from a 2 bit up/down counter clocked by a 555 astable multivibrator.The direction of count determines the direction of rotation and the frequency of astable multivibrator determines the speed of rotation. 2. As shown in the schematic above, IC1a IC1b belongs to same IC 7404. 3. Pin 14 and pin 7 of both IC1 and IC2 must be connected to +5 V and ground respectively, though it is not shown in circuit diagram. 4. The 5V can be obtained from a 7805 based power supply circuit. 5. 5V power supply using IC 7805. 6. Vcc is the voltage required for the stepper motor. It varies from motor to motor. Here we can use up to 24V stepper motors. For higher operating voltages and power the SL100 transistors must be replaced with higher power transistors like 2N3055.

Truth table for clockwise rotation.

PROJECT IMPLEMENTATION SCHEDULE


S No. 1. 2. 3. ACTIVITY
Synopsis Circuit Diagram Finalization PCB Layout

DATE
Sept 14, 2012 Sept 18 , 2012 Oct 1,2012

4. 5. 6. 7. 8.

PCB Manufacturing Soldering, Wiring Troubleshooting and Fault Finding Project Finalization Project Report

Oct 11, 2012 Oct 20, 2012 Nov 12, 2012 Nov 26, 2012 Dec 5,2012

References :
1. http://www.circuitstoday.com/stepper-motor-controller
2. http://2007.iccas.org/submission/paper/upload/An%20Open-loop%20Stepper %20Motor%20Driver%20Based%20on%20FPGA.pdf 3. http://www.anaheimautomation.com/manuals/forms/stepper-motor-guide.php

You might also like