Searching \ for 'Stepper drive methods....' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/io/steppers.htm?key=stepper
Search entire site for: 'Stepper drive methods....'.

Truncated match.
PICList Thread
'Stepper drive methods....'
2003\02\09@125849 by Wagner Lipnharski

flavicon
face
Chris Loiacono wrote:
{Quote hidden}

Hi Chris, it is a common belief that stepper motors work easily as a lamp.
The fact that applying current to the phases make the motor move, doesn't
mean everything is done.
A stepper motor has a complex drunk and emotional personality.
It requires care, study, learning and above all, understanding.

You can read all night long about stepper motors, and find out less than 5%
of what is possible, and ending up knowing less than you started.

This is why there are so many different kinds, models and type os stepper
motors, everyone was produced or developped trying to solve one or another
problem or necessity in the market.

Few things I can resume about them;

Forget about voltage, pay attention in the current on the coils.  It WILL
require to use a power supply at least with double voltage then the stated
to the motor.  You can use current limiting resistors, or better, current
limiting electronics.

As anything else, each stepper motor is designed for a particular task,
some have more torque, others speed, other both.

It is common to see stepper motors getting warm or very hot under low
speed, since the coils will drain pure DC current.  Under medium speed,
good torque, the motor can run not so hot, as a matter of fact, they could
run without even getting warm.  At high speed, the motor start to fail, the
mechanics simply CAN'T react to the fast change in the magnetic field, it
start to loose steps and make crazy things.

A 1.8° step, 200 steps per revolution motor, can't give you speed higher
than 80 to 100 RPM without starting to fail, or with a torque so low that
you can't drive anything with.

We should always remember that a stepper motor, is a precision mechanic
motor, something developped to produce safe and accurate positioning in lab
and industrial equipment or machinery.  They are not intended to drive a
fan blade or a drill.  For those, there are other kind of motors.

What kind or motor are you using?  brand? model? voltage? current?  what
speed you got actually?

Also, it is good to remember, that low voltage and high current motor gives
you more torque and faster response. High voltage and low current motors
are to be used where low torque and low speed is required, so low current
drivers can be used, small transistors, etc.  It will be difficult to drain
high torque and speed from a 12V motor, you can start to hope this when
using 5V and below motors.  Best results you can get with motors around 2V
@ 4A.

I have some projects using Allegro chips, they work pretty well, but they
require good heatsink and they don't drive higher currents.  You really
need to implement discrete high current transistors.  8 x IRF530 is a good
solution for a 4 to 6A motor, but of course, it requires a current
management, using  0.05 ohm resistors, a LM339 and a reference voltage, you
can produce a current limiter or chopper and keep the motor working at its
limit.

Whenever playing with stepper motors, keep your mind open to strange
results, write down every test for later comparison and consult, you WILL
get lost during all the experiments of pulse time, voltage, current, speed,
torque, etc.

For the speed vs torque tests, the best is attaching a force drag to the
motor, something like a belt driving a fan underwater or if you are good in
mechanics, a felt type break system, a rotating aluminum disk sandwiched in
between two stationary felt break pads, like a car's disk brake system, but
using a felt or cloth to create the drag.  Using springs and some
adjustment screws you can produce and calibrate a precise drag to the
motor. Then, you can play with pulse timming and current and find out the
best torque and speed.

One of the tests you can do for "missing steps", is just programming your
microcontroller to do several back and forth steps, 20 FW, 135 BKW, 183 FW
and so on, but ending up in the same exactly point where started, I mean,
FW = BKW.  Then you glue a pointer to the shaft (toothpick?) and expect it
to stop exactly where started, if not, the motor lost steps.  You WILL play
for hours with this system, until you find out the best numbers for this
particular motor.

When you find out the motor limits for torque and speed, never make it work
more than 85% toward those limits.

Wagner.

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email spam_OUTlistservTakeThisOuTspammitvma.mit.edu with SET PICList DIGEST in the body

2003\02\09@175036 by Chris Loiacono

flavicon
face
> What kind or motor are you using?  brand? model? voltage?
> current?  what
> speed you got actually?

I have been working with small 55mm 7.5 degree 12V , 30 ohm unipolar motors,
20 ohm 12V unipolar, and also some 5V bipolars @ 5.2 ohms.

I have several bench supplies  - up to 40V.
Ihave the actual load assembled, and have been using it for motor testing
over the past few weeks.

I have run the 12V 20 ohm motors OK at between 60 - 100 RPM. I was able to
get approx 4X the speed out of 12V 30 ohm motors by running them over the
rated current, but, of course they don't like that very much.
>
> Also, it is good to remember, that low voltage and high
> current motor gives
> you more torque and faster response.

That's why I went to 5V motors for next tests. Also Bipolar.

{Quote hidden}

I have a feeling that this may be more than I need for this application -
the torque isn't very much. I don't have a small enough torque wrence to
measure it, so I don't know exactly how light it is, but consider that all
of the small unipolar motors drive it fairly well already. I spent a fair
amount of time reading, listening, and slowly trying thigs to get this far
already.

