L297 Stepper Motor Controller - Development Module
The L297 is a new development module, which is currently in the development stage. The module design itself is modular, with the L297 integrated circuit generating a four-phase control signal for microcontroller control of two-phase bipolar and four-phase unipolar DC stepper motors. Considering that zilsel-invent has already developed a four-channel DC motor driver for four-phase unipolar stepper motors, we primarily emphasize them. Accordingly, the block diagram of the complete system looks as shown in Figure 1.
|Figure1. Interfacing between L297IC and SERPENT II Pit VIPER Rattle|
L297 Integrated circuit
Before we start with the description of the L297 integrated circuit, we must say that it can also be implemented with a program code. However, you need a processor (CPU) and processor time to execute the code, which means that for most of the time, the CPU will be busy generating control signals for managing DC motors. We also have something like that with a direct microcontroller and an integrated circuit such as the ULN2803 (although the L297 IC can also be directly coupled with the ULN2803 integrated circuit, which was the case when I was working on the revision of the 1 L297 development module). In order to free the processor from generating control signals, hardwire solutions such as the L297 integrated circuit are made, where electronics is the one that generates control signals for DC motors, while the processor frees time to perform other tasks.
|Figure2. Block diagram L297 integrated circuit|
The central part of the integrated circuit is Translator, nothing but a state machine or a finite automat with exactly eight different states, where each state generates a four-channel control signal for controlling the DC stepper motor. As each finite automat has an initial state, Translator L297 integrated circuit has the initial state labeled by number 1 and the name HOME. Guided by the Clock signal (the PWM signal that can be generated by the VF Driver, zilsel-invent has developed one such driver but only in the prototype variant) and triggering it, the Translator goes from state to state in the following order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 1 ... Now, the output from the Translator is directly coupled with an output logic whose purpose is to generate control signals for the DC motor: Channel A, Channel B, Channel C, Channel D, etc. (see block diagram, Figure 2, L297 integrated circuit). However, the Translator will not forward any state of the output logic, but only those signals that belong to the mode in which the Translator works. The Translator mode is determined by the HALF STEP/FULL STEP control signal. The Translator is in the HALF STEP mode when the logical unit from the microcontroller pin is brought to the same control signal, for example from Arduino. In addition to the HALF STEP, there are two other Translator modes that are determined by the FULL STEP control signal when logical zero is added to it, which are: "One-phase-on full step mode" and "Two-phase-on full step mode". In the "One-phase-on full step mode" when the Translator is in even state, "Two-phase-on full step mode" enters when in odd state. If we want the Translator to be in one of these two states we have to do the following, we achieve this with the program code, you need to do a series of steps. The precondition, microcontroller or VF Driver does not generate clock signal.
1. It is necessary to restart the Translator (RESET control signal). If the HOME pin, which is an open collector from the integrated transistor, coupled with the Translator, connects to the LED and the resistor R to the line, we will get a LED indication that the Translator is in the initial state. This automatically means that Translator is in the odd state. If in that moment we bring a logical zero and start generating a clock signal on HALF STEP/FULL control signal, the Translator will work in the "Two-phase-on full step mode" mode.
2. If we need a "One-phase-on full step mode" Translator mode, we need to switch the Translator to the even state. We achieve this by generating only one Clock signal, not the entire processor clock signal. This one Clock signal sets the Translator to the even state, which is in this case the state with the number 2. Then, on the HALF STEP/FULL control signal, we bring a logical zero and start generating the entire clock signal processor that will indicate the Translator to work in "One-phase -in full step mode "mode. This mode of operation is actually the one that is required for managing unipolar DC stepper motors.
In addition to the Translator, electronics is also used to measure the consumption of electricity. For the same, the high impedance signals SENS1 and SENS2 are provided, since they are coupled to the inverting input of the comparator (although they can also be operational amplifiers; in any case, their input pins have a high impedance, which means that no current enters the comparator /the operational amplifier. To measure the current consumption by this method, only the voltage potential is sufficient). This is a classic way to determine the consumption of electrical current through the comparator and the Vref (reference voltage). At SENS1 and SENS2, shunt resistors are actually connected to the line, which actually have a very low resistance (since the resistor can not disturb the flow of electricity, therefore the shunt resistor has low resistance and high conductivity), but it also heats up considerably, built for high power, many of them even have an integrated cooler, Figure 3. is an example of one shunt resistor. For example, the following resistor can be used: K40H-0.1 - ceramic horizontal 40W 5% 0.1 ohms. How this actually looks like is shown in Figure 4, the coupling L297 controller and the L298 driver, where RS1 and RS2 are shunts (we even see that for the same resistance values of 0.5, that's precisely this, low resistance because the shunt can not disturb the current flow).
|Figure3. Horizontal ceramic shunt|
|Figure4. The coupling L297 controller and the L298 driver, where RS1 and RS2 are shunts, (we even see that for the same resistance values of 0.5, that's precisely this, low resistance because the shunt can not disturb the current flow).|
L297 is not a driver, and accordingly it is not possible to directly control the DC motor. L297 is a controller that is coupled with an amplifier/the driver for the DC motor already shown in Figure 1. Based on the catalog data (specifications) we see the following: Phase output voltage (pins 4, 6, 7, 9) Test conditions: Io = 10mA VOL, Max 0.4 V, Io = 5mA VOH 3.9 V. This is not enough to initiate the DC motor, so L297 must be connected to a driver such as SERPENTII Pit Viper Rattle. This is enough to trigger the LEDs in order to monitor the flow of generating control signals, which was done in the original revision of the developer module developed by zilsel-invent, Figure 5.
|Figure 5. L297 Development Module designed by zilsel-invent (R) - Novi Sad|
Author: Vladimir Savić
Translator: Nera Marković - nera.markovic(at)zilsel-invent.com
Translator: Nera Marković - nera.markovic(at)zilsel-invent.com