English
Language : 

TMC428_06 Datasheet, PDF (20/58 Pages) List of Unclassifed Manufacturers – Intelligent Triple Stepper Motor Controller with Serial Peripheral Interfaces
TMC428 DATASHEET (v. 2.02 / April 26th, 2006)
20
p_div = {23, 24, 25, ..., 214, 215, 216}.
Instead of direct storage of the parameters p_mul and p_div, the TMC428 stores two parameters
called pmul and pdiv, with
p_mul = 128 + pmul
and p_div = 23+pdiv= 2^(3+pdiv)
where
pmul = {0, 1, 2, 3, ..., 127}
and pdiv = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}.
The reason why p_mul ranges from 128 to 255 is, that p is divided by p_div which is a power of two
ranging from 8 to 65536. So, values of p less than 128 can be achieved by increasing p_div.
Note: The parameters pmul and pdiv share a single address (IDX=%1001, see Table 7-2, page 15).
The MSB of p_mul is fixed set to ‘1’. So, sending pmul internally sets p_mul = 128 + pmul. In other
words, %10000000 = 128 is ORed as bit vector with the content of the register pmul.
pmul
pdiv
v_min v_max a_max
x_target
x_actual
RAMP GENERATOR
v_target
PULSE GENERATOR
(micro) step pulses
ramp_div
clk32
pulse_div
clk
clock_div32
Figure 8-2: Ramp generator and pulse generator
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 microcontroller could calculate on demand a
pair of p_mul and p_div for each acceleration limit a_max and given ramp_div and pulse_div. Also,
pre-calculated pairs of p_mul and p_div read from a table maybe sufficient.
8.11 Calculation of p_mul and p_div
The proportionality factor p = p_mul / p_div depends on the acceleration limit a_max and frequency
pre-divider parameters ramp_div and pulse_div. So, a pair of p_mul / p_div has to be calculated
once for each provided 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 accumulates the acceleration value
to the actual velocity with each time step. 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 step pulse
generator. So, there are 211 = 2048 values possible to specify a velocity, ranging from 0 to 2047. The
ramp generator accumulates a_max divided by 28 = 256 at each time step to the velocity during
acceleration phases. So, the acceleration from 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 the (micro) step unit. The parameter T is the clock
Copyright © 2004-2006, TRINAMIC Motion Control GmbH & Co. KG