>
> I have some projects using Allegro chips, they work pretty
> well, but they
> require good heatsink and they don't drive higher currents.
> You really
> need to implement discrete high current transistors.
Will I really need this for < 1A?

 8 x
> IRF530 is a good
> solution for a 4 to 6A motor, but of course, it requires a current
> management, using  0.05 ohm resistors, a LM339 and a
> reference voltage, you
> can produce a current limiter or chopper and keep the motor
> working at its
> limit.

I have a good assortment of IRF devices handy - can you think of where I
might find a simple circuit to try?

At < 1A, would it be worth the effort? - The Allegro choppers are <$10 per
axis.....




>
> One of the tests you can do for "missing steps", is just
> programming your
> microcontroller to do several back and forth steps,

I have done exactly thi, except with much larger numbers of steps. I can
lose steps if I try to step too quickly now, but slow rates as I mentioned
never lose steps in two bytes worth of back and forth...
>
> When you find out the motor limits for torque and speed,
> never make it work
> more than 85% toward those limits.

Perhaps this is why I'mnot happy with my results yet...

Thanks....

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email .....listservKILLspamspam@spam@mitvma.mit.edu with SET PICList DIGEST in the body

2003\02\09@180221 by Josh Koffman

flavicon
face
Chris, there is a driver board that Roman designed. It's open source I
believe, and I think it on the piclist.com website somewhere. Either
that, or on Roman's site. It has tons of really cool features, and might
be worth a look. I don't remember how he's driving the motors though.

Just a thought.

Josh
--
A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete
fools.
       -Douglas Adams

Chris Loiacono wrote:
> I have been working with small 55mm 7.5 degree 12V , 30 ohm unipolar motors,
> 20 ohm 12V unipolar, and also some 5V bipolars @ 5.2 ohms.

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email listservspamKILLspammitvma.mit.edu with SET PICList DIGEST in the body

2003\02\10@074650 by Roman Black

flavicon
face
Wagner Lipnharski wrote:

> It is common to see stepper motors getting warm or very hot under low
> speed, since the coils will drain pure DC current.  Under medium speed,
> good torque, the motor can run not so hot...

Sorry Wagner, that's wrong, at low speeds and stopped
the motor runs at min heat. At higher speeds the motor
inductance means that MORE average voltage is applied
per second for constant current, and the motor heat
*increases* at speed.
-Roman

--
http://www.piclist.com hint: To leave the PICList
.....piclist-unsubscribe-requestKILLspamspam.....mitvma.mit.edu>

2003\02\10@075902 by Roman Black

flavicon
face
Chris Loiacono wrote:

> That's why I went to 5V motors for next tests. Also Bipolar.


Don't fall victim to fashion and assume bipolar is always
better. Bipolar is better for HOLDING torque, generally
40% better for same motor current.
However it has double the inductance of unipolar and
torque at speed will be LESS than unipolar.
This is seen much more pronounced when the motor is
an older type where the magnetic and electric properties
were DESIGNED for max performance in the unipolar mode.
-Roman

--
http://www.piclist.com hint: To leave the PICList
EraseMEpiclist-unsubscribe-requestspam_OUTspamTakeThisOuTmitvma.mit.edu>

2003\02\10@131533 by Wagner Lipnharski

flavicon
face
part 1 1943 bytes content-type:text/plain; (decoded 7bit)

Roman Black wrote:
> Wagner Lipnharski wrote:
>
>> It is common to see stepper motors getting warm or very hot under low
>> speed, since the coils will drain pure DC current.  Under medium
>> speed, good torque, the motor can run not so hot...
>
> Sorry Wagner, that's wrong, at low speeds and stopped
> the motor runs at min heat. At higher speeds the motor
> inductance means that MORE average voltage is applied
> per second for constant current, and the motor heat
> *increases* at speed.
> -Roman


Not on my motors.  I needed to increase belt reduction to speed up motors,
so they cool down.
At +-7 rpm the 5V @ 1.4A they almost boil water, the metalic frame where
motors are bolted gets hot.  Changing this to +-30 rpm they run smoothly
warm.  It was not caused by any ring or signal bouce. Power logger simply
shows the current limit is reached after motor stops after each step, DC
current, so power average goes to sky.

Note that I don't use constant current, I use 12V and current limit.
During many months tested different combinations, including the native
Allegro PWM control, external current chopper, etc.

You can see on the top waveform, there is a wasted full holding current
period, just generating heat.  I optimized software to cut out or reduce
power (chopper) during the holding current, but then torque is reduced
drastically.  The bottom wavform uses the same control, but 4x faster, with
1/3 of the top power consumed.

I can understand your explanation above if you apply constant current all
the time, since during pre-mechanical motion the coils suck more power,
then you will have a power peak during pre-motion and motion. This should
not happens when limiting current, or just using a higher VCC with ballast
resistors.



