English
Language : 

TMC428_06 Datasheet, PDF (26/58 Pages) List of Unclassifed Manufacturers – Intelligent Triple Stepper Motor Controller with Serial Peripheral Interfaces
TMC428 DATASHEET (v. 2.02 / April 26th, 2006)
26
high if the mask MASK_STOP_LEFT_HIGH is set. The INT_STOP_RIGHT_HIGH indicates it for the
right reference switch if the mask MASK_STOP_LEFT_HIGH is set.
8.14 pulse_div & ramp_div & usrs (IDX=%1100)
The frequency of the external clock signal (see Figure 4-1, page 6, pin CLK) is divided by 32 (see
Figure 8-2, page 20, block clk_div32). This clock drives two programmable clock dividers for the ramp
generator and for the pulse generator. The pulse generator clock– defining the maximum step pulse
rate –is determined by the parameter pulse_div. The pulse rate R is given by
R[Hz] = f_clk[Hz] * velocity / ( 2^pulse_div * 2048 * 32 )
where f_clk[Hz] is the frequency of the external clock signal. The parameter velocity is in range 0 to
2047 and represents parameters v_min, v_max and absolute values of v_target and v_actual. So,
the pulse generator of the TMC428 would generate one step pulse with each pulse generator clock
pulse if the velocity could be set to 2048. The full step frequency RFS[Hz] = R[Hz] / 2^usrs. The
change ∆R in the pulse rate per time unit (pulse frequency change per second – the acceleration) is
given by
∆R[Hz/s] = f_clk[Hz] * f_clk[Hz] * a_max / ( 2^(pulse_div+ramp_div+29) ).
The constant 29 within the exponent is because 2^29 = 2^5 * 2^5 * 2^8 * 2^11 = 32*32*256*2048,
where 32 comes from fixed clock pre-dividers, 256 comes from velocity accumulation clock pre-divider,
and 2048 comes from velocity accumulation clock divider programmed by a_max. The parameter
a_max is in range 0 to 2047. So, the parameter ramp_div scales the acceleration parameter a_max,
where the parameter pulse_div scales the velocity parameters. ∆RFS[Hz] = ∆R[Hz] / 2^usrs.
usrs
000
001
010
011
100
101
110
111
[microsteps /
full step]
1
2
4
8
16
32
64
significant DAC bits
(controlling current
amplitude)
-
5 (MSB)
5 (MSB), 4
5 (MSB), 4, 3
5 (MSB), 4, 3, 2
5 (MSB), 4, 3, 2, 1
5 (MSB), 4, 3, 2, 1, 0 (LSB)
Table 8-8: micro step resolution selection (usrs) parameter
comment
full step (constant current amplitude)
half step
microstepping
The angular velocity of a stepper motor can be calculated based on the full step frequency Rfs[Hz] for
a given number of full steps per rotation. Similar, the angular acceleration of a stepper motor can be
calculated based on the change of full step frequency per second ∆RFS[Hz]. The three bit wide
parameter usrs (micro (µ) step resolution selection, where u represents µ) determines the micro step
resolution for its associated stepper motor according to Table 8-8. There is an individual set of 6 DAC
bits provided for each of the two phases (coils) for current control to provide up to 64 micro steps per
full step. Depending on the micro step resolution, a subset of 6 DAC bits is significant. Using full
stepping, the current amplitude is constant for both phases (coils) of a stepper motor and the polarity of
one phase (coil) changes with each full step. The micro step counters are initialized to 0 during power-
on reset. With each micro step an associated counter accumulates the programmed micro step
resolution value usrs.
Generally, the number of steps S during linear acceleration a to a velocity v is given by S = ½ * v^2 / a.
With v = R[Hz] and a = ∆R[Hz/s] one gets S = ½ * velocity^2 / a_max * 2^ramp_div / 2^pulse_div /
2^3. The number of full steps SFS is SFS = S / 2^usrs.
Copyright © 2004-2006, TRINAMIC Motion Control GmbH & Co. KG