Take this motor for example.

It is rated for 24-48V, 4.2A/phase, 0.9 ohm coils, and 3 Nm holding torque.

Using a motor driver like this, what is the ideal voltage to run the motor at to achieve the best torque curve?

The driver has a chopper circuit, and will therefore current limit. Torque is proportional to current. Given the specs, I would assume that the current limiter would kick in at 4.2A * 0.9ohm = 3.78V. Of course, this is far lower than the rated voltage. I know there are inefficiencies in the driver (and likely something with RMS current/voltage that I don't fully understand that would change things by a factor of sqrt(3)), but that doesn't explain the discrepancy.

Intuitively, running at a higher voltage would yield higher torque, but I can't quite justify this in my head (or this sentiment might be wrong entirely!).

Any explanation would be much appreciated!

  • \$\begingroup\$ "The driver has a chopper circuit, and will therefore current limit." That is probably not true. \$\endgroup\$ Nov 16, 2021 at 1:29
  • \$\begingroup\$ The applied voltage determines how fast the current will rise in the coil. The chopper circuit then limits the current. If you vary the input voltage you’ll see a difference in the performance of the motor especially at higher speeds. So your calculation holds true in terms of the average voltage but that doesn’t tell the whole story. \$\endgroup\$
    – Kartman
    Nov 16, 2021 at 1:43

2 Answers 2


Due to the inductance of the coils, the current through them does not change instantly, rather it ramps up when voltage is apllied, and down again when the source voltage is removed. The result is a sluggish slewing up and down of current rather than a clean switching between full-current/zero-current states.

Current regulation in stepper motor coils is therefore usually achieved by pulse width modulation of the voltage applied to the coils. That is, all of the voltage, or none of it, in pulses. It is not done by regulating the voltage applied directly to the coils.

The result is a coil current which slews up and down a little, oscillating slightly above and below some value, a value which on average has the required RMS magnitude.

In this way, the supply voltage is not a primary concern, although it will influence how quickly current can rise in the coils.

If the controller IC were to use a linear voltage regulator to obtain the exact voltage necessary for some desired current, that regulator would have to dissipate power in proportion to the voltage dropped across it. For example, for 4.2A at 3.8V the regulator would have to dispense with \$24V-3.8V = 20V\$, and would dissipate \$20V \times 4.2A = 84W\$ of power! That's just not practical, and so these devices employ the inductances of the coils to achieve regulation, in a manner similar to how DC-DC convertors use inductors to do it.

If you were to examine the voltage across a coil using an oscilloscope, and if the controller were regulating the current through that coil to be, on average, 4.2A, then you would observe the coil voltage to have an average of 3.8V. This is in spite of the fact that at any given instant the controller is either connecting the coil directly across power supply rails, or to a complete short circuit, or a completely open circuit. Also, if the controller is merely sensing coil current, it doesn't even need to know what exact voltage would result in that exact current. All it does is increase or decrease PWM duty cycle until the current it senses is the current it desires.

The short answer to your question is that the supply voltage will certainly determine the maximum current you may obtain in a coil, but since the controller is using PWM, there's no such thing as an optimal voltage. There's only optimal coil current (for holding, stepping, high mechanical load conditions, low load conditions etc), which is not a direct function of supply voltage. If you wish to achieve maximum torque, you must have a power supply able to provide the current for that condition, and a driver IC able to channel it to the coils. There may be a minimum power supply voltage required to achieve that current, at 100% PWM duty cycle, but any voltage above this (within the controller and motor specifications, of course) will do.


For a given stepper driver, you can set the motor current to a maximum value of 3.5A, therefore you won't get the nominal torque, rather a bit less.

Given the specs, I would assume that the current limiter would kick in at 4.2A * 0.9ohm = 3.78V.

More precisely, the chopper will try to regulate the current to 3.5A, -> 3.5A * 0.9ohm = 3.15V. This would be the voltage at standstill - 0 RPM.

When the motor spins it produces BEMF voltage, so the driver has to overcome this voltage in order to supply the rated current. You would need a motor characteristics Torque VS. Speed at specified supply voltage to be able to detrmine if it suits your demand. Also a voltage constant of the motor (V/kRPM) would be welcome.

A simple answer to your question: Use the maximum rated supply voltage if you need maximum speed of the motor, else the motor will loose the torque at higher speed.

Intuitively, running at a higher voltage would yield higher torque, but I can't quite justify this in my head (or this sentiment might be wrong entirely!).

No, the chopper will regulate the current to a fixed value regardless of supply voltage. Yes, you are wrong: current = Torque, voltage = speed.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.