1. This forum section is a read-only archive which contains old newsgroup posts. If you wish to post a query, please do so in one of our main forum sections (here). This way you will get a faster, better response from the members on Motherboard Point.

Stepper motor question

Discussion in 'Embedded' started by Bryan Hackney, Dec 15, 2003.

  1. 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
     
    Bryan Hackney, Dec 15, 2003
    #1
    1. Advertisements

  2. 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.
     
    William Meyer, Dec 15, 2003
    #2
    1. Advertisements

  3. Bryan Hackney

    CBarn24050 Guest

    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.
     
    CBarn24050, Dec 15, 2003
    #3
  4. 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.
     
    Frank Bemelman, Dec 15, 2003
    #4
  5. 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
     
    Meindert Sprang, Dec 15, 2003
    #5
  6. Well, there you go. Shows that I'm out of touch with *that* technology,
    at least. <g> Thanks for the info.
     
    William Meyer, Dec 15, 2003
    #6
  7. 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
     
    Spehro Pefhany, Dec 15, 2003
    #7
  8. Bryan Hackney

    Robert Scott Guest

    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.)
     
    Robert Scott, Dec 15, 2003
    #8
  9. 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
    |/|
    |\|
     
    Bryan Hackney, Dec 16, 2003
    #9
  10. Bryan Hackney

    Robert Scott Guest

    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.)
     
    Robert Scott, Dec 16, 2003
    #10
  11. 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.
     
    Bryan Hackney, Dec 16, 2003
    #11
  12. Bryan Hackney

    CBarn24050 Guest

    Hi, your shorting relay will have no effect on holding ability.
     
    CBarn24050, Dec 16, 2003
    #12
  13. Bryan Hackney

    Robert Scott Guest

    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.)
     
    Robert Scott, Dec 16, 2003
    #13
  14. 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.
     
    Bryan Hackney, Dec 16, 2003
    #14
  15. Bryan Hackney

    CBarn24050 Guest

    Hi, yes that is quite so, but the motor is not holding is it?
     
    CBarn24050, Dec 16, 2003
    #15
  16. Bryan Hackney

    Exador Guest

    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: <WXFDb.1209$>
    <>
    In-Reply-To: <>
    Content-Type: text/plain; charset=us-ascii; format=flowed
    Content-Transfer-Encoding: 7bit
    Lines: 16
    Message-ID: <DsHDb.354$>
    NNTP-Posting-Host: 24.26.255.45
    X-Complaints-To:
    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 http://yahoo.sbc.com
    X-UserInfo1:
    TSUGW]CE[BWABFD[LZKJOPHAWB\^PBQLGPQRJRQIMASJETAANVW[AKWZE\]^XQWIGNE_[[email protected]^_\^JOCQ^RSNVLGTFTKHTXHHP[NB\[email protected]\[email protected]_[KCXX__AGDDEKGFNB\ZOKLRNCY_CGG[[email protected]_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


    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
     
    Exador, Dec 17, 2003
    #16
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.