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.

DRV8461: STALL detection function

Part Number: DRV8461

Dear, Motor drivers suport Team.

Our design team is testing the STALL detection function of the DRV8461SPWPR,
but it's not detecting STALLs as expected. 

Could you please tell us if our usage or understanding of the specifications is incorrect?
[Setting Conditions]
* DECAY register setting: 111b
* EN_STL register setting: 1b
* STL_REP register setting: 1b
* STALL_TH register setting: 0b
With the above register settings, no errors other than STALL errors have occurred when a motor is connected to the DRV8461SPWPR.

[Test Details]
While continuously inputting STEP to the DRV8461SPWPR and moving the motor, we performed a test assuming that STALL would be detected if the motor's stepper was forcibly stopped by manually pressing it.

[Test Results]
* No nFAULT is output (= STALL is not detected).
* When checking TRQ_COUNT while the motor is stopped manually, 1111b is consistently displayed.

The datasheet states that "STALL detection is not possible at low motor speeds." I suspect this might be the case, but are there any other reasons why STALL detection might not be working? 

Thanks & Best regards,
Hiroaki Yuyama
  • Hi Yuyama-san,

    Thanks for contacting us via this forum.

    Could you please tell us if our usage or understanding of the specifications is incorrect?
    [Setting Conditions]
    * DECAY register setting: 111b
    * EN_STL register setting: 1b
    * STL_REP register setting: 1b
    * STALL_TH register setting: 0b
    With the above register settings, no errors other than STALL errors have occurred when a motor is connected to the DRV8461SPWPR.

    All settings above are okay except for STALL_TH register setting. This should be around 40 to 50 % of the value of the observed TRQ_COUNT while the motor is running with steady state velocity. What was the observed TRQ_COUNT during this operation?

    [Test Details]
    While continuously inputting STEP to the DRV8461SPWPR and moving the motor, we performed a test assuming that STALL would be detected if the motor's stepper was forcibly stopped by manually pressing it.

    What was the steady state velocity PPS step rate, microstep setting, current setting and VM voltage for this test? Please share motor details, datasheet?

    [Test Results]
    * No nFAULT is output (= STALL is not detected).
    * When checking TRQ_COUNT while the motor is stopped manually, 1111b is consistently displayed.

    The TRQ_COUNT reading is valid only during steady state velocity of the motor. While the motor is stopped there will be no BEMF generated and the torque count does not indicate relevant information. See this application note for stall detection operation.  

    The datasheet states that "STALL detection is not possible at low motor speeds." I suspect this might be the case, but are there any other reasons why STALL detection might not be working?

    This is correct. At very low speeds the BEMF generated by the motor is very low and because of this the SNR for TRQ_COUNT calculation will be very low and produce unreliable counts. It will not be possible to detect stall under such low speeds. 

    Regards, Murugavel 

  • Hello Murugavel-san, 

    Thank you for your advice.

    We now understand why stall detection failed in our tests.
    These are our test conditions and motor specifications.

    [Motor 1]
    Condition 1
    Microstep setting: 1/16 microstep
    Pulse rate 1000PPS
    Current start 200mA
    VM voltage 12V

    Condition 2
    Microstep setting: 1/2 microstep
    Pulse rate: 1000PPS
    Current setting 200mA
    VM voltage 12 V


    [Motor 2]
    Condition 1 Microstep setting: 1/16 microstep
    Pulse rate
    1000PPS
    Current peak 400mA
    VM voltage
    12V

    Condition 2
    Microstep setting: 1/2 step
    Pulse rate: 1000PPS
    Current Maximum 400mA
    VM Voltage 12V

    I have attached the English datasheets for motors 1 and 2.
    motor 1.pdfmotor 2.pdf
    If you know of any methods for detecting stalls in our conditions, please let me know.

    Best regards,
    Hiroaki Yuyama

  • Hi Yuyama-san,

    Thanks for the motor datasheets. There are multiple motors in each datasheet. Which motors were used exactly?

    In the first datasheet only one motor out of the two bipolar options likely may work with stall detection. The second bipolar motor has high DC resistance DCR and high inductance L. For stall detection to work the ideal range for DCR is < 10 Ω and L is < 10 mH. 1000 PPS with 1/16 step mode is slow and may result in low BEMF. Stall performance may be marginal if it works, likely not reliable even with the 20 Ω stepper.

    1000 PPS 1/2 step mode may offer more TRQ_COUNT for stall detection.  

    In the second datasheet there are two motors shown. I'm assuming both are bipolar steppers. The DCR and L are in the good range. But 1000 PPS with 1/16 may result in low BEMF and marginal stall performance. I tested with a 1.2 Ω 2.3 mH stepper with the EVM, 12 V, 0.4 A coil current. At 1000 PPS 1/16 step mode the TRQ_COUNT was very low, 42. Setting the threshold to 20 I was able to detect stall with no issues. 

    At 1000 PPS 1/2 step mode because the motor ran faster TRQ_COUNT was around 220. Setting threshold to 110 detected the stall condition reliability with the test motor. 

    If you know of any methods for detecting stalls in our conditions, please let me know.

    See the section 7.3.19.5 Stall Detection in the DRV8461 datasheet. It provides the flow for stall detection setup. No other methods for stall detection with the DRV8461. Thank you.

    Regards, Murugavel 

  • Hello Murugavel-san, 
    Thank you for your technical advice.

    Thank you again for providing a motor with even closer characteristics and conducting stall detection tests.
    We will check the motors that our design team is testing.

    and,We will also check the stall detection settings.
    Best regards,
    Hiroaki Yuyama 
  • Hello Yuyama-san,

    Sure. I hope you can resolve stall detection by selecting suitable motor. Thank you.

    Regards, Murugavel 

  • Hello Murugavel-san, 

    Thank you for your help.

    The stall detection issue has been resolved.
    Although the causal relationship with stall detection is unclear, the problem was caused by setting the TTSSL_DLY register to 0.
    Changing the setting to 0x12 resolved the issue and enabled stall detection.

    I apologize for the trouble.

    Based on that, the model numbers used are as follows:
    Motor 1: 20DAMXXD2B-K
    Motor 2: SS2421-5041


    Thanks & Best regards,
    Hiroaki Yuyama
  • Hello Yuyama-san,

    The stall detection issue has been resolved.

    Thanks for the update. I'm glad the issue is resolved.

    Although the causal relationship with stall detection is unclear, the problem was caused by setting the TTSSL_DLY register to 0.
    Changing the setting to 0x12 resolved the issue and enabled stall detection.

    Did you means the TSTSL_DLY setting in CTRL13 control register? This value must not be set to 0b, correct. 

    I apologize for the trouble.

    Based on that, the model numbers used are as follows:
    Motor 1: 20DAMXXD2B-K
    Motor 2: SS2421-5041

    Sounds good. No worries. Happy to help. Please mark this post as RESOLVED. Thank you. 

    Regards, Murugavel