Working principle of 51 single chip microcomputer controlled stepper motor driver

Publisher:chunyingLatest update time:2012-01-14 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

Stepper motors are widely used in control systems. They can convert pulse signals into angular displacement and can be used as electromagnetic brake wheels, electromagnetic differentiators, or angular displacement generators. Sometimes, if a stepper motor removed from some old equipment (this type of motor is generally not damaged) is to be used for other purposes, it is generally necessary to design a driver yourself. This article introduces a driver designed for a stepper motor removed from an old Japanese printer.

This article first introduces the working principle of the stepper motor, and then introduces the software and hardware design of its driver.

1. Working principle of stepper motor

This stepper motor is a four-phase stepper motor powered by a unipolar DC power supply. As long as the phase windings of the stepper motor are energized in the appropriate sequence, the stepper motor can be made to rotate step by step. Figure 1 is a schematic diagram of the working principle of the four-phase reactive stepper motor.


Figure 1 Schematic diagram of four-phase stepper motor stepping

At the beginning, switch SB is connected to the power supply, SA, SC, and SD are disconnected, and the magnetic pole of phase B is aligned with the 0th and 3rd teeth of the rotor. At the same time, the 1st and 4th teeth of the rotor are staggered with the magnetic poles of the C-phase winding and the D-phase winding, and the 2nd and 5th teeth are staggered

with the magnetic poles of the D-phase winding. When switch SC is connected to the power supply and SB, SA, and SD are disconnected, the magnetic lines of force between the C-phase winding and the 1st and 4th teeth cause the rotor to rotate, and the magnetic poles of teeth 1 and 4 are aligned with the magnetic poles of the C-phase winding. The 0th and 3rd teeth are staggered with the A-phase winding and the 2nd and 5th teeth are staggered with the magnetic poles of the A-phase winding. By analogy, the four-phase windings A, B, C, and D are powered in turn, and the rotor will rotate in the directions of A, B, C, and D.

According to the different power-on sequences, the four-phase stepper motor can be divided into three working modes: single four-beat, double four-beat, and eight-beat. The step angles of single four-beat and double four-beat are equal, but the torque of single four-beat is small. The step angle of eight-beat working mode is half of that of single four-beat and double four-beat. Therefore, eight-beat working mode can maintain a high torque and improve control accuracy.

The power supply timing and waveform of single four-beat, double four-beat and eight-beat working modes are shown in Figure 2.a, b, and c respectively:


a. Single four-beat b. Double four-beat c. Eight-beat
Figure 2. Stepper motor working timing waveform

2. Circuit principle of stepper motor driver system based on AT89C2051

The circuit principle of stepper motor driver system is shown in Figure 3:


Figure 3 Stepper motor driver system circuit diagram

AT89C2051 outputs the control pulse from P1.4~P1.7 of P1 port, and enters 9014 after being inverted by 74LS14. After being amplified by 9014, it controls the photoelectric switch. After photoelectric isolation, the power tube TIP122 amplifies the pulse signal in voltage and current to drive each phase winding of the stepper motor. The stepper motor can perform forward rotation, reverse rotation, acceleration, deceleration and stop according to different pulse signals. In the figure, L1 is a single-phase winding of the stepper motor. AT89C2051 uses a crystal oscillator with a frequency of 22MHz. The purpose of using a higher crystal oscillator is to minimize the influence of AT89C2051 on the pulse signal cycle of the host computer under mode 2.

RL1~RL4 in Figure 3 are the internal resistance of the winding, and the 50Ω resistor is an external resistor, which plays a current limiting role and is also a component to improve the loop time constant. D1~D4 are freewheeling diodes, which attenuate the back electromotive force generated by the motor winding through the freewheeling diodes (D1~D4), thereby protecting the power tube TIP122 from damage.

A 200μF capacitor is connected in parallel to the 50Ω external resistor to improve the leading edge of the current pulse injected into the stepper motor winding and improve the high-frequency performance of the stepper motor. The 200Ω resistor connected in series with the freewheeling diode can reduce the discharge time constant of the loop, make the trailing edge of the current pulse in the winding steeper, and reduce the current drop time, which also plays a role in improving the high-frequency working performance.

3. Software Design

The driver has three working modes to choose from according to the different combinations of the dial switches KX and KY:

Mode 1 is the interrupt mode: P3.5 (INT1) is the step pulse input terminal, and P3.7 is the forward and reverse pulse input terminal. The host computer (PC or single-chip microcomputer) is connected to the driver with only two lines.

