# Does frequency equal the number of steps a stepper motor will do?

http://www.thorlabs.us/thorcat/ETN/ZFS13B-Manual.pdf

I am supplying a driving PWM signal to this stepper motor. However, I want to specify exactly how many steps to take with this motor.

Does the frequency of my signal = the number of microsteps it will take in one second (49,152 microsteps per revolution)? For example, if I have a 25 kHz signal, will the motor do 25,000 steps or approximately half a revolution in a second?

Also, I am unsure on how the amplitude (voltage) of my signal plays a role in stepping. Can anyone provide insight on this? Thanks a lot!

• I would recommend that you read the specifications in the manual of the TST101 driver which is listed in the stepper motor manual. This will likely give you the answers you need. Apparently reading manuals is off topic for this forum. – Nedd Feb 10 '15 at 7:29

The PWM frequency is entirely independent of the step rate*. So, for instance, if you apply a 25 KHz PWM waveform to your stepper motor, and keep the PWM waveform constant, the stepper motor will not turn at all. The "PWM" part is just a way to set the coil current to some intermediate value between full current and zero, and do it efficiently, that is, without wasting heat in a linear driver.

• For a PWM rate which is higher than the maximum step rate when not using microsteps.

If you want the smoothest possible rotation, then yes, you want to use every microstep value when changing the current level in the stepper coils, and your calculation is correct. But there is no obvious reason why you need to do this. If you're using microsteps and want to rotate the shaft faster, you can just skip over intermediate microstep values. You'll lose smoothness doing this, but you'll get faster rotation.

• How would I skip over the intermediate microstep values? I'm assuming that each pulse is one microstep (please correct me if that's wrong). If I change that, I wouldn't be sure how to calculate exactly how many steps I would need. – user29269 Feb 10 '15 at 20:43
• With a standard controller, you would effectively skip microsteps by issuing up or down step commands much faster than the PWM frequency. You can do this with microstep controllers as long as you don't skip so many that you create phase ambiguities. And if that doesn't make sense, please do some research on how stepper motors work and what microstepping is. – WhatRoughBeast Feb 10 '15 at 20:48
• I find it somewhat implausible that the motor is physically capable of doing 1/2048 microsteps, given that the torque per microstep drops off very rapidly with increasing divisor. Normally motors will stay still until a certain number of microsteps have passed, and then suddenly jump, so a smoother motion might actually be obtained by using coarser microsteps. The repeatability and backlash specifications more or less make a nonsense of the claimed microstepping ability anyway. – Oleksandr R. Apr 12 '15 at 18:46
• Oh yeah, and it's worse than that. There are about a half-dozen reasons why hi-res microstepping doesn't work as well as some folks think. See homepage.cs.uiowa.edu/~jones/step/micro.html for instance. – WhatRoughBeast Apr 12 '15 at 18:52

Without referring to the manual, it is not the basic frequency of the PWM signal that determines the microstepping number, but the number of PWM levels used to recreate one original step.

So if you were to use 256 different PWM levels it would take 256 micro steps to create one full step. (You can do the rest of the math from this.) In a practical use you need to supply each input winding of the motor with the proper phase level to run the motor correctly. This means keeping track of two or more PWM signals at different phases of those 256 levels.

In reality the PWM % points are usually chosen to simulate fractional parts of a sine wave current to run the motor smoothly.

The basic frequency of the PWM signal itself can be optimised by knowing the inductance value of each motor coil, for example a higher inductance coil would normally require a lower frequency to allow a high amount of current to flow. To increase the coil current at a given frequency the amplitude of the input voltage could be increased.