--
http://www.piclist.com hint: To leave the PICList
piclist-unsubscribe-requestspamspam_OUTmitvma.mit.edu




part 2 9939 bytes content-type:application/octet-stream; (decode)

part 3 2 bytes
-

2003\02\10@145135 by Chris Loiacono

flavicon
face
I've looked at the lini-stepper, and might use it if there was profit to be
had in this project. 3 Axes worth of linisteppers gets expensive though,
especially for such small motors. What I'm doing now is pretty close and
only costs about $10 per axis total. It may be that in taking the next step,
the linistepper may be a bargain - but I just haven't gotten there yet. I'll
look harder at using Roman's design...

(Funny how I'll spend client $ somuch faster...)

I've also gotten some generous replies to the original post, and am learning
some - but I'm amazed that there can be so many opinions on any given
topic.......

> Chris, there is a driver board that Roman designed. It's open source I
> believe, and I think it on the piclist.com website somewhere. Either
> that, or on Roman's site. It has tons of really cool
> features, and might
> be worth a look. I don't remember how he's driving the motors though.
>
> Just a thought.
>
> Josh

--
http://www.piclist.com hint: To leave the PICList
@spam@piclist-unsubscribe-requestKILLspamspammitvma.mit.edu>

2003\02\10@151041 by Spehro Pefhany

picon face
At 02:52 PM 2/10/2003 -0500, you wrote:
>I've looked at the lini-stepper, and might use it if there was profit to be
>had in this project. 3 Axes worth of linisteppers gets expensive though,
>especially for such small motors. What I'm doing now is pretty close and
>only costs about $10 per axis total. It may be that in taking the next step,
>the linistepper may be a bargain - but I just haven't gotten there yet. I'll
>look harder at using Roman's design...

Chris:-

If you really need high performance, you might want to look at DC servos
rather than steppers. With a built-in optical encoder (and some drive
circuitry) they can "look" just like a microstepping PWM stepper controller
to the driving software. Steppers have issues with resonances and such like,
as well as the obvious one of getting enough drive current due to winding
inductance.

Best regards,

Spehro Pefhany --"it's the network..."            "The Journey is the reward"
KILLspamspeffKILLspamspaminterlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com

--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestTakeThisOuTspammitvma.mit.edu>

2003\02\10@160420 by Vern Jones

flavicon
face
Hello all,

If you really want a look at the top of the line in stepper motor and
servo motor designs take a look at http://www.compumotor.com when only
the best will do I use Compumotor.

Having tried many commercial designs, and finding that most performed
poorly or not at all. Seeing Roman's design, he has worked out most of
the bugs I have found in many high end (so called by their Mfgs.) motor
drive applications.

The only commercial people willing to come on site and work with us,
were the people from Compumotor. These motors are for the high end of
things where precision counts, and most applications won't warrant the
expense, but I find Roman's prices very reasonable for the product he
has designed. So thumbs up to Roman.

Vern Jones, Sound Research htp://http://www.foothill.net/~soundres

Spehro Pefhany wrote:
{Quote hidden}

--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestspamTakeThisOuTmitvma.mit.edu>

2003\02\10@164537 by John Dammeyer

flavicon
face
Hi all,

It was interesting to see the scope photo's of Wagner's Stepper pulses.
They demonstrate the problems associated with driving steppers really
well.

However,   much of the discussion seems to have missed some of the basic
theory of why they work the way they do and why there are different
methods of driving them.

If you go back to basic electronics remember that applying a voltage
through a switch and a resistor to a discharged capacitor will show the
voltage at the capacitor starting at 0 and gradually increasing until it
reaches the supply voltage.  The current starts high and tapers off to
zero amps. (Discounting leakage here).

An inductor (like the winding of a stepper motor) works the opposite
way.  Apply a voltage across the windings and you get 0 current
initially and the full supply voltage.  Over time,  the voltage drops to
almost zero and the current to maximum based on the internal DC
resistance of the wire in the inductor.

Time and the DC resistance is the issue here.  Like any electromagnet,
the strength of the field is related to the current through the windings
and to get to that maximum you want the current to max as quickly as
possible.  The current rating is based on the internal resistance of the
windings and the saturation point of the magnets and core.  More current
doesn't infinitely translate into more torque.

Plus,  because the stepper moves the armature,  the inductance changes
as the rotor turns.  You can see that in Wagner's photo.  Once the
system is stable again the current once again builds up to some maximum.

Thing is,  for max torque you want that current as high as allowed as
soon as possible.   The only way to get the current into the winding
faster is to increase the pressure on those electrons (increase the
voltage).  However,  problem is that once the maximum current is
reached,  the extra voltage tries to increase it way beyond the coil
rating; not a good thing.  So there are 3 ways to do this all.

1.  The L method.  This is where the coil voltage and internal
resistance of the stepper motor winding match the applied voltage.
Simple to use but not good for high speeds because it takes time to get
to maximum current and if that isn't reached before the next step pulse,
the torque is lower than maximum and eventually the load of turning the
rotor exceeds the torque built up during the short pulse.

2.  The LR method.  Very popular and again very simple but also has some
drawbacks.  The power supply must be capable of a fairly high voltage an
current and once the current is reached the extra power is dissipated
through the current limiting resistors.  A 12V, 1A  stepper with 72
volts applied ultimately needs to drop 60V at 1A (60W) across the power
resistor;  and there can be 4 of those resistors.  The advantage is that
during the initial application of power,  the higher drive voltage
causes the motor current to ramp up much faster.  This means that
maximum torque is reached much faster and the motor can turn faster.

One down side is that as the current increases,  the voltage is dropped
across the resistor and the drive voltage is reduced slowing down the
rise time.

The other down side is high power resistors are usually wire wound and
have their own inductance that adds to the problems;  it must be much
much lower than the motor inductance or it restricts the current build
up.

3. The Chopper method.  This is similar to the LR method but uses a
transistor to apply the high voltage drive to the coil.  A low
resistance (low inductance) sensing resistor is in the circuit and the
voltage developed across this is compared to some sort of limit which
shuts down the current.  So now you have the full supply voltage (72V)
applied to this 12V coil and once 1A of current is produced, the current
is chopped off.  The magnetic field developed in the winding now begins
to decay and as the current drops of the power is again applied
effectively holding the current at 1A.  How this is done depends on the
design.  It can be clocked or done at the natural resonance of the
inductor and sensing filter capacitance.

The advantage is the full drive voltage is there during the entire time
up to maximum current resulting in maximum torque as quickly as
possible.

The disadvantage is that the circuitry is more complex.

Now back to Wagner's photo.  The dip occurs because the inductance
changes during the rotor motion and the reduced current will limit the
step rate because the torque starts to fall off.  So imagine that the
step rate makes pulses that are have the width of the bottom trace.  You
can see that there wouldn't be as much torque and the motor would start
to skip steps.

A higher power driver that chops will (usually up to 25kHz) maintain the
current at maximum during the entire step up to the point where the
steps happen faster than the current can build up with the particular
applied voltage.

In such a case,  the motor will get pretty well just as hot running at
full speed as it will sitting idle.

Hope that helps.

John Dammeyer

Wireless CAN with the CANRF module now available.
http://www.autoartisans.com/products
Automation Artisans Inc.
Ph. 1 250 544 4950


> {Original Message removed}

2003\02\10@174132 by Chris Loiacono

flavicon
face
> Hope that helps.
It all helps - to be sure!

I have gone back and looked the Roman's deal, and as soon as I put out this
week's fires, I'll probably give 'em a try. In this ap I 'll need to
incorporate some hardware and another PIC to communicate w/ VB's MSComm and
to pass the stepper commands along. I was hoping for one big board. I can
envision 3 linisteppers plugged into it now....

--
http://www.piclist.com hint: To leave the PICList
piclist-unsubscribe-requestEraseMEspam.....mitvma.mit.edu>

2003\02\10@175850 by Wouter van Ooijen

face picon face
Looking at how a (unipolar) stepper driver works I have always wondered:
couldn't the EMF from the coil that is switched off be used to supply an
(initial) high voltage to the coil that is switched on?

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com hint: To leave the PICList
EraseMEpiclist-unsubscribe-requestspammitvma.mit.edu>

2003\02\10@182132 by John Dammeyer

flavicon
face
Hi Wouter,

The short answer is yes.  The long answer is that it's complicated and
probably not worth it.  What is done sometimes, is that little dip you
can see in Wagner's diagram can be used to check it the rotor actually
stepped.  A missed step creates a different waveform so you can get a
pulse back that the stepper stepped and use that as part of closed loop
control.

Cheers,

John Dammeyer



Wireless CAN with the CANRF module now available.
http://www.autoartisans.com/products
Automation Artisans Inc.
Ph. 1 250 544 4950


> {Original Message removed}

2003\02\10@185219 by Wagner Lipnharski

flavicon
face
part 1 6164 bytes content-type:text/plain; (decoded 7bit)

John Dammeyer wrote:
> Hi all,
>
> It was interesting to see the scope photo's of Wagner's Stepper
> pulses. They demonstrate the problems associated with driving
> steppers really well.


We took hundreds of pictures at that time, probably I can find one with the
current, mechanical dragging and mechanical response of the final structure
(vibration, echoes, delays, bending, etc).  As far as we found out, different
machines will make the same motors and drivers behave differently. A final fine
tunning is always required. Sometimes this tunning would demand hardware
changes.  We have the same machine in two different models, one has long axis
structure, so, mechanical vectors are different than the short one.  We needed
to adjust the software for this one, just to compensate the long mechanical echo
response.  Few microseconds more in the pulses avoid confront the echo
mechanical load, it increased performance and reduced motor load / temperature.
Of course, everyone here knows, using bigger motors would solve all the
problems, but we can't use motors bigger than NEMA34 in this machines. The shown
picture is a project documented image file.


[snip]
{Quote hidden}

One of the solutions we implemented was using the Allegro 2998, a two full
bridge driver, one IC per motor. It has a current shut off input pin per bridge,
it can be used to provide current chopping.  I did it using a common emitter
shunt resistor (0.5 ohm) and comparing such voltage with a fixed voltage from a
resistor divider from 5V, around 0.545V, so, the chop starts around 1.1A.  Later
on we included a mini trimpot to better adjust the chop current.  See pictured
attached. I made it smaller than 5k, so no complains about the bandwidth.
The picture is a cutout from a bigger diagram, but allow us to see the Allegro
2998 and the current chopper circuit.  The circuit board track capacitance was
enough to generate a good chop frequency.  A single LM339 SOIC SMD IC was enough
to provide the chopping of two motors (two Allegro 2998 chips).  Two other
resistors for each LM339 were used to "artificially lift" the shunt resistors
voltage, so the LM339 cut off the 2998 via microcontroller pin when motor "power
off" is required.  Sometimes I want a motor to be fully released, not holding
torque with any power applied to any phase, so this trick is very welcome.



Yes, the circuit gets a little bit complex, but worth the effort.  With a
current chopper system, you increase torque a little bit, with drastically lower
thermal.  Not all motors work well with this solution, some require to drop down
the chopping frequency, other requires you to delay when to start the chopping
pulses, if not, they simply don't move (should not chop while starting to move).

The 2998 works up to 50V and 2A if I remember well, what gives you good chance
to play openwide, but be aware of power dissipation.  The bipolar transistors
inside the 2998 are a thermal pig, they require a nice heatsink if you play with
currents above 1A constantly. Working in such limits, the 2998 package heatsink
is NOT enough to transfer such thermal energy to the other heatsink, even using
a fanned larger feathered heatsink and silicon compound.  I am planning to
produce a small PCB with SMT discrete components and 8x IRF530 (or better RDSON)
to simulate the 2998, incorporating the chopper and resistors, so it can replace
the 2998 directly in the actual board, and at the new ones too.


> Now back to Wagner's photo.  The dip occurs because the inductance
> changes during the rotor motion and the reduced current will limit the
> step rate because the torque starts to fall off.  So imagine that the
> step rate makes pulses that are have the width of the bottom trace.
> You can see that there wouldn't be as much torque and the motor would
> start to skip steps.

Even with the chopper solution we have a similar power waveform from the other
email picture, since there is no much to help. When the motor starts to move its
rotor, the inductance goes to hell, the current is unpredictable, it will always
depend on the mechanical motor load, and that, only depends on a thousand
things.  If the motor is fully stopped for several milliseconds, then start to
move several steps at once, the waveforms change all the time, due the load
echoes in the mechanics involved. If the load mechanics represent a long vector,
then you are doomed, since sometimes dozens of milliseconds after the motor is
stopped you see back current on the drivers, by mechanic delays and echoes.

There is a situation when this mechanical echo is so strong that it generates
back current into the Allegro 2998 and it goes back to the 5V logic, causing
several problems and control loss.  We found out two special situations,
signature of the long mechanical driven, and we simply cut out the motor power
when those two occasions would happen. It is ridiculous, but no other solution
was at hand at the time.

Wagner.


--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestEraseMEspamEraseMEmitvma.mit.edu




part 2 4887 bytes content-type:application/octet-stream; (decode)

part 3 2 bytes
-

2003\02\10@190012 by Wagner Lipnharski

flavicon
face
part 1 6163 bytes content-type:text/plain; (decoded 7bit)

John Dammeyer wrote:
> Hi all,
>
> It was interesting to see the scope photo's of Wagner's Stepper
> pulses. They demonstrate the problems associated with driving
> steppers really well.


We took hundreds of pictures at that time, probably I can find one with the
current, mechanical dragging and mechanical response of the final structure
(vibration, echoes, delays, bending, etc).  As far as we found out,
different machines will make the same motors and drivers behave
differently. A final fine tunning is always required. Sometimes this
tunning would demand hardware changes.  We have the same machine in two
different models, one has long axis structure, so, mechanical vectors are
different than the short one.  We needed to adjust the software for this
one, just to compensate the long mechanical echo response.  Few
microseconds more in the pulses avoid confront the echo mechanical load, it
increased performance and reduced motor load / temperature.  Of course,
everyone here knows, using bigger motors would solve all the problems, but
we can't use motors bigger than NEMA34 in this machines. The shown picture
is a project documented image file.


[snip]
{Quote hidden}

One of the solutions we implemented was using the Allegro 2998, a two full
bridge driver, one IC per motor. It has a current shut off input pin per
bridge, it can be used to provide current chopping.  I did it using a
common emitter shunt resistor (0.5 ohm) and comparing such voltage with a
fixed voltage from a resistor divider from 5V, around 0.545V, so, the chop
starts around 1.1A.  Later on we included a mini trimpot to better adjust
the chop current.  See pictured attached. I made it smaller than 5k, so no
complains about the bandwidth.
The picture is a cutout from a bigger diagram, but allow us to see the
Allegro 2998 and the current chopper circuit.  The circuit board track
capacitance was enough to generate a good chop frequency.  A single LM339
SOIC SMD IC was enough to provide the chopping of two motors (two Allegro
2998 chips).  Two other resistors for each LM339 were used to "artificially
lift" the shunt resistors voltage, so the LM339 cut off the 2998 via
microcontroller pin when motor "power off" is required.  Sometimes I want a
motor to be fully released, not holding torque with any power applied to
any phase, so this trick is very welcome.



Yes, the circuit gets a little bit complex, but worth the effort.  With a
current chopper system, you increase torque a little bit, with drastically
lower thermal.  Not all motors work well with this solution, some require
to drop down the chopping frequency, other requires you to delay when to
start the chopping pulses, if not, they simply don't move (should not chop
while starting to move).

