This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRV8889-Q1: Enquiry about Stall learning algorithm

Part Number: DRV8889-Q1


Tool/software:

Hi all,

I am trying to use the stall algorithm using the DRV8889-Q1 part. I drove the motor to a hard stop and waited for the STL_LRN_OK bit to change from 0 to 1, but that never happens. I followed the steps described below but it doesn't seem to work. Are there test conditions that I need to consider to allow training to be done properly or additional register settings that I need to make? Thanks.

Ed

The instructions are from this site.  

Here is what I think to run stall learning process:

1. run the step motor to target speed and make the output current still keeps the sinusoidal waveform

2. make sure the decay mode is the ripple control decay mode

3. enable stall learning: set STL_LRN =1

4. Stall or block the motor

5. check STL_LRN_OK bit status to make sure learning success.

6. check the STALL_TH register to make sue the STALL_TH is not too low.

  • Hi Ed,

    Thanks for posting your question in this forum.

    I am trying to use the stall algorithm using the DRV8889-Q1 part. I drove the motor to a hard stop and waited for the STL_LRN_OK bit to change from 0 to 1, but that never happens. I followed the steps described below but it doesn't seem to work. Are there test conditions that I need to consider to allow training to be done properly or additional register settings that I need to make?

    The procedure you followed was correct. There could be other reasons why the learning process was not successful. For successful learn the torque count in CTRL7 register must be a value around 40 to 150 while the motor is running at steady state velocity and < 20 while the motor is stalled. The theory of stall detection in this device is published in this application note

    1. The STEP rate PPS was too low resulting in low stepper speed and low BEMF to the level the device was unable to detect stall. What was the STEP PPS used and the microstepping mode used?
    2. The microstepping mode used was not suitable for the motor and its operating conditions. In general 1/8 or 1/16 Step modes are sweet spots for best stall detection performance.
    3. The DC resistance DCR of the stepper motor was higher than 10 Ω. Higher DCR motors tend to have very low torque count while the motor is running under normal conditions. Too high coil inductance may also limit stall detection performance. Please share the stepper motor part #, datasheet or L-R specifications. 
    4. There was STEP to STEP period variation. The DRV8889-Q1 will block stall detection if the STEP to STEP period variation is > 2 %. This built-in feature avoids false stall detection during acceleration or deceleration of the stepper. Common reason for this issue is the STEP pulses were not generated with deterministic period. Good sources would be from a Timer PWM output of a microcontroller or high-low pulses timed with defined periodic interrupts in the controller. To eliminate this issue, a good test would be to feed in STEP pulses from a function generator with fixed frequency square wave output. 
    5. The coil current was set too high or too low for the motor vs. its coil current specifications and / or VM voltage was below 10 V. What was the VM voltage used, VREF voltage input and the TRQ_DAC CTRL1 settings.
    6. The supply voltage VM is not sufficient to overcome VBEMF (back EMF voltage) at the target velocity and because of this the ITRIP current was never reached. This may happen at too fast step rate PPS. A good way to check if this was not the reason would be to capture coil current waveforms with a current probe while the motor is running normally at steady state target velocity. Please share the current waveform captures for further analysis. 

    Thank you.

    Regards, Murugavel