Datasheet

TMC429 DATASHEET (v. 1.07 / 2012-AUG-01) 22
Copyright © 2010-2012, TRINAMIC Motion Control GmbH & Co. KG
Important Notes: The maximum current scaling factor 1 is selected by i_scale = %000. This is the
power-on default. The minimum current scaling factor 1/8 = 0.125 is selected by i_scale = %001. The
current scaling factor I
s
proportionally reduces the effective number of micro steps per full step. For
example, with i_scale = %100 (= 4/8 = 50%) the number of effective micro steps per full step is
halved.
One of the three scale factors is_agtat, is_aleat, and is_v0 is selected according to Table 9-2. If the
velocity is zero, the parameter is_v0 is used for scaling. If the velocity is not zero, either is_aleat or
is_agtat is used for scaling, depending on the absolute value of the acceleration and the acceleration
threshold a_threshold.
v = 0
I
s
:= is_v0
v ≠ 0
a
threshold > 1023
I
s
:= is_aleat
| a | a
threshold
I
s
:= is_aleat
| a | > a
threshold
I
s
:= is_agtat
Table 9-2: Current scale selection scheme
The automatic motion dependent current scale feature of the TMC429 is provided primarily for micro
step operation. It may also be applied for full step or half step drivers, if those provide current control
bits. For those drivers, one could initialize the micro step table with a constant function, square function
or sine wave using the two most significant DAC bits.
The configuration bit continuous_update of the stepper motor global parameter register (Table
10-3, page 35re that the coil current is scaled for v=0 if all motors are at
rest.
The current is scaled for v=0 takes place delayed to avoid mechanical step lost due to oscillations of
the motor after it has been stopped. The delay time is
t_isv0_delay[s] = 255 * ( 32 * 2^ramp_div ) / fCLK[Hz].
Important Hints: Due to signed compare of a_threshold with a_max, a setting of a_threshold with a
value greater than 1023 results in using is_aleat for current scaling if a_max is greater than 1023
during acceleration instead of using is_agtat for current scaling. For most applications, setting is_aleat
and is_agtat to the same value and using a lower value for is_v0 is the best choice. For selection of
current scaling is_v0 at rest, both parameters is_agtat and is_aleat must be larger than 0.
9.10 pmul & pdiv (IDX=%1001)
The stepper motors are driven with a trapezoidal velocity profile, which may become triangular if the
maximum velocity is not reached (see Figure 9-1, page 19). Depending on the difference between the
target position x_target and the actual position x_actual, the ramp generator continuously calculates
target velocities v_target for the pulse generator (see Figure 9-2, page 23). The pulse generator then
generates (micro) step pulses taking into account the motion parameter limits (v_min, v_max,
a_max). With a target velocity proportional to the difference of target position x_target and current
position x_actual, the stepper motor approaches the target position. This also works, if the target
position is changed during motion. The stepper motor moves to a target position until the difference
between the target position x_target and the current position x_actual vanishes.
With the right proportionality factor p, target positions are quickly reached and without overshooting
them. The proportionality factor primarily depends on the acceleration limit a_max and on the two clock
divider parameters pulse_div and ramp_div. These two separate clock divider parameters set to the
same value for most applications give an extremely wide dynamic range for acceleration and velocity.
These two separate parameters allow reaching very high velocities with very low acceleration.