L297 Stepper Motor Controller - Development Module
Introduction
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
This comment has been removed by the author.
ReplyDelete