The 2998 works up to 50V and 2A if I remember well, what gives you good
chance to play openwide, but be aware of power dissipation.  The bipolar
transistors inside the 2998 are a thermal pig, they require a nice heatsink
if you play with currents above 1A constantly. Working in such limits, the
2998 package heatsink is NOT enough to transfer such thermal energy to the
other heatsink, even using a fanned larger feathered heatsink and silicon
compound.  I am planning to produce a small PCB with SMT discrete
components and 8x IRF530 (or better RDSON) to simulate the 2998,
incorporating the chopper and resistors, so it can replace the 2998
directly in the actual board, and at the new ones too.


> Now back to Wagner's photo.  The dip occurs because the inductance
> changes during the rotor motion and the reduced current will limit the
> step rate because the torque starts to fall off.  So imagine that the
> step rate makes pulses that are have the width of the bottom trace.
> You can see that there wouldn't be as much torque and the motor would
> start to skip steps.

Even with the chopper solution we have a similar power waveform from the
other email picture, since there is no much to help. When the motor starts
to move its rotor, the inductance goes to hell, the current is
unpredictable, it will always depend on the mechanical motor load, and
that, only depends on a thousand things.  If the motor is fully stopped for
several milliseconds, then start to move several steps at once, the
waveforms change all the time, due the load echoes in the mechanics
involved. If the load mechanics represent a long vector, then you are
doomed, since sometimes dozens of milliseconds after the motor is stopped
you see back current on the drivers, by mechanic delays and echoes.

