English
Language : 

TMC428_06 Datasheet, PDF (21/58 Pages) List of Unclassifed Manufacturers – Intelligent Triple Stepper Motor Controller with Serial Peripheral Interfaces
TMC428 DATASHEET (v. 2.02 / April 26th, 2006)
21
divider ratio T = 2ramp_div / 2pulse_div = 2ramp_div - pulse_div = 2^(ramp_div-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 8-1). 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
p = a_max / ( 128 * 2^( ramp_div-pulse_div ) ).
To avoid overshooting, the parameter p_mul should be made approximately 5% smaller than
calculated. Alternatively, one can arrange p reduced by an amount of 5%. 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.
Note: Changing at least one parameter out of the triple {a_max, ramp_div, pulse_div} requires re-
calculation of the parameter pair {pmul, pdiv} to update the associated register if necessary.
v(t)
v_max
p too small
∆v
p too large
v_min
t0
t1
t2
Figure 8-3: Proportionality parameter p and outline of velocity profile(s)
On first approach, to represent the parameter p = p_mul / p_div = (128+pmul) / 2^(3+pdiv) one
chooses a pair of pmul and pdiv that approximates p, with pmul in range 0 ... 127 representing p_mul
in range 128 ... 255 and pdiv one out of {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} representing p_div
one out of {8, 16 , 32 ,64, 128 , 256, 512, 1024, 2048, 4096, 8192, 16384, 32786, 65536}. There are
only 128 * 14 = 1792 pairs of (pmul, pdiv). So, one can simply try all possible pairs (pmul, pdiv) with a
program and choose a matching pair. To find a pair, one calculates
p = a_max / ( 128 * 2^( ramp_div-pulse_div ) )
and
p’ = p_mul / p_div = (128+pmul) / 2^(3+pdiv)
and
q = p’ / p
for each pair (pmul , pdiv) and select one of the pairs satisfying the condition 0.95 < q < 1.0. So, the
value q interpreted as a function q(a_max, ramp_div, pulse_div, pmul, pdiv) gives the quality
criterion required. Although q = 1.0 indicates that (pmul , pdiv) perfectly represents the desired p for a
given a_max, this could cause overshooting because of finite numerical precision. In case of high
Copyright © 2004-2006, TRINAMIC Motion Control GmbH & Co. KG