
TMC428 DATA SHEET (V. 1.00 / February 12, 2001)
19
Copyright 2000, TRINAMIC Microchips GmbH
M I C R O C H I P S
19
The parameter
p
has to be calculated for a given acceleration. This calculation is not done by the TMC428
itself, because this task has to be done only once for a given acceleration limit. The acceleration limit is a
stepper motor parameter, which is usually fixed in most applications. If the acceleration limit has to be
changed nevertheless, the micro controller could do this task or one could provide a pair of
p_mul
and
p_div
in a memory for each acceleration limit
a_max
required.
How to Calculate p_mul and p_div respectively pmul and pdiv
The proportionality factor
p = p_mul / p_div
depends on the acceleration limit
a_max
. So, a pair of
p_mul / p_div
has to be calculated once for each proposed acceleration limit
a_max
. There may exist
more than one valid pair of
p_mul
and
p_div
for a given
a_max
.
To accelerate, the ramp generator with each time step accumulates the acceleration value to the actual
velocity. Internally, the absolute value of the velocity is represented by 11+8 = 19 bits, while only the
most significant 11 bits and the sign are used as input for the pulse generator. So, there are 2
values possible to specify a velocity, ranging from 0 to 2047. The ramp generator accumulates
a_max
divided by 2
velocity = 0 to maximum velocity = 2047 spans over 2048* 256 /
a_max
pulse generator clock pulses.
Within that acceleration phase, the pulse generator generates S = * 2048* 256 /
a_max
* T steps for
its (micro) step unit. The parameter T is the clock divider ratio T = 2
pulse_div). During acceleration, the velocity has to be increased until the velocity limit
v_max
is reached or
deceleration is required to reach the target position exactly (see Figure 7). The TMC428 automatically
decelerates, if required using the difference between current position and target position and the
proportionality parameter
p
, which has to be
p
= 2048 / S. With this, one gets p = 2048 / ( ( * 2048*
256 /
a_max
) * 2^(ramp_div-pulse_div) ) . This expression can be simplified to
11
= 2048
8
= 256 at each time step to the velocity during acceleration phases. So, the acceleration from
rampdiv
/ 2
pulsdiv
= 2
rampdiv-pulsdiv
= 2^(ramp_div-
p = a_max / ( 128 * 2^( ramp_div-pulse_div ) )
.
To avoid overshooting, the parameter
p_mul
should be made approximately up to 10% smaller than
calculated. If the proportionality parameter
p
is too small, the target position will be reached slower,
because the slow down ramp starts earlier. The target position is approached with minimal velocity
v_min
, whenever the internally calculated target velocity becomes less than
v_min
. With a good
parameter
p
the minimal velocity
v_min
is reached a couple of steps before the target position. With
parameter
p
set a little bit to large and small
v_min
overshooting of
one step respectively one micro step
may occur. Decrementation of the parameter
pmul
avoids such one-step overshooting.
D
v
v_max
v(t)
v_min
p too small
ptoolrg
pgo
t
1
t
0
t
2
Figure 9 - Proportionality Parameter p and Outline of Velocity Profile(s)