Stepper Motors Speed


Thread Starter


I am using a ATMEL 8515 to control the steps of a 1,2A 6V motor. I tried to create a drive and it works well in low speed, but if I use a higher speed I have problems. The TIP120 becames very Hot and it seems like the motor has lost the steps and it stay immovable and just start to tremble. Do you know how can i solve this problem ??? Thank you Again, anyway.
I'm sure others can answer this better than I however,
Look into "Mechanical Resonance".

Picture a compass
W_ _E

Each point is a coil. you pulse the coils in sequence (to be simple). N then E then S then W. (again to be simple) if the rotor is pointing at N and you pulse around too fast, you get back to
N again before the rotor even gets to E. This means that the rotor now wants to go to N (backwards). You continue pulsing, and now the rotor wants to go towards E. Now your back at N and the rotor wants to??? Yup go back to N.
Now it's stuck in Resonance.

Unfortunately it's been years, and I don't remember the answer off hand, but this is the problem your dealing with.

Hope it helps Not hinders.

Guy H. Looney

It sounds like the motor is stalling at the higher speeds. A possible solution would be to increase the command resolution of the motor. I'm not sure what the resolution of the chip you're using is, but I'm guessing it's probably 200 steps/rev (full stepping).

The heat would be due to an increase in voltage. Voltage is proportional to speed. You're commanding a higher speed, thus the effective voltage through the windings is increased.

The heating could possibly be contributing to the problem, but I doubt it. I the heating is irrelevant to the trembling, the lost steps, and the motor not moving.

There are two easy checks to see if it is stalling:
1) Listen for an audible noise that is much different than normal operation
2) If it is stalled, you should be able to easily turn the motor shaft during the stall. Once the stall is fixed (commanded motion halted, but still enabled), the motor shaft will regain it's holding torque.

Hope this helps,

Guy H. Looney
Motion Control Engineer
A.C.E. Systems, LLC
work: (615) 754-2378
fax: (615) 754-0098
cell: (615) 330-0044
[email protected]

Are you using a catch diode across the windings? You need to reverse it and add a 48 volt zener in series, so that the reverse emf can build up to that level before discharging. This will help a lot! The zener will have to be fairly large (2 watts?) to dissipate the power.

Also, consider changing your design to a MOSFET. The TIP 120 is a darlington which will dissipate MUCH more power as its switching time is slower and the collector-emitter drop is about 1 volt.

How many steps/second do you need? If it's very high (thousands per second), you will have to use a higher voltage (e. g. 48V) and a PWM scheme
to overcome the inductance of the windings. You may have to go to a low voltage, high current version of the motor (less inductance, faster current buildup).

Have fun!


Willy Smith
Numatics, Inc.
Costa Rica
I just remembered a little more,

It has to do with Rate of Acceleration.
If you accelerate the motor too fast, the rotor does not have time to catch up to the pulses. That's how you get into Resonance. Try slowing down the rate of acceleration.

And again,
If anyone else here can elaborate better than I, please do. It would help to refresh my memory as well.



I would abandone re-inventing this wheel and get
a microstepper driver IC like the Allegro A3957.
See website: I believe that you can get upto 6 free samples. The device is rated for 1.5A upto 50V. Usually two of these devices are needed to drive a stepper motor depending on the type. With this IC, your Atmel micro would just be used to control speed [pwm] and direction. The IC has solved all the microstepper sequencing problems and has built-in protection more than you can achieve with discrete components.

But if you are determined to solve your problems:
[not knowing your specifics] it could be: let's see, hot transistors could mean they are shorting, either wrong sequencing, turning on and shorting transistors or shoot through between highside and lowside transistors [no deadtime?], or transients screwing up your digital signals, or could be a slew of other problems.
Good luck. Oly

Zan Von Flue

I would agree - to high of temperature, acceleration, speed and/or resolution. For the weight the stepper has to move, at that speed, it is to large. The stepper can handle high speeds but with a sharp loss of power! Take a look at the data sheet for the type of motor.
Parallel steppers have less power then series connected steppers, but have a wider frequence band (0-??Hz). Series Steppers have more power but only at slow rps (seconds). Free'er moving slides could help, but maybe a servo motor is also a answer. I personnally don't like servomotors, but sometimes they are usefull. Also look at any gear ratio needed. I have this problem also. Slower speeds, longer acceleration times and correctly connected steppers help.
I don't know if the chip is a specialized motor control chip or just a microprocessor, but are you providing an accel/decel profile to the pulse pattern? You can run steppers at a very high speed, but the initial pulses have to be
relatively long. I'd start with a pulse speed that works well at low speed, then multiply consecutive pulse widths by 75% (or something similar) until the pulse duration is at your run speed. I'm not a stepper expert, but your motor catalog may have app notes on this.

I made some project whith te Atmel 8515
for stepper moter controllers i always use the
IC's L297 and the L298 of SGS-Thomson
If you find the datasheets you wil find the application not.
software development is simplified

Use high speeds diode for the inductance.