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

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: No output on on coils' terminals

Part Number: DRV8889-Q1

Hello there,

I am working on a project where we use DRV-8889A-Q1 to drive a unipolar 6 wires stepper motor RS pro 1805279,

I have connected the main coils terminals of the motor to the motor driver,

DRVOFF = 0v

nSleep = 3.3V

VCP = 12V

Vm = 12V

PGND = 0V

DVDD = 0V

VREF = 1.6V

SSI clk frequency = 400Khz 

1) in the code I do enable the device with the logic of nSleep and DRVOFF

2) I configure the microstepping to 1/256 microstep

3) I enable stall detection 

4) then I set DIR pin logic high 

5) enable PWM signal to "STEP" pin with frequency 166Hz (calculated from the equation in the datasheet given motor speed = 50RPM)

6) enable stall learning bit in CTRL5 Reg bit 5

7) then I read it again until its equal to zero which means learning is done 

8) Stop PWM signal.

9) and check on STL_LRN_OK bit

the problem is the motor does not move at all, I have even tried to enable its outputs with the nSleep and DRVOFF pin and input a pwm signal to the step pin depending on the default values in the registers without any SPI commands but also there is no output at all, what am I missing.

attached the pin connections

  • Ahmed,

    Thank you for providing voltages above on all the pins.  This is extremely helpful for the debug process.  

    Two things concern me based on the above.

    1) DVDD should not be 0V.  This is the core logic supply and an internal regulator.  It should be 5V.

    2) VCP should not be equal to VM.  This is a charge pump and voltage should be VM + 5V (typically).

    So, the device is not happy.  I am not sure why.  Have you tried multiple devices?  nSLEEP is definitely greater than 1.5V (this is a logic high on this pin)? 

    Do you have a pull-up resistor on nFAULT somewhere else on the schematic?  This is an open drain output.  If you have a pull-up and nFAULT is reading low and DVDD is 5V, you should be able to read back the fault in the status registers and that would help to debug as well.

    Regards,

    Ryan

  • Hello Ryan Thank you for the fast reply, regarding the nSleep pin yes the voltage 3.3 is logic high from the microcontroller pin on it.

    The nFault pin is pulled to 3.3V with a 10Kohms.

    I forgot to mention that when I communicate with the device using SPI and I get the status flags as the most significant byte this flags are not consistent, as I understand this flags show the general problems so they must be consistent reading all the registers if the problem is still there, this does not happen, the flags indeed fluctuate and change their values except for bit 15 and bit 14 they are always SET.

    so do you think that this is due to DVDD pin being connected to GND ?

    and the problem that the Motor is not moving is due to the voltage of VCP being equal to VM ? 

  • Ahmed,

    Logic will not function with DVDD = 0V.  It needs to be 5V.  High-side MOSFETs will not switch if charge pump is not working properly.  The high-side MOSFET is a NMOS and gate needs to be pulled above supply, VM, in order to work. 

    Please try to determine why DVDD = 0V as first debug step.

    Regards,

    Ryan

  • Ryan, I do think that we have followed this schematic from the datasheet of the driver but the symbols were misleading.

    anyway I'll try your fix and will mark this thread as resolved if everything is Ok.

    thank you.

  • Ahmed,

    I actually don't see an issue with the schematic.  Just wondering if somehow DVDD is shorted to GND on board unintentionally.

    Regards,

    Ryan 

  • Thank you for the support Ryan, it was the DIS_OUT bit in CTRL2 register which has a default value ‘1’ blocking outputs in DRV8889A unlike DRV8889 which has this bit equal to ‘0’