Electronic – safely reduce a stepper motor’s power consumption by applying a PWM to the driver’s enable input

pwmstepper motor

I have a stepper motor driver breakout board based off the Allegro A4988 chip. I noticed that when the motor is static, it has much better holding torque than when moving. I have a battery operated configuration and a majority of the time the stepper motor is only used to hold a position. The limit setting potentiometer is already on the breakout board so I can't change it with my micro-controller.

Would I able to apply a PWM signal to the enable pin of the motor driver to change the current going into the motor so that I can drive the motor at a higher current level when actively moving and reduce the current for holding position?

I'm mostly interested on the effects a PWM signal will have on the driver circuit's life. Nowhere on the data sheet dose it say you can or can not do something like this.

Best Answer

I'm not sure what you mean by 'the limit setting potentiometer', but (assuming that you mean the current sense resistors \$R_{S1}\$ and \$R_{S2}\$ (which would be an interesting design, those should be matched low-impedance resistors) I read on page 9, in the section Internal PWM Current Control:

The maximum value of current limiting is set by the selection of RSx and the voltage at the VREF pin. The transconductance function is approximated by the maximum value of current limiting, \$I_{TripMAX}\$ (A), which is set by

\$ I_{TripMAX} = V_{REF} / ( 8 R_S) \$

where \$R_S\$ is the resistance of the sense resistor (Ω) and V_{REF} is the input voltage on the REF pin (V).

Do you have access to the REF pin (pin 17)? If so, adjusting this with a DAC will produce the same effect as varying the sense resistors.

If not, the Enable input is probably a better choice than cutting the power or using the sleep or shut-down pins, those would incur a 1 ms delay (per the description on p. 10).