I recently did a video on Trinamic's Eval kit for the TMC2208 ultra-silent motor driver IC for two phase stepper motors. The IC is also compatible to a number of legacy drivers as well. The kit comes with three parts: STARTRAMPE (base board), TMC2208- BRIDGE (connector board with several test points and stand-alone settings), and TMC22xx-EVAL.
stealthChop2: No-noise, high-precision chopper algorithm for inaudible motion and inaudible standstill of the motor. Allows faster motor acceleration and deceleration than stealthChop™ and extends stealthChop to low stand still motor currents.
spreadCycle: High-precision cycle-by-cycle current control algorithm for highest dynamic movements.
microPlyer: Microstep interpolator for obtaining full 256 microstep smoothness with lower resolution step inputs starting from fullstep
In addition to the above they also have safeguards for shorted outputs, output open-circuit, overtemperature, and undervoltage.
The link to the datasheet on our site below will have more in depth explanation and example for you to look at.
Moving and Controlling the Motor
(STEP/DIR Interface) The motor is moved by a step and direction input. Active edges on the step input can be rising edges or both rising and falling edges as controlled by a special mode bit (DEDGE). Using both edges cuts the toggle rate of the STEP signal in half, which is useful for communication over slow interfaces such as optically isolated interfaces. The state sampled from the DIR input upon an active STEP edge determines whether to step forward or back. Each step can be a fullstep or a microstep, in which there are 2, 4, 8, 16, 32, 64, 128, or 256 microsteps per fullstep. A step impulse with a low state on DIR increases the microstep counter and a high decreases the counter by an amount controlled by the microstep resolution. An internal table translates the counter value into the sine and cosine values which control the motor current for microstepping.
(Internal Step Pulse Generator) Some applications do not require a precisely co-ordinate motion – the motor just is required to move for a certain time and at a certain velocity. The TMC2208 comes with an internal pulse generator for these applications: Just provide the velocity via UART interface to move the motor. The velocity sign automatically controls the direction of the motion. However, the pulse generator does not integrate a ramping function. Motion at higher velocities will require ramping up and ramping down the velocity value via software. STEP/DIR mode and internal pulse generator mode can be mixed in an application!
(stealthChop2 & spreadCycle Driver) stealthChop is a voltage chopper based principle. It especially guarantees that the motor is absolutely quiet in standstill and in slow motion, except for noise generated by ball bearings. Unlike other voltage mode choppers, stealthChop2 does not require any configuration. It automatically learns the best settings during the first motion after power up and further optimizes the settings in subsequent motions. An initial homing sequence is sufficient for learning. Optionally, initial learning parameters can be stored to OTP. stealthChop2 allows high motor dynamics, by reacting at once to a change of motor velocity. For highest velocity applications, spreadCycle is an option to stealthChop2. It can be enabled via input pin (TMC222x) or via UART and OTP. stealthChop2 and spreadCycle may even be used in a combined configuration for the best of both worlds: stealthChop2 for no-noise stand still, silent and smooth performance, spreadCycle at higher velocity for high dynamics and highest peak velocity at low vibration. spreadCycle is an advanced cycle-by-cycle chopper mode. It offers smooth operation and good resonance dampening over a wide range of speed and load. The spreadCycle chopper scheme automatically integrates and tunes fast decay cycles to guarantee smooth zero crossing performance.
There are many other ways to run the motor from CLK input, Automatic Standstill Power Down, and an Index output. There is also example circuits and example code for the device in the datasheet on our site. Here is a link to the software from the manufacturer site https://www.trinamic.com/support/eval-kits/details/landungsbrucke/#downloads-4
Internal Sense Resistors
The Eval Kit gives you the option to eliminate external sense resistors. In this mode the external sense resistors become omitted (shorted) and the internal on-resistance of the power MOSFETs is used for current measurement (see chapter 3.2). As MOSFETs are both, temperature dependent and subject to production stray, a tiny external resistor connected from +5VOUT to VREF provides a precise absolute current reference. This resistor converts the 5V voltage into a reference current. Be sure to directly attach BRA and BRB pins to GND in this mode near the IC package. The mode is enabled by setting internal_Rsense in GCONF (OTP option). In addition to that you can also use external sense resistors the link to the datasheet above gives you the value of the sense resistor you can use, and the corresponding RMS current values and the fitting motor type.
From this point, all you need to do is order the part and start playing! Here is a link to the part on our site. 1460-1213-ND