Research on Multi-Level Microstepping Drive Method for Stepper Motors
2026-04-06 05:57:55··#1
As an electromagnetic mechanical device, the feed resolution of a stepper motor depends on microstepping technology. Software microstepping offers advantages such as low cost, high efficiency, and ease of modification due to its programming flexibility and versatility. It also addresses issues like low-frequency vibration and noise that can occur at low speeds. However, a single software microstepping approach presents a trade-off between accuracy and speed: more microsteps result in higher accuracy but lower rotational speed; conversely, increasing rotational speed requires reducing the number of microsteps. Therefore, a multi-level microstepping system was designed. Different microstepping levels allow for different step counts while maintaining varying rotational speeds. 1. Microstepping Principle The microstepping mechanism is inherent in stepper motor control. For example, a three-phase stepper motor energized sequentially in the order A→B→C… operates in full steps. Energized in the order A→AC→C→CB→B→BA→A…, the stepper motor operates in half-steps. Taking A→B as an example, if we consider the currents of each phase as vectors, the transformation from a full step to a half step is achieved by inserting a transition vector IAB between IA and IB. This is because the direction of the resultant current vectors determines the direction of the resultant magnetomotive force (MMF) of the stepper motor, and the rotation angle of the MMF is itself the step angle of the stepper motor. Clearly, the insertion of IAB changes the rotation magnitude of the MMF, causing the stepper motor's step angle to change from θb to 0.5θb, thus achieving 2-step microstepping. Therefore, the microstepping principle of a stepper motor is to reduce the rotation angle of the MMF by regularly inserting current resultant vectors at equal angles, thereby achieving the purpose of microstepping control. As shown in Figure 1, inserting the resultant vector AB between phases A and B of a three-phase stepper motor achieves 2-step microstepping. To achieve 4-step microstepping, it is only necessary to insert three vectors I1, I2, and I3 between A and AB, making the rotation angle of the MMF θ1=θ2=θ3=θ4, thus achieving 4-step microstepping. However, 4-step subdivision is different from 2-step subdivision. Since the insertion of the three vectors I1, I2, and I3 decomposes the current vector IB, the control pulse becomes a stepped wave. The higher the subdivision level, the more complex the stepped wave. When a three-phase stepper motor operates in full steps, the rotation process for achieving 2-step subdivision is IA→IAB→IB; the rotation process for achieving 4-step subdivision is IA→I2→IAB…; and the rotation process for achieving 8-step subdivision is IA→I1→I2→I3→IAB…. It is evident that different subdivision steps require the insertion of different current synthesis vectors. 2. Implementation of the Multi-Level Subdivision Drive System 2.1 System Composition The system consists of a host computer, a keyboard input system, a stepper display system, and a stepper control system. The host computer uses the AT89C51 microcontroller, a low-power 8-bit microcontroller with a 4KB on-chip Flash programmable, erasable, and read-only memory, which simplifies the system configuration and meets the data storage space requirements of this system. The host receives step control data from the serial port and processes it to implement step control. The keyboard input system is used to input the required microstepping levels. During system design, considering that with increasing microstepping precision, such as 128 steps, the step angle becomes sufficiently small to meet various stepping requirements, a power of 2 is used as the microstepping reference. The step display system uses an LCD to display the current microstepping level and the resulting step angle, among other parameters. To reduce circuit complexity, the smallest unit displayed is specified as 0.01°. The stepper control system consists of a D/A conversion section and a drive system. The D/A conversion section includes three DAC0830 integrated chips and a data latch system. The DAC0830 has an 8-bit conversion resolution and offers advantages such as microprocessor compatibility, low cost, simple interface, and easy conversion control. The function of the D/A conversion section is to convert the stepped waveform value represented by binary code into a corresponding current value output, which is amplified by the drive system to control the stepper motor's rotation. The drive system uses transistors to amplify the current. 2.2 Generation of Subdivision Step Waves The subdivision process involves inserting and converting the current synthesis vector. The prerequisite for current synthesis vector conversion is the insertion of the synthesis vector. In the system, the host calculates relevant parameters based on the set subdivision level and generates the corresponding step wave by looking up a table, thus inserting the current synthesis vector. Under the control signal for forward or reverse rotation, the step wave pulse is sent from the output port through the latching system to the D/A converter DAC0830 for current synthesis vector conversion, outputting the corresponding current value. This value is then amplified and used to control the stepper motor, thereby achieving subdivision drive. The insertion of the current synthesis vector is crucial for subdivision, and to obtain the current synthesis vector, a step wave must first be generated. As shown in Figure 1, in the case of a three-phase motor operating at half-step speed, to achieve 4-step subdivision, the B-phase current must be divided into 4 parts, but not equally; θ1=θ2=θ3=θ4 must be ensured. If the current vectors corresponding to θ1, θ2, θ3, and θ4 are IB1, IB2, IB3, and IB4 respectively, then within the triangle corresponding to θ1, let the step angle be θb. Then α = 180° - θb and β = θb - θ1. According to the sine theorem, considering the general case, since the stepper motor control pulse waveform is stepped during subdivision, when performing 4-step subdivision on phase B, its current input is IB1, IB1 + IB2, IB1 + IB2 + IB3, and IB1 + IB2 + IB3 + IB4. The corresponding angles through which the synthesized magnetomotive force rotates are θ1, θ1 + θ2, θ1 + θ2 + θ3, and θ1 + θ2 + θ3 + θ4. At this time, let IBk be the current value of the kth order in the stepped wave of phase B in the current synthesis vector, and θk be the angle through which the synthesized magnetomotive force rotates at this time. Therefore, for phase B, when the step angle of the stepper motor is θb, considering IA=IB, the current value of any step of the stepped waveform is the same. Similarly, the stepped waveform current values corresponding to phases A and C in the subdivision can be obtained. To solve equation (1), considering that the conversion accuracy of the D/A device DAC0830 is 8 bits and the conversion settling time is 1 μs, a maximum of 128 subdivision steps were performed. The corresponding subdivision current values were obtained and converted accordingly to obtain the corresponding binary value list. At this time, all the values in the list are the current values of each step of the stepped waveform when 128 subdivision steps are implemented. 2.3 Implementation of multi-level subdivision drive To implement multi-level subdivision on the basis of subdivision, different stepped waveforms must be generated for different subdivision levels. For this reason, the system adopts the cyclic incremental lookup table method. First, a staircase waveform value storage table is established. There are two methods: one is to create a corresponding table for each subdivision mode, which allows for diverse subdivision types but requires a large table size; the other, which is adopted by this system, is to create only one table for the number of steps corresponding to the maximum subdivision level, greatly reducing the required storage space and minimizing instability factors during program operation. In specific control, the system achieves multi-level subdivision drive by setting a cyclic increment base, so that different subdivision levels correspond to different subdivision steps. The cyclic increment base refers to the number of steps required for equal-interval addressing for different subdivision levels. The cyclic increment base is obtained from the corresponding calculation formula after the subdivision level is set. Since the maximum subdivision step size of this system is 128 steps, the maximum table length is 128 bytes. If the subdivision step size is m steps, then the cyclic increment base is LB = (128/m) - 1. Different levels correspond to different cyclic increment bases, and the same table generates the staircase waveform required for multi-level subdivision. Furthermore, based on the overall control, if it is subdivided into m steps, and the current values of each item in each m step are analyzed and compared, the following pattern can be found: the changing trend of the current values of each phase appears cyclically with the phase change.