Mode 2 is the serial communication mode: the host computer (PC or single-chip microcomputer) sends the control command to the driver, and the driver completes the relevant control process according to the control command.

Mode 3 is the control mode of the code switch: the stepper motor is directly controlled through different combinations of K1~K5.

When the power is turned on or the reset button KR is pressed, the AT89C2051 first detects the status of the code switches KX and KY, and enters different working modes according to different combinations of KX and KY. The following is the program flow chart and source program of mode 1.

In the compilation of the program, special attention should be paid to the processing of the stepper motor during reversing. In order to make the stepper motor transition smoothly during reversing and avoid misstepping, the flag bit should be set in each step. Among them, each bit of the 20H unit is the forward flag bit of the stepper motor; each bit of the 21H unit is the reverse flag bit. When rotating forward, not only the forward flag bit is assigned a value, but also the reverse flag bit is assigned a value; the same is true when reversing. In this way, when the stepper motor is reversing, the previous position can be used as the starting point for reverse movement, avoiding misstepping when the motor is reversing.


Figure 4: Method 1 program flowchart

Mode 1 source program:
MOV 20H,#00H ;20H unit is initialized, motor forward position pointer
MOV 21H,#00H ;21H unit is initialized, motor reverse position pointer
MOV P1,#0C0H ;P1 port is initialized to prevent motor power-on short circuit
MOV TMOD,#60H ;T1 counter is initialized, interrupt is enabled
MOV TL1,#0FFH
MOV TH1,#0FFH
SETB ET1
SETB EA
SETB TR1
SJMP $
;***********Counter 1 interrupt program************

IT1P: JB P3.7,FAN ;Motor forward and reverse pointers
;****************Motor forward********************
JB 00H,LOOP0
JB 01H,LOOP1
JB 02H,LOOP2
JB 03H,LOOP3
JB 04H,LOOP4
JB 05H,LOOP5
JB 06H,LOOP6
JB 07H,LOOP7
LOOP0: MOV P1,#0D0H
MOV 20H,#02H MOV 21H
,#40H AJMP QUIT LOOP1: MOV P1, #090H MOV 20H, #04H MOV 21H,#20H AJMP QUIT LOOP2 : MOV P1 ,# 0B0H MOV
AJMP QUIT
LOOP5 : MOV P1,#060H MOV 20H,#40H MOV 21H,#02H AJMP QUIT LOOP6: MOV P1,#0E0H MOV 20H,#80H MOV 21H,#01H AJMP QUIT LOOP7: MOV P1,#0C0H MOV 20H,#01H MOV 21H,#80H AJMP QUIT ; ***************Motor reverse************************ FAN: JB 08H,LOOQ0 JB 09H,LOOQ1 JB 0AH,LOOQ2 JB 0BH,LOOQ3 JB 0CH,LOOQ4 JB 0DH,LOOQ5 JB 0EH,LOOQ6 JB 0FH,LOOQ7 LOOQ0: MOV P1,#0A0H MOV 21H,#02H MOV 20H,# 40H MOV P1 ,#0E0H MOV 21H,#04H MOV 20H,#20H AJMP QUIT LOOQ2: MOV P1,#0C0H MOV 21H,#08H














































MOV 20H,#10H
AJMP QUIT
LOOQ3: MOV P1,#0D0H
MOV 21H,#10H
MOV 20H,#08H
AJMP QUIT
LOOQ4: MOV P1,#050H
MOV 21H,#20H
MOV 20H,#04H
AJMP QUIT
LOOQ5: MOV P1, #070H
MOV 21H,#40H
MOV 20H,#02H AJMP QUIT
LOOQ6 : MOV
P1,#030H
MOV 21H ,#80H MOV 20H,#01H QUIT: RETI END 4. Conclusion The driver has been verified by experiments to be able to drive a 0.5Nm stepper motor. By adjusting the parameters of the resistance, capacitance and freewheeling diode of the driver part, it can drive a 1.2Nm stepper motor. The driver circuit is simple and reliable, with a compact structure. It is especially suitable for systems with limited I/O port lines and microcontroller resources.










Reference address:Working principle of 51 single chip microcomputer controlled stepper motor driver

Previous article:Design of driving circuit for electronic expansion valve of air conditioner temperature control
Next article:Distributed detection method of vibration signal based on 51 single chip microcomputer and MXA2500GL sensor

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号