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: DRV8889-Q1

Part Number: DRV8889-Q1

Hi Team,

We running one stepper motor in normal condition it is working fine, the NFAULT pin is pulled-up.

later we are following the below steps.

1. We are introducing the error manually by making it Open Load.

2. able to detect the OL - reading the status register values as SReg0=0x81, sreg1=0x00, SReg2=0x03.

3. Manually removing the open load error.

4. also clearing the fault with CLR_FLT bit in CR4, still we are reading the register values as --- SReg0=0x81, sreg1=0x00, SReg2=0x03.

Could you please confirm why the registers reading the fault even after clearing the CLR_FLT bit.

Thanks and Regards,

Lakshmi Teja

  • Hello,

    Looks like you started a new thread on this.  

    For step 3, you are reconnecting the motor?  Are you able to drive the motor normally?  Trying to determine if this open fault is real or not.  

    How many ICs have you tried?  Can you post schematic?

    Regards,

    Ryan

  • Hi Ryan,

    Sorry, We cannot share the complete schematic-but I can share the driver related, please find below.

    1. Initially we are running the motor under normal condition, motor is running with out any fault.

    2. then we are creating fault by making it open load as per the attached-by opening the switch-1.

    in this case we are getting fault.

    3. We are closing the sw-1 (connecting the motor to ECU again), clearing the fault manually, also clearing the status register (SReg0=0x81, sreg1=0x00, SReg2=0x03) by CLR_FLT bit.

    We also tried clearing the error with nSleep by making it low for 3millisec.

    still we are getting the same error as above.

    What may be the reason of getting error (SReg0=0x81, sreg1=0x00, SReg2=0x03) even after clearing the fault.

    4. the NFAULT pin is pulled-up, during normal operation of stepper motor-NFAULT pin is High, once the fault is introduced it is going to LOW, but after clearing the fault also NFAULT is still in logic Low, not going high- what may be the reason could you please clarify? 

    5. from table 7-10, I understood- once OL is detected there is no recovery mechanism correct me if I am wrong.

    the recovery will happen only with power cycle?  OR  do we have any other recovery mechanism for this?

    Thanks and Regards,

    Lakshmi Teja.

      

  • Lakshmi,

    After you reconnect the motor, can you try driving the motor normally like in step 1?  Then clear the fault while driving.  I suspect motor current is <30mA when you are trying to clear fault and it is triggering again.   If you try driving, motor current should be non-zero and fault should clear.

    Regards,

    Ryan

  • Hi Ryan, 

    After you reconnect the motor, can you try driving the motor normally like in step 1?  Then clear the fault while driving.----we are following the same procedure.

    1. Running the motor under Normal operation-we are able to drive the motor.

    2. created the open load for Aout2.

        observed open load is detected through status register read-SReg0=0x81, sreg1=0x00, SReg2=0x03.

    3. we connected back the open wire to normal, clearing the fault by writing the Control register 4 value= 0xB9 (in this CLR_FLT bit is set) through SPI.

    4. Trying to drive the motor, even though we can see the status register data as SReg0=0x81, sreg1=0x00, SReg2=0x03.

    5. We are shorting to ground- connecting the Aout2 to ground to test the overcurrent, but still open load is detecting and getting the status register as - SReg0=0x81, sreg1=0x00, SReg2=0x03.  could you please tell why we are getting open load fault in this.

    Also, could you please clarify 

    5. the NFAULT pin is pulled-up, during normal operation of stepper motor-NFAULT pin is High, once the fault is introduced it is going to LOW, but after clearing the fault also NFAULT is still in logic Low, not going high- what may be the reason. 

    6. from table 7-10, I understood- once OL is detected there is no recovery mechanism correct me if I am wrong.

    the recovery will happen only with power cycle?  OR  do we have any other recovery mechanism for this?

    Thanks and Regards,

    Lakshmi Teja

  • Hi Ryan, 

    After you reconnect the motor, can you try driving the motor normally like in step 1?  Then clear the fault while driving.----we are following the same procedure.

    1. Running the motor under Normal operation-we are able to drive the motor.

    2. created the open load for Aout2.

        observed open load is detected through status register read-SReg0=0x81, sreg1=0x00, SReg2=0x03.

    3. we connected back the open wire to normal, clearing the fault by writing the Control register 4 value= 0xB9 (in this CLR_FLT bit is set) through SPI.

    4. Trying to drive the motor, even though we can see the status register data as SReg0=0x81, sreg1=0x00, SReg2=0x03.

    5. We are shorting to ground- connecting the Aout2 to ground to test the overcurrent, but still open load is detecting and getting the status register as - SReg0=0x81, sreg1=0x00, SReg2=0x03.  

    Also, could you please clarify 

    5. the NFAULT pin is pulled-up, during normal operation of stepper motor-NFAULT pin is High, once the fault is introduced it is going to LOW, but after clearing the fault also NFAULT is still in logic Low, not going high- what may be the reason. 

    6. from table 7-10, I understood- once OL is detected there is no recovery mechanism correct me if I am wrong.

    the recovery will happen only with power cycle?  OR  do we have any other recovery mechanism for this?

    Please clarify the above as soon as possible.

    Thanks and Regards,

    Lakshmi Teja

  • Lakshmi,

    For #6, I don't understand what you mean by "no recovery mechanism".  The CLR_FLT command should absolutely clear the OL fault.  Something is either wrong with the IC itself or your SPI communication. 

    When shorting output to GND, the OCP fault should occur, but you keep reading exactly the same fault condition which doesn't make sense to me.

    Are you positive the SPI communication is working properly? 

    Regards,

    Ryan  

  • Hi Ryan,

    In table 7-10 under recovery column i can see- Report Only (what is this meant by).

    When shorting output to GND, the OCP fault should occur, but you keep reading exactly the same fault condition which doesn't make sense to me.- while shorting to Ground we are getting Status register0 as- 0x81 & Status register2 as- 0x03  (which is detecting open load).

    Are you positive the SPI communication is working properly? -YES

    Regards,

    Lakshmi Teja

  • Lakshmi,

    Report Only means the device simply flags the fault, but will keep operating like normal.  That means the motor will still spin if connected and device will keep on operating as if the fault didn't happen.

    Have you tried more than one device?  No matter what you do, you get the same fault reporting which is suspicious.  A short on the output while driving the motor should flag an OCP.

    Regards,

    Ryan

  • Lakshmi,

    Is there any update on this?

    Regards,

    Ryan

  • Hi Ryan,

    Thank you for the above.

    we are running the motor under normal operating conditions- not getting any fault.

    But, while shorting to Ground we are getting Status register0 as- 0x81 & Status register2 as- 0x03  (other than OCP, it is also detecting open load).

    As you mentioned above Report Only means the device simply flags the fault, but will keep operating like normal - but if we want to clear the fault (which should not indicate the fault)- How to clear?

    Regards,

    Lakshmi Teja

     

  • Lakshmi,

    The CLR_FLT command should absolutely clear the OL fault.  Are you getting OCP faults in Status Register 1?  

    Regards,

    Ryan

  • 26July2022_PowerOn_RefAll_OLError_ErrClear.csvHi Ryan,

    The CLR_FLT command should absolutely clear the OL fault.  Are you getting OCP faults in Status Register 1? -  we are unable to detect the OCP(status register1 data is - 0x00).

    Also,

    If the open load is detected we able to get the open load status from status register with the highlighted bits as below.

     

    Once the status register indicates the open load, we resolve the issue manually and written the “CLR_FLT” bit by setting as “1” to the control register 4.

    After clearing the fault also still we can see the open load is indicating in the status registers.

    1. How do we recovery from the open load ?
    2. How can we clear this status register bit values? Do these bits will get clear only by doing power cycle?

    I will share the captured SPI communication ( data and the image-captured with logic analyzer)--- SReg0, SReg1, SReg2 respectively.

    Below are the steps done to capture the data:

    1. Power ON the ECU
    2. After few second we move the motor under normal operating conditions.
    3. Created the open load error by disconnecting the one of the wires (Aout2) which goes to LWR stepper.
    4. After few seconds (5-10sec), connected back the wires.(Resolving the open load error)
    5. then we tried to clear the fault by using one tool.
    6. After few seconds we stop the capture.

    Regards,

    Lakshmi Teja

  • Lakshmi,

    Are you able to provide me scope captures of current in the coil BEFORE removing the wires and coil current AFTER you reconnect and issue CLR_FLT command?  Are you continuing to issue STEP inputs and attempting to move the motor while issuing CLR_FLT commands?

    If the coil in the current remains <30mA for 200ms of time, an open load fault can still re-occur.  If you can also put nFAULT on the same scope capture, you can see if the nFAULT is going LOW to indicate a fault.  nFAULT should transition back HIGH after issuing a CLR_FLT command.

    Regards,

    Ryan

  • Hi Ryan,

    We don't have any hardware setup to capture the current in the coil.

    Are you continuing to issue STEP inputs and attempting to move the motor while issuing CLR_FLT commands?--We are not issuing the STEP inputs.

    Regards,

    Lakshmi Teja

  • Lakshmi,

    I think we just discovered the problem.  If you are not issuing steps and current in coil remains <30mA, the open load fault will continue to occur.  

    Regards,

    Ryan

  • Hi Ryan, 

    Thank you for the above.

    Could you please tell- steps to be provided while issuing the CLR_FLT commands / before issuing the CLR_FLT / after issuing the CLR_FLT?  (is this can be done by  STEP bit in control register 3?)

    Please explain.

    Also, I have another query...

    We are performing the test on the stepper by shorting the coils which should detect the fault.

    Please find the below table of our observation:

    DRV-8889 Observation
    A1 A2 Fault detected only if we try to move motor either by Sliding the Motor Bar  or by Ref All through CANoe.
    A1 B1 Fault detected immediately
    A1 B2 Fault detected immediately
    B1 B2 Fault detected only if we try to move motor either by Sliding the Motor Bar  or by Ref All through CANoe.
    B1 A2 Fault detected immediately
    B2 A2 Fault detected immediately

    when we are shorting the coils (A1 &  A2 or B1 & B2), we are not able to detect the fault,  we able to detect the fault only when we are trying to move the motor through CANoe.

    Remaining all scenarios fault is detected at the time of creating the short between (A1 & B2, A1 & B1, B1 & A2, B2 & A2).

    What could be the reason for not detecting the fault while shorting the coil (A1 &  A2 or B1 & B2)?

    Regards,

    Lakshmi Teja

  • Hi,

    Thank you for your question. Ryan is OoO and back later of this week. Let me review your question and feedback to you.

    regards

    Shinya Morita

  • Hi Shinya, 

    Thank you, will you please review and help us in your earlier convenience.

    Regards,

    Lakshmi Teja

  • Lakshmi,

    "Steps" can be issued by physically pulsing the hardware pin, STEP, or thru SPI as you mention.

    You will have to check the state of the outputs.  A fault will ONLY be detected on an output-to-output short IF one output is "HIGH" and the other output is "LOW".  If both are HIGH or both are LOW, no fault because no current will flow.

    Regards,

    Ryan

  • Hi Ryan, 

    To get the state of the outputs (High/Low) we performed the below test and observed few values as below, could you please tell if it is correct or not.

    How to consider the state from those values.

    1.GND - A1 - 0.80V (Idle State)

    2.GND - A2 - 0.06V (Idle State)

    3.GND - B1 - 0.00V (Idle State)

    4.GND - B2 - 0.48V (Idle State)

    we connected one line of multimeter to GND and another to Motor Coil Pin (A1/A2/B1/B2) then we measured the voltage through the multi meter.

    The above values are during Idle state, when we run the motor, every time these values are getting interchanged.

    Please also confirm if this procedure is correct or not.

  • Lakshmi,

    This is fine.  So, logic would tell you that in this state, only a short to supply would be detected for OCP.  The outputs will toggle between high/low as current is being regulated in the coils.  You can see this better on a scope capture.  

    Regards,

    Ryan