Datasheet
TMC429 DATASHEET (v. 1.07 / 2012-AUG-01) 21
Copyright © 2010-2012, TRINAMIC Motion Control GmbH & Co. KG
Important Note: So, a_max can be set without restrictions within its range of 0 to 2047 for those
combinations of ramp_div and pulse_div with | ramp_div pulse_div | 1.
The parameter a_max must not be set below a_max_lower_limit except a_max is set to 0. The
condition a_max a_max_lower_limit as well as a_max a_max_upper_limit must be satisfied to
reach any target position without oscillations. If that condition is not satisfied, oscillations around a
target position may occur. For description of the parameters ramp_div and pulse_div see page 29.
So, a_max_lower_limit and a_max_upper_limit restrict the allowed range of a_max only for those
cases where ramp_div is non-equal to pulse_div and differ more than one. These both limits of
a_max concern the deceleration phase for RAMP_MODE and SOFT_MODE only. As long as
ramp_div pulse_div – 1 is valid, any value of a_max within its range (0,1, ..., 2047) is allowed and
there exists a valid pair {pmul, pdiv} for each a_max. Qualitative verbalized, this is because the
acceleration scaling determined by ramp_div is compatible with the step velocity scaling determined
by pulse_div. In other words, large ramp_div stands for low acceleration where large pulse_div
stands for low velocity and low acceleration is compatible with low speed and high speed as well, but
high acceleration is more compatible with high speed.
Important 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. For
description of the parameters pmul and pdiv see section 9.10, page 22.
9.8 a_actual (IDX=%0111)
The actual acceleration, which the TMC429 actually applies to a stepper motor, can be read out by the
microcontroller from this read-only register for monitoring purposes. The actual acceleration is used to
select scale factors for the coil currents. Internally, it is updated with each clock. The returned value
a_actual is smoothed to avoid oscillations of the readout value. Thus, returned a_actual values should
not be used directly for precise calculations.
9.9 is_agtat & is_aleat & is_v0 & a_threshold (IDX=%1000)
These parameters represent current scaling values I
s
and are applied to the motor depending on the
ramp phase: The parameter is_agtat is applied if the acceleration (a) is greater than (gt) a threshold
acceleration (a
t
). This is to increase current during acceleration phases. The parameter is_aleat is
applied if the acceleration is lower than or equal to (le) the threshold acceleration. This is the nominal
motor current. The third parameter is_v0 is applied if the stepper motor is at rest, to save power, to
keep it cool, and to avoid noise probably caused by chopper drivers. The parameter a_threshold is the
threshold used to compare with the current acceleration to select the current scale factor. The three
parameters is_agtat, is_aleat, and is_v0 are bit vectors of three bit width. One of these is selected
conditionally and assigned to an interim bit vector i_scale. The current scaling factor I
s
is defined in
Table 9-1.
i_scale
I
s
0
0
0
1
= 100
%
0
0
1
1 / 8
= 12.5
%
0
1
0
2 / 8
= 25
%
0
1
1
3 / 8
= 37.5
%
1
0
0
4 / 8
= 50
%
1
0
1
5 / 8
= 62.5
%
1
1
0
6 / 8
= 75
%
1
1
1
7 / 8
= 87.5
%
Table 9-1: Coil current scale factors