Datasheet
TMC2209 DATASHEET (Rev. 1.03 / 2019-JUN-26) 59
www.trinamic.com
12.3 Tuning CoolStep
CoolStep uses SG_RESULT to operate the motor near the optimum load angle of +90°. The basic
setting to be tuned is SEMIN. Set SEMIN to a value which safely activates CoolStep current increment
before the motor stalls. In case SGTHRS has been tuned before, a lower starting value is
SEMIN = 1+SGTHRS/16.
The current increment speed is specified in SEUP, and the current decrement speed is specified in
SEDN. They can be tuned separately because they are triggered by different events that may need
different responses. The encodings for these parameters allow the coil currents to be increased much
more quickly than decreased, because crossing the lower threshold is a more serious event that may
require a faster response. If the response is too slow, the motor may stall. In contrast, a slow
response to crossing the upper threshold does not risk anything more serious than missing an
opportunity to save power.
CoolStep operates between limits controlled by the current scale parameter IRUN and the seimin bit.
Attention
When CoolStep increases motor current, spurious detection of motor stall may occur. For best results,
disable CoolStep during StallGuard based homing.
In case StallGuard is desired in combination with CoolStep, try increasing coolStep lower threshold
SEMIN as required.
12.3.1 Response Time
For fast response to increasing motor load, use a high current increment step SEUP. If the motor load
changes slowly, a lower current increment step can be used to avoid motor oscillations.
Hint
The most common and most beneficial use is to adapt CoolStep for operation at the typical system
target operation velocity and to set the velocity thresholds according. As acceleration and
decelerations normally shall be quick, they will require the full motor current, while they have only a
small contribution to overall power consumption due to their short duration.
12.3.2 Low Velocity and Standby Operation
Because CoolStep is not able to measure the motor load in standstill and at very low RPM, a lower
velocity threshold is provided for enabling CoolStep. It should be set to an application specific default
value. Below this threshold the normal current setting via IRUN respectively IHOLD is valid.