There is a situation when this mechanical echo is so strong that it
generates back current into the Allegro 2998 and it goes back to the 5V
logic, causing several problems and control loss.  We found out two special
situations, signature of the long mechanical driven, and we simply cut out
the motor power when the two occasions would happen. It is ridiculous, but
no other solution was at hand at the time.

Wagner.


--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestspam_OUTspamKILLspammitvma.mit.edu




part 2 4887 bytes content-type:application/octet-stream; (decode)

part 3 2 bytes
-

2003\02\10@191503 by michael brown

picon face
On Monday 10 February 2003 02:08 pm, you wrote:

> Chris:-
>
> If you really need high performance, you might want to look at DC
> servos rather than steppers. With a built-in optical encoder (and
> some drive circuitry) they can "look" just like a microstepping PWM
> stepper controller to the driving software. Steppers have issues with
> resonances and such like, as well as the obvious one of getting
> enough drive current due to winding inductance.

Spehro,

When I first read this, I thought you were talking about R/C type servos.  ;-)  Now I realize that you must mean something a little more industrial.  This sounds like a really good way to do it.

To put it mildly, my experiences with using various cheap stepper motors in my little robot project have been less than satisfactory.  Much of it being virtually no torque when running at any speed and not much at slow speeds either.  Plus the noise and vibration are quite irritating.

