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.

Stepper Motor Driver DRV8835 Voltage Problem

Other Parts Discussed in Thread: DRV8835, DRV8846, DRV8835EVM, DRV8848, DRV8846EVM, DRV8848EVM

I am using a stepper motor DRV8835. I have put in the function as the IN/IN mode (MODE =0), For AIN1, AIN2,  BIN1 and BIN2 we gave signal as 0101 and the output voltage I was expecting as 0V, 5V, 0V, 5V. But the output voltage showed up as 5V, 0V, 2V, 2V. Does anyone know how to fix this problem?

  • We are using DRV8835DSSR stepper motor driver

    With MODE 0 IN/IN mode we have tested the driver with several AIN1, AIN2, BIN1, BIN2 inputs

    with 1010 input, the voltages are 5V, 0V, 0V,0V

    with 0101 input, the voltages are 5V, 0V, 2V, 2V

    1100-0020V

    0011-0000V

    1001-0522V

    0110-0000V

    0000-2222V

    1111-0500V

    Could you let me know where is problem?

  • Hi John,

    Was the motor connected when you made these measurements? If so, would you disconnect the motor and double check the measurements.

    Have you tried more than one board?
    What are your motor specifications (voltage, current, phase resistance)?
  • Rick,

    Before connecting the motor I was testing the voltages with static inputs. For example for AIN1, AIN2, BIN1, BIN2 =1010 inputs I should get 5V, 0V, 5V, 0V at the outputs. But the outputs are 5V, 0V, 0V,0V. The other inputs also I tested as mentioned previously.
  • Hi John,

    The behavior has not been reported previously.
    Are you using your own board? Do you have a second board to try? If you see the same issue, please check the layout.
    Have you examined the board to look for pin to pin shorts on the board?
    How are you measuring the outputs (scope or DMM)?
  • Hi Rick,

    Yes we are using a custom PCB. There is no short. Measured voltage using DMM. We will assemble another board. 

    Also could you let me know if DRV 8835 is the best board for stepper motor control? Our motor is 3-5V. We need very low sleep current.Current rating is ~1A. Small number of pins is better.

    John

  • Hi John,

    The DRV8835 is a good choice.
    Another good choice is the DRV8846, although the size is larger.

    What is your system voltage? Did you create a supply solely for the motor? If you did, the DRV8846 may save board space since it regulates the current and can operate at higher voltages. You can operate the DRV8846 from 4V to 18V.

    Let us know what you find on the second board.
  • Thanks Rick. DRV 8835 is good. Our voltage is 5V. Current regulation is not a concern at this time.
  • Hi Rick

    I ordered another PCB to try. Could you let me know what is the series of codes we need to send to Ain1:Ain2:Bin1:Bin2 to run a 4-wire stepper motor?

    John

  • Hi John,

    Before I answer your question, have you considered using PH/EN mode instead of IN/IN mode? This can save at least one GPIO, and perhaps two if you tie VCC to the two ENABLE pins.
  • Hi Rick,
    If Ph/EN is a better option, we will use that. Is it like Direction/Step? Does this have Sleep and Enable for power saving? (Phase and Enable is confusing for me).
  • Hi John,

    Think of PHASE as current direction. Enable is output on/off. It is the simpler of the two interfaces, although it does not have coast mode (both outputs disabled).

    To drive the motor with PHASE/ENABLE, first set the two ENABLE pins high:

    For forward direction, begin at step 1 and increase to step 2. After step 4, repeat steps 1 through 4.
    For reverse direction, reverse the order. begin at step 1 then decrease by going to step 4, 3, 2, 1.

    STEP PHASEA PHASEB
    1 0 0
    2 1 0
    3 1 1
    4 0 1

    Each step above will move the motor one full step.
  • Hi Rick

    If you know of any application note to use this DRV8835 as stepper motor driver please let me know

    John

  • Hi John,

    I am not aware of an application note. There is a DRV8835EVM available through the TI store to allow experimentation.
  • Hi Rick

    Thanks for the EVM link. We are waiting for another board. If that did not work, we will get the eval board.

    John
  • Hi Rick,

    Thanks for the details for the stepper motor. This is helpful.
  • Set the ENABLE pins high. I tested the four steps for forward and reverse direction but the stepper motor does not move. The 4 outputs for reverse direction is attached.

    The steps from polulu website is different. Could you clarify how to get the stepper working?

    Simplified drive/brake operation with MODE=1 (PHASE/ENABLE)
    xPHASExENABLExOUT1xOUT2operating mode
    0 PWM PWM L forward/brake at speed PWM %
    1 PWM L PWM reverse/brake at speed PWM %
    X 0 L L brake low (outputs shorted to ground)

    www.pololu.com/.../2135

  • Hi John,

    The procedure provided should work.

    What speed are you changing the inputs? It is possible it could be too fast for the motor to follow.

    Can you provide the motor specifications?
  • Hi Rick,

    The procedure worked well. The speed range is acceptable.

    Now that we have made it work, there are currents issues came by. By giving Mode=1 and ENA =ENB=0, the current is reduced to 85uA. The data sheet 

    IVMQ (VM sleep mode supply current) VM = 5 V, VCC = 0 V, all inputs 0 V is 95nA

    Does this mean that we need to disconnect the power supply to the chip DRV8835 in order to achieve 95nA current? 

    Thanks

    John

  • Hi John

    Yes, that is correct. To achieve the lowest possible current, you should set the VCC voltage to 0V, probably by disconnecting the VCC. Another option could be using a LDO with an enable.

    If you decide to disconnect the VCC, the NextFET femtoFETs would be a good choice as the VCC current requirements are very small.
  • Hi Rick

    Earlier you suggested DRV8846 as an alternative. It has nSleep pin (current=3uA). Will this solve the problem? What is the pin spacing for this QFN package 4mmx4mm?

    Also I notice DRV8848 is only 16 pin. But the programming is IN/IN controls. Could you let me know the procedure for stepper motor programming?
  • Hi John,

    What is the voltage on the MODE pin when Mode=1 and ENA =ENB=0? The internal pulldown may account for a large portion of the 85uA. Is it possible to set the MODE pin to 0V and re-measure the current?

    The DRV8846 and DRV8848 could solve this problem, although the internal pulldown resistors also have to be considered when entering sleep mode.

    The pin spacing is 0.5mm for the DRV8846 QFN package. There is a DRV8846EVM and DRV8848EVM available for evaluation.
    The DRV8848EVM is configured to drive one or two brushed DC motors, or one stepper motor.

    To use the DRV8848 the sequence is:

    STEP AIN1 AIN2 BIN1 BIN2 (Instead of toggling the PHASE pins, the two inputs are reversed)
    1 1 0 1 0
    2 0 1 1 0
    3 0 1 0 1
    4 1 0 0 1
  • Hi Rick,

    MODE=1 pin voltage is 3.3V. 

    For MODE=0 and ENA=ENB=0 the current is 190mA (coaster). May be I can try the current for MODE=0 and ENA=ENB=1 (break)

    Thanks for the information on DRV8846 and DRV8848 and the sequence,

    John

  • Hi John,

    When MODE=0 and ENA=ENB=0, are either pins 8 or 10 set to 1? This would account for additional current due to the internal pulldowns also.

    To minimize the current in the DRV8835 pins 7 through 11 should be set to 0.