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.

DRV8835: Implementing micro-stepping control using PWM

Part Number: DRV8835
Other Parts Discussed in Thread: DRV8834

Hi Experts,

Good day.

The customer is using DRV8835 implements the related micro-stepping control PWM signals but the motor rotation isn't smooth and the motor force is weak. Below is the DRV8835 output signals with and without load/motor.

Without Load                                                                  With Load


About the implemented micro-stepping - it's 1/8 with a PWM frequency of 16.6kHz.

Can you tell me if is it possible to use somehow micro-stepping with DRV8835?
We need noiseless motor rotation and smooth current waveforms.

Keep safe.

Regards,

Josel

  • Josel,

    The DRV8835 isn't intended for micro-stepping applications.  The DRV8834 is the device for that.  

    https://www.ti.com/product/DRV8834

    Regards,

    Ryan

  • Hi Joselito,

    Probably the customer is trying voltage mode control (only voltage is controlled). This type of control may work for low speeds, in case of 1.8 deg hybrid stepper motor to somewhere around 1 rev/s. If higher speeds are required current mode control is needed. It looks like DRV8835 does not have current control needed for microstepping (in current mode). In order to use microstepping the following would be needed: 2x current sense resistors, 2x inline current sense amplifiers, 2x ADC inputs and proper program for current control for some controller like MCU.

    It would be much simpler to use one of the integrated stepper motor drivers that have all or most of needed features for microstepping.

    https://www.ti.com/motor-drivers/stepper-driver/overview.html

    I think DRV8835 could be easier used for full step control of permanent magnet stepper motors.

    Regards,

    Grzegorz

  • Hi Grzegorz & Ryan,

    Good day.


    The customer is trying to achieve micro-stepping with different PWM duty cycles for each micro-step.
    However, the DRV8835 output levels are not related to the input ones.

    We previously used full step with DRV8835 but now we want less noise and easier current sensing. Also, high motor force is required. Do you think half-step control is the only choice for us?

    The required speed is 250PPS.

    Keep safe.


    Regards,

    Josel

  • Hi Josel,

    I tried briefly once voltage mode control using power amplifiers to generate sin/cos voltage waves for hybrid stepper motor at current 30% of its nominal value and at 140 pps (0.7 rev/s) it just stopped to work because of resonance. Maybe current was to low but I gave up any further tests.

    The easiest way for the customer will be using one of above mentioned drivers.

    However If for some reason I really wanted to try to drive stepper motor with DRV8835 in voltage mode I would try the following:

    - disconnect the motor,

    - use possible high VM voltage lets say 10V,

    - set PWM frequency to be constant,

    - modulate PWM duty cycles to get sin/cos voltage waves at outputs,

    - ramp PWM duty cycles with speed to compensate current for L and BEMF,

    - at standstill there will be some voltage needed because of motor windings resistance,

    - connect the motor and adjust standstill voltage and voltage ramp to keep current at required level,

    - make tests watching output voltage and current waveforms.

    The whole control would be very similar to V/f control of induction motor with frequency inverter. You can also try to look for "voltage mode" control of stepper motors on web, but there is not a lot of information available.

    Can you tell what kind of motor it is (permanent magnet or hybrid)?

    Regards,

    Grzegorz

  • Hi Grzegorz,

    Good day.

    The customer replied:

    I'm not sure about the motor type - it's 25BYJ412-50.
    Since hardware changes are already impossible, I don't think it's possible to use the proposed control method.
    Below is the DRV8835-related circuit.



    Regards,

    Josel

  • Hi Josel,

    It is permanent magnet stepper motor and I guess that there is a chance that the method I described could work but lets go back to your design.

    I understand that driver used to work with that motor, at full step, at 250pps, at VM around 3.8V and with some torque. Full step provides the highest possible output voltage out of all step modes and if you want to go for half-step or microstepping motor current would have to be preserved to keep previous motor torque.

    I think to get full step current in half-step or microstepping modes one or more of the following changes would have to be done:

    - VM voltage increase,

    - motor change for a one with lower voltage windings,

    - motor speed reduction,

    - it would be possible to get some output voltage increase by elimination of R16 but probably it would not be enough.

    I guess that if you want to go for half-step or microstepping mode your biggest problem will be motor BEMF.

    Regards,

    Grzegorz

  • Hey Josel,

    I agree that it isn't easily possible the DRV8835, as it does not support microstepping unlike the DRV8834 Ryan mentioned. 

    Grzegorz's answers detail some possible ways you could try to do it, but I suspect the easiest path forward is for you to make a new design based on one of our stepper motor drivers with microstepping. Unfortunately I don't see a pin to pin compatible part for the DRV8835

    Regards,

    Jacob