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?