Connect with us

Stepper motor driver with less noise?

Discussion in 'Electronic Design' started by Joerg, Jul 9, 2007.

Scroll to continue with content
  1. Joerg

    Joerg Guest

    Hello Folks,

    Fixed a noise problem at a client last week. When I arrived at a stepper
    motor driver I could not believe what I saw. It was a A3984
    microstepping driver chip from Allegro with the two H-bridges built in.
    Fixed off-time, but the on-time was flailing about at a jitter of at
    least 30%. This caused very wideband phase noise. Their layout is pretty
    good, the supply is clean. Ok, we were able to reduce that jitter down
    to 15% by stretching the off-time but the datasheet has no spec how far
    you can stretch and eventually it'll quit. I was not too enthused about
    the specsmanship, to say it mildly. Asked app engineering about the
    off-time limits and they couldn't tell ....

    Long story short this gets designed out and we'll roll our own, as
    usual. Curiosity question: Are there any microstepping drivers that are
    not that noisy?
  2. john jardine

    john jardine Guest

    Over time I've tried maybe half a dozen driver chips. They were all noisy.
    It's the current ramps where the problem is. SMPS' can be jittery at low
    currents and steppers are double worse, with two ramps at work and both
    throwing transients across to each other.
    Yes. Best to roll your own.
  3. Don't know of any, but to me it would seem they should have added a
    way to filter the current sense node to provide the correct feedback
    stabilization when different motors and voltages are used. Won't a
    compact solution like this always be a overly worst case design?


  4. Guest

    The data sheet talks about regulating the on and off times with a one-
    shot. All the monostable circuits I know about involve some kind of
    comparator looking at an analog ramp, and the comparator is obviously
    going to be sensitive to noise on the ramp and the voltage reference.
    You can minimise the external contributions to this noise, but with a
    single chip solution you are stuck with the chip-designers layout
    inside the chip - a chip that is switching the same drive current that
    is running through the motor.

    I'd be much happier with a chip that used a digital delay
    generator ... Naturally, I've never heard of one.
  5. Joerg

    Joerg Guest

    Adding a cap across the sense resistor was about the only thing the app
    engineer could imagine would help but it didn't. The feedback loop is
    all internal. According to him the other drivers from Allegro are all
    similar, the main difference being extra control features.

    And yes, being a compact solution might just as well be the problem
    here. We were only drawing a few hundred mA but still there are eight
    large FETs on the same die as the control circuit. This is also a reason
    why I am not a fan of fully integrated switcher chips (plus the fact
    that there usually isn't a 2nd source).
  6. Joerg

    Joerg Guest

    Yup, that's about how they all operate. It can work but only if the chip
    designer is very experienced with noise mechanisms. Some things have to
    be done differentially and I am afraid they weren't. The mono-stable
    seems kind of ok but the comparators are probably the ones where their
    thresholds are flopping about.

    On that project we'll have one pretty soon. It'll be quantized but that
    is much better than such gross jitter. I guess that once the client has
    seen the first "homemade" controller work they'll kick out all the other
    microstepping driver chips as well. All you really need is an FPGA with
    some space left on it and a few vacant pins. Or a uC that has an unused
    timer with at least two CC registers.
  7. Joerg

    Joerg Guest

    I guess you are right, there just may not be an easy way out. I wonder
    why the self-rolled SMPS or motor controllers are quiet and many chips
    aren't. Maybe because the power devices are one the same die.

    OTOH those driver chips are not cheap so a roll-your-own session brings
    about a nice BOM cost reduction.
  8. I can't remember the details, right now, but I had lots of
    trouble producing a stable, quiet operation from a two phase
    Allegro driver chip, once I increased the clock frequency
    high enough that the fundamental should have been inaudible.
    The problem centers around the low di/dt over the short
    current control cycle, so the regulation rattles all over
    the place and sub harmonic operation ensues. I solved the
    problem by impressing a small triangle wave on the current
    sense reference that had slope opposite to the motor current
    wave, so that, even though the motor current varied little
    each cycle, there were clear current limit signal crossings
    each cycle, keeping the current control stable. In effect,
    the impressed triangle wave lowered the gain of the current
    limit control loop. This eliminated all the sub harmonic
    jumping around and the motor went completely silent when
    holding position. If anyone is interested, I'll dig up the
  9. OTOH those driver chips are not cheap so a roll-your-own session brings
    I't doesn't lower the total cost so much.. Relatively cheap stepper motor
    controller costs only ~3e (4$) in reasonable quantitys. For example, the
    cheapest ones in New Japan Radio NJM377x-series.

    And to do it in discrete components, you'd need.. Components for 2
    H-bridges, their drivers, logic, switch mode current limit, etc. And the
    cost of pcb space and installing all those discrete components. Not to
    mention the designing cost.

    As long as cheap controllers are suitable for the job, they seem to be the
    easiest and cheapest way to go. I know, there are much more advanced and a
    lot more axpensive chips around. And applications where cheaper controllers
    just aren't good enough.

    However, as a hobby project, discrete stepper motor controller/driver would
    be great.
  10. Joerg

    Joerg Guest

    That is interesting. However, the ramp would have to be synchronous to
    the end of the off-time and my impression was that this driver did not
    always have them coincide for the two bridges yet there is only one ref
    pin. The internal schematic shows that the oscillator feeds both
    branches but the scope didn't corroborate that. Who knows.

    In this case we'll just chuck them and roll our own. Then we know it'll
  11. Joerg

    Joerg Guest

    Yes, but the problem is that the noise pollution it is spewing around is
    so bad for this circuit that we must abandon it. If they would contain a
    proper PWM, meaning not much jitter, I'd agree.

    You can use cheap gate drivers for H-bridges but I have suggested to
    that client to consider unipolar steppers. Then all you need is a bunch
    of <10c FETs or a cheap ULN driver. The rest is going to be inside
    programmable logic.

    And applications where even the "good" controllers aren't good enough.
    That is kind of my domain, where standard stuff doesn't cut it and a
    roll-your-own solution with better performance is required. IOW that's
    when my phone rings ;-)

    Not just for hobby. In production there is a huge incentive to live with
    standard discretes. It greatly reduces the chance of a line stop if for
    some reason the fancy chip slips in delivery schedule.
  12. bru

    bru Guest

    I've used the NJP 3961/3770 's driving bipolar stepper motors in
    industrial printers (32 microsteps / fullstep) in production for years
    and the Allegro A3979SLP-T recently in the same application. No
    problems with FCC class A radiated or conducted. Allegro's are low
    cost, run cool, tiny, low parts count.

    Just my 2 cents....

  13. Joerg

    Joerg Guest

    Well, sure, because raggedy PWM cycles will distribute the EMI across a
    huge swath of spectrum. It works like artificial clock dithering in PCs
    to make them pass. But when you have to build a system that contains a
    sensitive receiver in a certain band this doesn't work.
  14. john jardine

    john jardine Guest

    Interesting. I'm having trouble visualising it. A pic' would be worth a
    thousand words!.
  15. A few more words, first:

    At the beginning of each clock cycle, the the reference
    voltage is compared to the amplified current measurement,
    and if the current is less than the reference, the output
    switch is turned on, till the current exceeds the reference,
    at which time the switch is turned off. If the clock is run
    at a low frequency, relative to the di/dt for the motor and
    supply voltage, this results in a single voltage pulse per
    clock cycle, if there is enough voltage to pass through the
    setpoint current cleanly in half the cycle or less, with a
    nice big current sawtooth passing the reference twice per
    cycle. But with a high frequency clock (an ultrasonic
    frequency) the motor current changes almost none at all
    during a clock cycle, so you get multiple clock cycles of on
    time (with one truncated cycle at the end that is just
    noise), followed by multiple clock cycles of off time, as
    the current falls below the reference.

    By adding a small clock cycle triangle to the reference
    voltage, so that the reference peaks high, just as the
    cycle starts, and falls through most of the cycle, a short
    and variable power pulse is produced, less than a clock
    period, that maintains the slowly changing motor current
    somewhere through the middle of that reference triangle
    wave. In effect, the gain is lowered from infinite (bang.
    bang control) to a lower proportional gain (inverse to the
    amplitude of the impressed triangle wave) that stabilizes
    the control loop, even though the motor current time
    constant is many clock cycles.
  16. I't doesn't lower the total cost so much.. Relatively cheap stepper motor
    Oh, in that case it would make sense to make own controller. Or pay more for
    some advanced controller.. Most of the simple and cheap controllers use RC
    timing network, which isn't accurate.
    With unipolar steppers, it is allmost too easy.. Too bad, they don't give
    the maximum power output from stepper motor.
  17. Joerg

    Joerg Guest

    RC networks can work well, that is how I do my own stepper circuits and
    switchers. The problem is their comparator for the current ramp that is
    flopping all over the place. Maybe because it has to share the die with
    the H-bridges. I guess it's like trying to listen to Mozart while in New
    York City during rush hour.
    Mostly we don't need power. For really good and reliable torque without
    skips most integrated controllers aren't that good anyhow because you
    have to operate with variable clock. If you have to do that externally
    you might as well build it all, and properly. That's what we are going
    to do now.
  18. Sort of like the slope compensation used in current mode converters to
    remedy the subharmonic problems and noise sensitivity at low ripple
    currents (see Unitrode U-97)


  19. john jardine

    john jardine Guest

    Thanks John. Good words.
    I've enough now to try out on my stepper driver model.
  20. Yes, I think so. Thanks for pointing this note out.
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.
Electronics Point Logo
Continue to site
Quote of the day