I've been thinking about switching to gearhead motors and using PWM, but didn't like the idea of losing the dead reckoning ability of stepper motors.  I realized that by using an optical encoder or some other feedback mechanism I could get some good acuracy, but didn't think of just adding another layer of processing to get a PWM encoded wheel to look like a stepper.  Thanks for the information.

michael brown

--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestTakeThisOuTspamspammitvma.mit.edu>

2003\02\10@224836 by Scott Thomas

flavicon
face
In my experimentations with building a robot platform I have had a similar
experience.  I started out using a pair of Vexta PK245 stepper motors as
drive.  These require about 1 amp per phase which is 2 amps per motor with
two windings excited for max torque.  So with 4 amps as a current
requirement I had to go with a sealed lead acid battery.  Even a small one
weighs a lot!  Performance was very disappointing (it barely moved on a hard
surface!).

I eventually switched to 1/4 scale RC servos.  These make for very
inexpensive gearhead motors when modified to rotate freely.  I removed all
the electronics and drove it with PWM from a PIC.  The ones I have will put
out 150+ oz-in of torque and typically draw 100mA no load to 500mA loaded
heavy.  They cost about $30 each.

Now, I did not have a requirement for precise positioning.  So you still
need to tackle that problem.

Let me know if you want further info.

Thanks
Scott

