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: Some questions about stall detection and self-learning

Part Number: DRV8889-Q1

Hi all,

Regarding the stall detection, we consider that the timing is as follows, to help confirm whether it is correct:

The core stall principle (Hope to correct by you experts): 7.3.11.5 Stall Detection Chapter, (we think there is a relationship between the winding current of the stepper motor, the back electromotive force and the mechanical torque load of the motor)


It mainly depends on the phase of back electromotive force and winding current. The algorithm is TRQ_COUNT (CTRL8 Register) <stall threshold (CTRL6 Register)——Is this understanding right?

Therefore, there are 2 ways to get the stall threshold:
The first is to directly set the stall threshold; 
The second is to obtain the stall threshold through self-learning.

The following is our understanding of self-learning timing, I don't know if it is correct:
1. Confirm that there is no STL_LRN_OK via SPI
DIAG Status 2 Register confirm STL_LRN_OK = false

2. Set up the TI chip for learning through SPI
CTRL5 Control Register set STL_LRN = true, EN_STL = true, STL_REP = false (do not want to feedback to nFAULT), because DRV8889-Q1 is used, the last two digits are reserved.

3. External attempt to stall
After some time (from Page8: tOL, DRV8889-Q1, EN_OL = 1b 200, it should be 200ms) CTRL6 Control Register should have count.
Question 1: Is the understanding of 200ms correct?
Question 2: How to do the stall?

4. Finished learning
DIAG Status 2 Register confirm STL_LRN_OK = true


5. The feedback value can be read through SPI at regular intervals in the future
FAULT Status Register, STL = true means a stall has occurred
Question 3: There is also a STALL in the DIAG Status 2 Register, whether this can also judge the stall detection?

  • Jerry,

    Yes. DRV8889 reports a stall condition when TRQ_COUNT (CTRL8 Register) <stall threshold (CTRL6 Register).

    Question 1: Is the understanding of 200ms correct?

    [WL] OL stands for open load, tOL is not related to the stall detection. Please  check https://www.ti.com/lit/an/slvaei3/slvaei3.pdf  

    Question 2: How to do the stall?

    [WL] Your understanding of self-learning sequence looks OK. In "3. External attempt to stall", we should wait for the motor running to the target speed, and then attempt to stall. Not 200ms.

    Question 3: There is also a STALL in the DIAG Status 2 Register, whether this can also judge the stall detection?

    [WL] Yes. Status 2 Register "STALL" bit can indicate the motor stall condition.

    Regards,

    Wang