Stepper motor question

Dec 15, 2003 15 Replies

This is an electricity question. There are two sides to a unipolar stepper, call them A-B, and C-D. In my case, I'm driving a motor with 4 n-channel low side FETs. The V+ is 24V and the motor is rated for 12V continuous.



This simple driver has no facility for regeneration or capturing energy from the inductive kickback. When driving full-step, this this stalls at a fairly low RPM.



Is there any sense in doing a make-before-break or break-before-make when switching phases A-B or between C-D? I've tried to figure this out but my basic electricity knowledge is pretty weak.



A B C D _______



1 0 1 0
1 0 0 1
0 1 0 1
0 1 1 0


would become



A B C D _______



1 0 1 0 (transition)
1 0 0 1 (transition)
0 1 0 1 (transition)
0 1 1 0 (transition)


Where transition would be one of


1 1 1 0
1 1 0 1
1 0 1 1
0 1 1 1

When you're trying to drive a stepper near or above its rated limit (I've forgotten the correct jargon), it's not a simple electricity question. Back when I was dealing with such things (nearly 20 years ago), the best info I was able to find was, IIRC, from the University of New Hampshire. It was a loose-leaf publication that filled a 3" ring binder with a great deal of calculus.

The difficulty is that as you increase the frequency, you are unable to couple much energy to the stepper coils, because of their high inductance. The basic trick is to raise the impedance of the source to the coils, as I recall, but there are many little tricks that come into play on the path to achieving the best coupling.

Obviously, from the performance of inkjet printers, the art has been reduced to solid science, but I'm not sure where to look for definitive references these days.

Bill Posted with XanaNews Version 1.15.8.4

Hi, If you break before make you get a half stepper. Steppers are much harder to drive than you would think. To get speed you need to use acceleration and deacceleration to stop it again otherwise it will lose steps and stall. You need to control the back emf from the motor in some way. Most simple drive use a diode across each coil half.

"Bryan Hackney" schreef in bericht news:nclDb.1105$ snipped-for-privacy@newssvr22.news.prodigy.com...

stepper,

The induction of the coils make the current start from zero and then rise to 24V/dc-resistance. When you go fast, the current is already switched off before it can reach maximum value.

So, if you want to go fast *and* achieve a high current through the coils, you need to start with a higher voltage. 48V, 96V, whatever it takes. But using high voltages cause problems when the speed is too low, as the current rises too much and overheats the motor.... more advanced stepper controllers use PWM to control the current, with a high voltage power supply. With simple drivers such as yours, speeds and torques are rather limited, alas.

Thanks, Frank. (remove 'x' and 'invalid' when replying by email)

Well, errr, that's probably why inkjet printers *don't* use steppers anymore. At least not for the printing head. An ordinary but quiet DC motor is used and the printing is synchronized with the head movement by an optical grating.

Meindert

Well, there you go. Shows that I'm out of touch with *that* technology, at least. Thanks for the info.

Bill Posted with XanaNews Version 1.15.8.4

I had a look at a cheap inkjet printer the other day at Sam's Club (I think it was around $40 or $50 US). There was a very thin and very flimsy ribbon of clear plastic (probably polyester) running the width of the carriage that was printed with a fine pattern of vertical lines. Hard to dignify it with the term "optical grating" but that was its function.

Best regards, Spehro Pefhany

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

Frank's answer is a good one. I would only add that since your motor is rated for 12V continuous, you can't drive the motor directly with

24V without some dropping resistors in series with the coils. Pick a resistor equal to the DC resistance of your coils and then you will get exactly 12V when stopped. But this not be optimal in getting started, where 24V would be really useful. To benefit from the 24V supply and protect the coils from burnout when stopped, use PWM to control the current. However, the benefit of 24V drive may not be as much as you might think. During the first part of the L/R time-constant, when a coil is first energized, most of the 24V will be applied to the coil anyway. It is only after a significant current starts to flow that the dropping resistor starts to reduce the voltage applied to the coil.

As far as unipolar phase sequencing, the most power will be found by using the full-stepping sequence that you gave:

Half-stepping is smoother, but a little weaker in average torque.

There is no benefit from having make-before-break, because coils A and B are magnetically just one coil. Exciting both A and B is just like exciting neither coil, as far as its effect on the torque. And exciting B before turning off A will not get you a head-start on the L/R time constant of B because A and B are inductively coupled, with no net magnetic field if both A and B are carrying current.

-Robert Scott Ypsilanti, Michigan (Reply through newsgroups, not by direct e-mail, as automatic reply address is fake.)

It's intermittent duty, so the rating is OK. In fact, the curves I have for torque for my selected motor are for a 5V motor driven with 40V.

That's what I thought...

Not much more insight today, except maybe a magic component ????. Perhaps opposed zeners (Vz > V+).

V+ | | | | Coil | ______________________ | | | |/| | L R |\| |______0)0)0)0)0)___/\/\/\/\____A_____|______| N-FET |_____GND | | | | | | | | | ???? | | | | | | | | | | | | |______0)0)0)0)0)___/\/\/\/\____B_____|_____| N-FET |_____GND |/| |\|

fake.)

>

