Datasheet

TMC4361A Datasheet | Document Revision 1.22 2017-JAN-12
90/230
© 2015 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany Terms of delivery and rights
to technical change reserved. Download newest version at: www.trinamic.com .
Read entire documentation; especially the Supplemental Directiveson page 224.
MAIN MANUAL
Actual Current Values Output
When the microstep sequencer advances within the microstep table (MSLUT), it
calculates the actual current values for the motor coils with each microstep, and stores
them to the register 0x7A , which comprises the values of both waves
CURRENTA
and
CURRENTB
. However, the incremental coding requires an absolute initialization
especially when the microstep table becomes modified. Therefore,
CURRENTA
and
CURRENTB
become re-initialized with the start values whenever
MSCNT
passes zero.
As mentioned above, the MSLUT can be adapted to the motor requirements. In order
to understand the nature of incremental coding of the microstep table, the
characteristics of the microstep wave must be understood, as described in the list
below:
Characteristics of a 2-phase motor microstep table:
In principle, it is a reverse characteristic of the motor pole behavior.
It is a polished wave to provide a smooth motor behavior. There are no jumps
within the wave.
The phase shift between both phases is exactly 90°, because this is the optimum
angle of the poles inside the motor.
The zero transition is at 0°. The curve is symmetrical within each quadrant (like
a sine wave).
The slope of the wave is normally positive, but due to torque variations it can
also be (slightly) negative.
But it must not be strictly monotonic as shown in the figure above.
Considering these facts, it becomes clear that the wave table can be compressed. The
incremental coding applied to the TMC4361A uses a format that reduces the required
information
- per entry of the 8-bit by a 256-entry wave table -
to slightly more than
a single bit.
How to Program the Internal MSLUT
The principle of
incremental encoding
only stores the difference between the actual
and the next table entry. In order to attain an absolute start value, the first entry is
directly stored in
START_SIN
. Also, for ease-of-use, the first entry of the shifted table
for the second motor phase is stored in
START_SIN_90_120
.
Based on these start values, every next table entry is calculated by adding an
increment INC to the former value. This increment is the base wave inclination value
Wx whenever its corresponding
ofs
bit is 1 or Wx 1 if
ofs
= 0:
INC = Wx + (ofs 1).
The base wave inclination can be set to four different values (0, 1, 2, 3), because it
consists of two bits.
Because the wave inclination does not change dramatically, TMC4361A provides four
wave inclination segments with the base wave inclinations (W0, W1, W2, and W3)
and the segment borders (0, X1, X2, X3, and 255), as shown in the left quarter of the
MSLUT diagram in
Figure
48, page 89.
Wave Inclination Characteristics
Wave Inclination
Segment
Base Wave
Inclination
Segment Ranges
0
W0
0 … X1
1
W1
X1… X2
2
W2
X2 … X3
3
W3
X3 … 255
Table 40: Wave Inclination Characteristics of Internal MSLUT
Actual Current
Calculations
Characteristics
of a 2-phase
Stepper Motor
Microstep Table
Principle of
Incremental
Encoding