{Original Message removed}

2003\02\11@010047 by michael brown

picon face
On Monday 10 February 2003 09:36 pm, you wrote:
> In my experimentations with building a robot platform I have had a
> similar experience.  I started out using a pair of Vexta PK245
> stepper motors as drive.  These require about 1 amp per phase which
> is 2 amps per motor with two windings excited for max torque.  So
> with 4 amps as a current requirement I had to go with a sealed lead
> acid battery.  Even a small one weighs a lot!  Performance was very
> disappointing (it barely moved on a hard surface!).
>
> I eventually switched to 1/4 scale RC servos.  These make for very
> inexpensive gearhead motors when modified to rotate freely.  I
> removed all the electronics and drove it with PWM from a PIC.  The
> ones I have will put out 150+ oz-in of torque and typically draw
> 100mA no load to 500mA loaded heavy.  They cost about $30 each.
>
> Now, I did not have a requirement for precise positioning.  So you
> still need to tackle that problem.
>
> Let me know if you want further info.

I've been recently playing around with PWM and a modified R/C servo.  (I sure like that 628 ;-)  They have far more power than the steppers I played with, even though it's really a standard size servo.  I've just been a little intimidated by the encoder complication.

With Spehro's concept, I can have my cake and eat it to, sort of.  I will just make the encoded servo look like an "ideal" stepper motor to the software above it, and then treat it thusly.  I'm hoping that this will make adapting to a stronger type motor easier.

I appreciate the info on the lower power requirements, as I too have been dragging around a big SLA battery.  I also appreciate the offer on the info, but I really need to try and slay this dragon myself.  I'm sure I'll have plenty of questions for you and the group.  ;-)

michael

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@015536 by Roman Black

flavicon
face
Chris Loiacono wrote:
>
> I've looked at the lini-stepper, and might use it if there was profit to be
> had in this project. 3 Axes worth of linisteppers gets expensive though,
> especially for such small motors. What I'm doing now is pretty close and
> only costs about $10 per axis total. It may be that in taking the next step,
> the linistepper may be a bargain - but I just haven't gotten there yet. I'll
> look harder at using Roman's design...
>
> (Funny how I'll spend client $ somuch faster...)


Ok, so you need good high speed performance for a *very*
low cost?? Here's a way i've done it with low power
motors.

Use a unipolar driver, 2-phase on wave drive. This can
be as easy and cheap as 4x cheap NPN transistor and
4x base resistor. If motor current is under 500mA per
phase you can use 4x BC337, about 5c each. For a few
more pennies you can use a octal darl driver chip
and lose a bit of performance.

The 4x transistors are configured to turn on hard
and have no significant losses. Then drive the motor
+ (common) winding with a constant current driver.
This can be as cheap as a TO-220 PNP darlington,
2 resistors and a zener. And a heatsink. :o)

This setup will outperform your R/LR proposal and
be very cheap, WELL under your $10 per axis total.
The higher the PSU voltage the more heat lost at
low speeds via the heatsink but the more motor torque
you get at high speeds.
-Roman

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@015942 by Roman Black
flavicon
face
Wouter van Ooijen wrote:
>
> Looking at how a (unipolar) stepper driver works I have always wondered:
> couldn't the EMF from the coil that is switched off be used to supply an
> (initial) high voltage to the coil that is switched on?


With an appropriate sized main filter cap and
the typical 4 unipolar flyback diodes, the flyback
from each step will "pump" the main PSU voltage
at the cap. "Jones on steppers" covers this principle
under "electrical resonance" along with a couple of
methods if my memory serves. It's all dark ages stuff
really and relies on tuned motor speeds etc, not like
the good all-round performance from constant current
drivers. :o)
-Roman

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@020813 by Roman Black

flavicon
face
John Dammeyer wrote:

> 1.  The L method.  This is where the coil voltage and internal
> resistance of the stepper motor winding match the applied voltage.

> 2.  The LR method.  Very popular and again very simple but also has some
> drawbacks.

> 3. The Chopper method.  This is similar to the LR method but uses a
> transistor to apply the high voltage drive to the coil.


4. The Linear constant current method. :o)
Like the chopper CC method but uses a high power
linear amp to force a perfect DC current through
each motor coil. Of the 4 systems provides the
highest *motor* performance at the cost of much
more heat wasted in the driver. Usually considered
old-fashioned and ignored as an option, but is
often cheap and easy to build with discrete parts
and gives great performance for hobby setups etc.
;o)
-Roman

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@022250 by Roman Black

flavicon
face
Wagner Lipnharski wrote:
>
> Roman Black wrote:
> > Sorry Wagner, that's wrong, at low speeds and stopped
> > the motor runs at min heat. At higher speeds the motor
> > inductance means that MORE average voltage is applied
> > per second for constant current, and the motor heat
> > *increases* at speed.

