Datasheet
TMC429 DATASHEET (v. 1.07 / 2012-AUG-01) 39
Copyright © 2010-2012, TRINAMIC Motion Control GmbH & Co. KG
10.12 Triple Switch Configuration
The programmable tolerance range around the reference switch position is useful for a triple switch
configuration, as outlined in Figure 10-8. In that configuration two switches are used as automatic stop
switches, and one additional switch is used as the reference switch between the left stop switch and
the right stop switch. The left stop switch and the reference switch are wired or. After successful
reference search, programming a tolerance range into the register dx_ref_tolerance allows to disable
automatic stop within the range of the reference switch only.
negative direction
x'
1
x'
2
left stop
switch
x'
left
x
1
x
2
reference switch
x
0
positive direction
x
3
x
4
x
right
right stop
switch
dx_ref_tolerance
motor
traveller
x
traveler
Figure 10-8: Triple switch configuration ‘left stop switch – reference switch – right stop switch’
positive directionnegative direction
mechanical inaccuracy of switches
(switching hysteresis)
x
1
x
2
reference
switch
dx
2
dx
1
dx_ref_tolerance
x
ref
x
max
motor
traveller
x
traveler
Figure 10-9: Reference search
10.13 Reference Search
The goal of the reference search is to determine the position x
ref
of a reference switch (see Figure
10-9). Due to mechanical inaccuracy of switches, the reference switch is active within a range x
1
< x
ref
< x
2
, where x
1
and x
2
may vary. If the traveler is within the range x
1
< x
traveler
< x
2
before reference
search, it is necessary to go outside this range, because the associated reference switch is active. A
dummy write access to x_latched initializes the position latch register. Then, with the traveler within
the range x
2
< x
traveler
< x
max
and the initialized register x_latched, the position x
2
can simply be
determined by motion with a target position x_target set to –x
max
. When reaching the position x
2
, this
position is latched automatically. With stop switch enabled, the stepper motor automatically stops if the
position x
2
is reached. Then, the dx_ref_tolerance has to be set, so that motion within the active
reference switch range x
1
< x
ref
< x
2
is allowed and to move the traveler to a position x
traveler
< x
1
if
desired. Then the register x_latched has to be initialized again to latch the position x
1
by a motion to a
target position x
traveler
< x
1
. When the positions x
1
and x
2
are determined the reference position x
ref
=
(x
1
+ x
2
) / 2 can be set. Finally, one should move to the target position x_target = x
ref
and set x_target
:= 0 and x_actual := 0 when reached.