What is it that makes it intermitent duty? That is normally insured by the controller, whose design you were discussing. Are you going to ensure that drive control is removed as soon as the stepper gets the desired position? Or are you going to interrupt the drive based on current feedback? In some applications it is necessary to keep some holding current flowing to keep the stepper from moving when it is supposed to be stopped.

It is typical for 5V motors to be driven by 40V supplies, but only by controllers that do ensure that 40V will not be applied when stopped. In fact, even if the stepper is moving slowly, the current could rise to damaging levels at each step if there isn't any feedback from current monitoring, or some other way to limit the duration of the applied 40V.

-Robert Scott Ypsilanti, Michigan (Reply through this forum, not by direct e-mail to me, as automatic reply address is fake.)

Exactly. It moves short distances infrequently. There is no holding current - a relay shorts all phases to assist in holding position.

I may be able to design a better controller or use a better one, but I'm stuck with this simple drive method for a while.

Hi, your shorting relay will have no effect on holding ability.

While shorting the coils may offer some resistance to the motor turning (where the motor acts like a generator), that resistance is dependent on speed. Very slow rotation of the stepper will see virtually no difference between the coils shorted and the coils open. It will do nothing to hold position.

-Robert Scott Ypsilanti, Michigan (Reply through this forum, not by direct e-mail to me, as automatic reply address is fake.)

My bench testing proves otherwise. I know what you are saying, but it does seem to provide a slight holding.

Rotate a free stepper _slowly_, and feel the detents. Now, short the phases and do the same, as slowly as possible. A single click between detents requires slightly more torque. This is from my perception, not from detailed measurements, but I believe there is a slight holding.

If you cannot accept this, I will try to perform some measurements, I I can figure out how.

Hi, yes that is quite so, but the motor is not holding is it?

Path: internal1.nntp.ash.giganews.com!border2.nntp.ash.giganews.com!border1.nntp.ash.giganews.com!firehose2!nntp4!intern1.nntp.aus1.giganews.com!border1.nntp.aus1.giganews.com!nntp.giganews.com!in.100proofnews.com!in.100proofnews.com!prodigy.com!newsmst01.news.prodigy.com!prodigy.com!postmaster.news.prodigy.com!newssvr30.news.prodigy.com.POSTED!not-for-mail From: Bryan Hackney User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.arch.embedded Subject: Re: Stepper motor question References:

In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Lines: 16 Message-ID: NNTP-Posting-Host: 24.26.255.45 X-Complaints-To: snipped-for-privacy@prodigy.net X-Trace: newssvr30.news.prodigy.com 1071596451 ST000 24.26.255.45 (Tue, 16 Dec

2003 12:40:51 EST) NNTP-Posting-Date: Tue, 16 Dec 2003 12:40:51 EST Organization: SBC
formatting link
X-UserInfo1: TSUGW]CE[BWABFD[LZKJOPHAWB\^PBQLGPQRJRQIMASJETAANVW[AKWZE\]^XQWIGNE_[EBL@^_\^JOCQ^RSNVLGTFTKHTXHHP[NB\_C@\SD@EP_[KCXX__AGDDEKGFNB\ZOKLRNCY_CGG[RHT_UN@C_BSY\G__IJIX_PLSA[CCFAULEY\FL\VLGANTQQ]FN Date: Tue, 16 Dec 2003 17:40:51 GMT Xref: intern1.nntp.aus1.giganews.com comp.arch.embedded:182266

CBarn24050 wrote:

Here's my 2 cents worth. Zowie! 40V on a 5V motor, That may be a bit much. The way I understand it is that when the mosfet first turns on, the current the current in the winding will ramp up in fairly linear fashion until it reaches the maximum defined by the supply voltage and the winding resistance. In order to get the motor to move as quickly as possible you need to get the current to reach the maximum rated current as quickly as possible. The rate at which the current ramps up is defined by the law of inductance. V=L(di/dt) where V is the applied voltage, L is the inductance, di is the change in current, and dt is the time that the voltage is applied. You can rearrange the equation slightly to di/dt=V/L, where di/dt represents the rate of increase in winding current. Since L is fixed by the motor winding the only way to increase di/dt is to increase the applied voltage. The problem is that with a high supply voltage the current will reach an excessively high value if it is left applied too long. That's where the current limiting resistors can help. For example, with a 5V 1A rated motor running with a 40V supply you would need a limiting resistor of (40V-5V)/1A = 35 ohms in order prevent burning out the windings or demagnetizing the magnets. It works better to run the motor with a higher voltage and limit the current with a resistor because when the voltage is first applied (mosfet turned on) the inductance will prevent any current from flowing. With no current flowing there is no voltage drop in the limiting resistor which results in the full supply voltage appearing across the motor and from the law of inductance we know that this will result in the current ramping up at a higher rate. As the current starts increasing the voltage drop across the limiting resistor starts increasing resulting in the voltage across the motor decreasing. The net effect is that di/dt starts out very high and decreases as the voltage across the motor decreases. A much better method is use use an active current limiter. An active current limiter will maintain the full 40V across the motor until the current reaches the maximum set in the limiter. This will yield much better results than a simple resistor since the rate of current rise will be very high right up to the point where the current reaches maximum. Yes, shorting the windings will make it very slightly harder to turn the motor, but even a small holding current would be better. I don't know if it's done, but I would think some type of foldback limiting might be useful for supplying a smaller than maximum rated curent for holding the motor position.

Mike

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required