Stepper motor drivers such as the DRV8434S, DRV8434A, and DRV8889-Q1 include a stall detection feature to detect an overload or stall condition while the motor is stepping. When the motor is stepping, a back emf is generated in its phase windings due to the magnetic field of the rotor magnets. The phase difference between the back emf and the driven current waveform is proportional to the reserve torque of the stepper motor. Hence for an unloaded stepper motor the back emf phase difference is maximum and it approaches zero when there’s no reserve torque, in other words when the stepper is fully loaded and is stalling.
When the stall detection is enabled, the device calculates a TORQUE COUNT value as a moving average value of the most recent four electrical half-cycles of a spinning motor. The TORQUE COUNT value is proportional to the back emf phase difference described in the previous paragraph. Subsequently during every electrical half-cycle zero crossings of the phase current, a new TORQUE COUNT value is updated and compared with a programmed STALL THRESHOLD value to determine a stall condition.
A STALL THRESHOLD value is programmed to the stall detection block of the driver using one of the two methods described in the device’s datasheet. The first method uses an automatic stall learning procedure. The second method uses manual input of a user defined STALL THRESHOLD value. When DRVOFF = 0 or EN_STL = 0, a maximum TORQUE COUNT value will be reported.
Common issues that may result in unreliable stall detection
- Stall Detection function requires Smart Tune Ripple Control decay mode. This is the default decay mode of the devices with Stall Detection feature.
- In order for the stall detection to work properly not only the STALL THRESHOLD value must be defined correctly but also the back emf amplitude should satisfy the SNR required by the stall detector to compute the TORQUE COUNT The higher the phase winding resistance of the stepper motor, the lower the amplitude of the back emf. Hence stepper motors with high winding resistance of the order of several 10’s of ohms may not work well with the stall detector.
- Small form factor and/or low torque stepper motors likely have weak permanent magnets and may not provide enough SNR with the back emf generated and may not work well with the stall detector.
- At very low step rates the back emf amplitude may not be high enough to be in the detectable range of the stall detector. Stall detection may not work well at low step rates. The lowest step rate usable for stall detection can be determined by evaluating different motors at various VM and current settings using a device specific TI EVM.
- Previously learned STALL THRESHOLD values at one speed may NOT be suitable to detect stall at another speed. A new learning procedure must be done every time stepper speed is changed.
- Similarly, manually input STALL THRESHOLD value at one speed may not be suitable to detect stall at another speed. A new STALL THRESHOLD value must be input every time stepper speed is changed.
- Stall detection using STALL THRESHOLD learning may not be reliable during acceleration phase if implemented in an application. In such scenario an appropriate STALL THRESHOLD value must be manually set.
- TORQUE COUNT computation for stall detection relies on observing finite TOFF duration during every current regulation chopper cycle. If the motor drive supply voltage VM is not sufficient to push enough current through the phase winding inductance to sustain regulation at a given stepping rate, not only the current regulation will be lost but also the stall detection will not work. A sudden jump in the TORQUE COUNT value to an unusually higher value while the stepping speed is increased suggests both loss of current regulation and loss of stall detection capability at that speed. The motor may or may not stall when current regulation is lost depending on the inertia and the acceleration profile of the system.