> Not on my motors.  I needed to increase belt reduction to speed up motors,
> so they cool down.
> At +-7 rpm the 5V @ 1.4A they almost boil water, the metalic frame where
> motors are bolted gets hot.  Changing this to +-30 rpm they run smoothly
> warm.  It was not caused by any ring or signal bouce. Power logger simply
> shows the current limit is reached after motor stops after each step, DC
> current, so power average goes to sky.
>
> Note that I don't use constant current, I use 12V and current limit.


Ok, i'll buy that. The one case where the motor runs
cooler at high speed is with a *constant voltage* driver,
BUT generally nobody does this as the resulting very
low coil current gives very low torque at high speeds
making it only suitable for very low power loads.

I'd also suggest that instead of changing your gearing
to cause less motor current and less heating, you could
probably just have lowered the PSU voltage to give
less current and I2R losses and caused the same effect;
less motor heat and less motor torque.
-Roman

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@062127 by Wouter van Ooijen

face picon face
> With an appropriate sized main filter cap and
> the typical 4 unipolar flyback diodes, the flyback
> from each step will "pump" the main PSU voltage
> at the cap.

Yes, but the cap absorbes the flyback current and will not rise much in
voltage. My idea was to let the voltage rise high, so more current is
forced into the next coil. Would require a diode between power supply
and common of the coils, flyback diodes connected to that same common,
and probably a big zener at the common to prevent the flyback volatge
from frying the transistors.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@122205 by Wagner Lipnharski

flavicon
face
Roman Black wrote:
{Quote hidden}

Roman, you are correct.

If you observe the picture I post yesterday, the top waveform (low rpm) it
has two stages, first is the moving power when the motor advances one step,
the second stage is the holding power, when the motor keeps its steady
position and holds the shaft while the mechanics attached finishes the
delayed motion. It is important to make sure the mechanical step completes.
The bottom waveform (rpm x 4) shows practically only the stepping power, no
holding power appears there, there is no time for it, even that we apply
the same step power pulse time.  It means that the system is more
susceptible to mechanical failures due its own delay.

In some opportunity we were plotting mechanical movement using a small
linear voltage generator tied to the motor shaft and other at the end of
the mechanical long shafts.  You can scope the generator output and
visualize perfectly how the mechanics answer to the motor. At certain high
rpm, the stepper motor moved almost the complete step, then it came back to
the original position.  The mechanical load, even somehow light mass and
torque, at that acceleration for a single step it was more than what the
motor could do, so, to the motor it was almost as if the load was locked
down, the motor shake and backed up.  Of course, torque went to hell.
At that point we decided to increase motor size to NEMA34 with higher
power, and definitely never go for a motor with step bigger than 2 degrees,
and learn the lesson to never more use direct metal connections (gears or
direct shaft drive) - always timming urethane belts, they absorb and store
energy.

We also implemented a slow start motion by software.  The application is a
CNC machine with X and Y axis. Vectors size can go from 8 to 65k steps.  It
means that if when doing a 1000 steps vector, the first and last 10 or so
steps will be done in low speed, the middle steps in normal high speed.
This ensure a steady mechanical motion start and a good and solid motion
stop. In the middle of the motion, the stepper motor just keep pushing the
mechanics forward.  It is important to find out a nice high speed while the
mechanics load delay and echo serve as its own motion filter and ending up
as an almost linear motion, without much noise and mechanical ripple.  The
first and last 10 steps are done in less than 100ms, so, "normally" not
accounted as speed error.  This acceleration and break speed change is
dependent to how steep is the angle from the actual to the new vector to be
done.  If less than 30° and no stop between vectors, then no speed change
is necessary.

Wagner.

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\02\11@123650 by Alan B. Pearce

face picon face
>In some opportunity we were plotting mechanical movement using
>a small linear voltage generator tied to the motor shaft and
>other at the end of the mechanical long shafts.  You can scope
>the generator output and visualize perfectly how the mechanics
>answer to the motor. At certain high rpm, the stepper motor moved
>almost the complete step, then it came back to the original
>position.  The mechanical load, even somehow light mass and torque,
>at that acceleration for a single step it was more than what the
>motor could do, so, to the motor it was almost as if the load was
>locked down, the motor shake and backed up.

I think you are observing what I have seen described in an article
in Hewlett Packard Journal from the 1970's. The article describes
the design of an X-Y plotter, and how they used the proposed stepper
motor as a generator to see the waveform from the windings (presumably
with all the other hardware attached), and then using a ROM based
waveform generator to make the drive waveforms, containing harmonics
upto about the 3rd or 5th harmonic of the step rate. They found this
was the only way to get the motor to step fast enough to achieve the
desired pen speed.

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

More... (looser matching)
- Last day of these posts
- In 2003 , 2004 only
- Today
- New search...