Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

DRV8889-Q1: DRV8889A-Q1

Part Number: DRV8889-Q1

Tool/software:

We need to detect faults in the process of using the motor driver chip DRV8889A-Q1, for example, we remove the motor, the open circuit fault is recognized, but once in the detection of faults, we connect the motor and then drive again, the fault can not be recovered, and you need to reset the software again after the detection of faults are not recognized.
We need to get specific fault recognition logic from TI, or related documents for our reference!

  • Hi Ye,

    Thank you for posting in this forum. Please refer to Table 7-10. Fault Condition Summary in the device datasheet, https://www.ti.com/lit/ds/symlink/drv8889-q1.pdf page-38, 39. This table describes each of the specific fault's effect and recovery from fault logic / procedure.

    All the Fault recognition features are described under the section 7.3.11 Protection Circuits in the datasheet. Thank you.

    Regards, Murugavel 

  • i have a test of open load, the process below:

    1 remove the motor and the 8889A can identify the OL fault

    2 sleep and wakeup to clear the fault flag

    3 run the Motor again, but the Motor haven't connected yet 

    4 the OL fault can't identify never

    5 repower the MCU

    6 it can identify the OL fault

  • and is it means , OL fault detect only once time after system reset, when i remove the motor after run normal, it can't detect the OL fault again?

  • Hi Ye,

    and is it means , OL fault detect only once time after system reset, when i remove the motor after run normal, it can't detect the OL fault again?

    OL can be detected continuously as long as the output is enabled. 

    1 remove the motor and the 8889A can identify the OL fault

    2 sleep and wakeup to clear the fault flag

    3 run the Motor again, but the Motor haven't connected yet 

    4 the OL fault can't identify never

    5 repower the MCU

    6 it can identify the OL fault

    I suspect when you repower the MCU you're having the required register configuration for OL detect but not having the same register settings between steps 2 and 3 in the sequence shown.

    After reconnecting the motor coil writing to the CLR_FLT bit in the CTRL4 register can reset the OL fault condition you won't have to sleep and wake up. When you perform a sleep and wakeup all register configuration will reset to default values and the stepper indexer will reset to home position of 45° electrical angle with coil A and B at 71 % of the IFS current setting with the VREF voltage. Please make sure you enabled the outputs by ensuring the DIS_OUT bit is 0b in the CTRL2 register. The default value for the DRV8889A-Q1 for this bit is 1b.  

    While doing CLR_FLT you must ensure the motor was not stopped in positions where one of the coil currents is 0 because this would show as a fault even if the motor is connected back.

     

    Thank you.

    Regards, Murugavel 

  • software will initial the register again after wakeup 

    and software can identify the OL fault when the Motor is not connect

    and can also identify the OL fault recover when the Motor connect

    but when i remove the motor again ,, it can never identify the OL fault

  • Hi Ye,

    I have an EVM with a DRV8889A-Q1 populated in it. I experimented with the settings you described.

    software will initial the register again after wakeup 

    and software can identify the OL fault when the Motor is not connect

    and can also identify the OL fault recover when the Motor connect

    I was able to get the same result you described. I tried multiple times OL and recover with no issues.

    but when i remove the motor again ,, it can never identify the OL fault

    I was unable to reproduce this issue. OL was identified consistently. What was the VREF voltage and TRQ_DAC setting under this condition? My assumption was, during this test no STEP pulses were input, STEP = 0 V. Thank you.

    Regards, Murugavel 

  • TRQ_DAC is  set by 25%

    2 every time OL detecting under STEP pulse happens

  • could you give me the time sequence of DRVOFF DIR STEP these three PINs control

  • Hi Ye,

    TRQ_DAC is  set by 25%

    What is the VREF voltage input during this setting?

    2 every time OL detecting under STEP pulse happens

    If I understood correctly OL was detected as expected with active STEP pulses. But not detected a second time while no STEP pulses, correct? 

    As long as both the coil currents are > IOL threshold stop conditions should work consistently.

    could you give me the time sequence of DRVOFF DIR STEP these three PINs control

    Please see below in the datasheet.

    The below diagram is not shown in the datasheet but matches the timing requirements table.

    The DRVOFF is for outputs enable and disable. Even while DRVOFF is 1 for disable the indexer will continue to index with step pulses. If DRVOFF is toggled while nSLEEP = 1 (awake) the response will be immediate. It will be a good idea to have a small delay ( ~ 1 us) included after DRVOFF = 0 executed by the MCU. However when nSLEEP = 0 to 1 and DRVOFF = 1 to 0 at the same time tWAKE ~ 1 ms wake up time must be considered.

    Thank you.

    Regards, Murugavel 

  • i mean , when i remove the motor under active mode with pulse, the OL fault can't be detected

    but it can be detected when motor have not connect  when i reset the MCU, 

    the vref = 0.4587V

    Overall. I am not able to detect an open circuit fault when I am in normal motion,, suddenly overflowing the motor, I don't know what is wrong or can you guide me to test some use cases, I will test as soon as possible!

  • Hi Ye,

    Thank you for the clarification. Now I understand the situation.

    the vref = 0.4587V

    With VREF = 0.4587 V and TRQ_DAC = 25 %, the IFS would be 0.052 A or 52 mA. This is a very low current lower than the IFS minimum value below which OL cannot be reliably detected due to SNR requirements for the OL comparator logic. 

    Identified cases, where OL is not detected while motor is stepping. This can be extrapolated for other I_FS settings. So if the I_FS is lower than these I_FS limits at these microstep settings, OL cannot be reliably detected. 
    – I_FS < 0.48A, 1/64 (no microsteps < 6 mA)
    – I_FS < 0.24A, 1/32 (no microsteps < 6 mA)
    – I_FS < 0.12A, 1/16 (no microsteps < 6 mA)

    The limitation is around 6 mA for Itrip current. With 52 mA IFS as in your application while using microsteps and stepping the motor, when the coil is disconnected at microsteps where Itrip is < 6 mA will not report OL. 

    Note:

    1. The DRV8889-Q1 is a 1.5 A IFS driver. An ~50 mA motor current is an extremely low IFS (full-scale) current and microstep currents would be even smaller. 

    2. Current regulation accuracy is also the lowest at this low IFS Itrip accuracy specifications - please see datasheet.

    3. Also for these very low currents stall detection may not be reliable as well.

    Regards, Murugavel 

  • I tried to set TRQ_DAC = 100 % and it does detect the OL properly, but it brings another problem: when the voltage of the input VM is low, e.g. 10.5V, the motor triggers the OL during normal motion, and the OL is triggered by the input VM, and the OL is triggered by the input VM, and the OL is triggered by the input VM.