Modular Microstepping Stepper Motor Driver feasability

hey everyone, so I'm designing a project that requires some precise movement via stepper motors. Before continuing i'd like to address some of priorities for the project:

  1. In building the driver electronics i do NOT want to by an all-in-one chip. I'd like to learn as much as possible throughout the project, while keeping on a reasonable time line. For this reason I want to attack the stepper motor driver on a modular level. I thought about using lower level components even, but it would throw me way off my intended finish date. But segregating different function to different chips will make it fun to design my own software architecture and probe around with a scope.

  2. I'd like to either microstep 1/8 or 1/16. That being said, I dont need to move extremely fast. More to come about my motor/load setup so far.

  3. Constant chopper current driver. Because, well, efficiency, and microstepping ability.

Motor/Load info.

I admit i haven't done as many calculations as i originally wanted to, but i'm willing to approach the motor on a test basis. I do know that my load will require be about 16-25 ozin of torque. Since microstepping will quickly bring down my torque to overcome load friction, i've chosen a bipolar stepper rated for 51ozin. I took into account my low speed and microstep size to get that hold torque rating. Might be a bit overkill, but if i do plan to microstep down to 1/8th it'll be on the money. I chose a .9 deg/step res, because in my application, the higher res the better. It's rated for 9A/phase

Stepper motor selection

Driver info

Disclaimer, The picture of my eagle schematic is a very rough draft, mainly a block diagram, chips will change, and values haven't really been put inn yet.

I want to put about 8 times the voltage that will get me .9A/phase through the chopper driver for good ramp times. This means about 45 volts.

The driver starts with a dual DAC that will get signals for an arduino. It will follow the sin/cosin drive patterns, and my lookup tables will be in the code for me to switch resolutions. Then that stage moves to a voltage comparator that compares the DAC value with the current sense value of my classic L298n dual full bridges. The diodes on the phases will be fast switching schottkys.

In case picture doesnt work on post click here

My questions for you guys:

  • Do you see any foreseeable issues with my attack strat. on the driver?

  • Will the L298n handle the the high switching times that microstepping requires? (I know it's dependent on my speed and resolution, but just to gain a note of feasibility.

  • Should i try to rig up some type of RAM to not bog down the arduino processor with outputting all the serial data to the DAC

  • I've read a bit about how inductor pushes the current after the switches shut down, and that's why we need the diodes. But that means the currents flows through the power supply. Do i need a capacitor somewhere? And what's a safe power supply to use.

I guess that's all for now. Let me know what you think! thanks!

  • Do you see any foreseeable issues with my attack strat. on the driver?

What sort of training have you had in EE and semiconductor circuit design?

  • Will the L298n handle the the high switching times that microstepping requires?

No. No one uses that ancient technology in modern designs.

Microstepping is not intended for precise positioning, and doesn't work well for that purpose. See http://www.micromo.com/microstepping-myths-and-realities

I've read the article before, that's why I chose the motor I did. I should be able to get down to 1/8 step resolution.

On the L298n datasheet it says chopper drives are an application, and the switching times are just a couple microseconds. Why couldnt it handle it? Would there be a good replacement?

Before embarking on a design project like this, it would be good to familiarize yourself with what has already been done.

Stepping motors are current-controlled, not voltage-controlled. You might read through the datasheets and technical notes for some of the Allegro or TI chips to get an idea about how the designers approached the various complications.

To determine whether microstepping will actually meet your precise positioning requirements, you should buy a microstepping driver and see how that works out in the actual application.

Not sure if you’ve seen it before, but i’m making one of the vertical drawing/plotting machines. Just two stepper motors that hold a pen pritty much. It’s been done before well with the steppers, so I’m confident that the application is fine. I don’t need absolute position accuracy more delta resolution.

I have done some research, and totally recognize the current controlled nature of steppers, that’s why i’m going after a constant current design.

What part of that overall block diagram doesnt work?

the shape of the signal is important. make sure your scope has the resolution to make sure your pulse is not sloppy

address mid-band resonance.

http://forums.parallax.com/discussion/139086/stepper-motor-midband-resonance-compensation

My system would be closed loop current monitored, even if i do hit mechanical resonance areas, I'm always sensing the current and running it through a comparator with my desired current, which in turn toggles the enable pin on my H-bridge. I won't be running it on open loop PWM signals. Do you think the comparators would be too slow to see the big spikes in current?

test your pulses on a scope to see how clean they are.

for drawing the mass of the gantry might be sufficent to make the movement appear to be fluid. the pulse generation, timing (spacing) is on the controller side. the cleanness of the pulse is more on board layout and selection of FET's.

all of this may be un-necessary, and if your gantry speed is not fast, you can eleminate a lot of problems by going to a screw drive or larger gear ratio's.

amp625: 1. In building the driver electronics i do NOT want to by an all-in-one chip.

Make sure you carefully read the datasheets for some of the all-in-one chips so you know what capability they have - for example the Allegro A4988 datasheet. The ability to detect and limit coil current is the key to being able to drive the motors effectively with a high-voltage power supply.

If you already know enough about electronics to identify shortcomings in the existing commercial products and wish to design a better product - the best of luck.

The fact that you mention an L298 suggests to me that you do not fit that description.

In that case, and sorry to be blunt, what you are doing is a complete waste of your time and money. It would the equivalent of re-inventing the square wheel.

...R

My proposed design is all about limiting current!!!!

So far no one has told me why the L298 does not fit my description. Can someone actually impart knowledge instead of scorn my efforts to learn?

amp625: My proposed design is all about limiting current!!!!

Are you planning to measure and limit the current many times in the course of every single step or microstep ?

So far no one has told me why the L298 does not fit my description. Can someone actually impart knowledge instead of scorn my efforts to learn?

The L298 is old technology. It does not use Mosfets and has a high internal resistance that wastes energy.

...R

So far no one has told me why the L298 does not fit my description. Can someone actually impart knowledge instead of scorn my efforts to learn?

Compared to MOSFET H-bridges, the Darlington configuration used in the L298 is slow to switch and drops 2-4 V internally, which is wasted as heat. It also has an upper current limit of about 1 ampere steady state before the internal thermal overload circuitry starts shutting down the driver. I can't imagine why you would want to start with that.

First of all, thanks to all for the replies, I'm not trying to difficult or argue, I just want to learn.

Are you planning to measure and limit the current many times in the course of every single step or microstep ?

Microstep

It also has an upper current limit of about 1 ampere steady state before the internal thermal overload circuitry starts shutting down the driver

Would have max .9 amps through it

L298 is slow to switch and drops 2-4 V internally

Max speed = 60rpm

60 rpm = 1 rev/s with my .9 deg/step stepper i get 400 steps per rev

so 400 steps/second -> 2.5 ms/step

Each microstep is 1/8 of a full step so 2.5ms/8 = 312 us/microstep

from the data sheet, the switching time should not accumulate to over 5us, so for .01% of my microstep time each current rise and fall through a phase will undershoot or overshoot the median value a bit, just like any chopper drive, Seems fine to me.

And with my 45 v supply, a loss of 2-4v wouldn't hurt my ramp times significantly

I get that it's not the most efficient full bridge, and maybe i'll switch to a pair of mosfet fullbridge chips like the A4957. But it seems that the L298 still works here. I totally want to know if i'm wrong, so tell me!

And with my 45 v supply, a loss of 2-4v wouldn't hurt my ramp times significantly

Motors inject spikes into the power supply, so the general rule of thumb is that the motor power supply should be at least 10 V less than the absolute maximum input voltage of the driver, which for the L298 is 50 V.

amp625:

Are you planning to measure and limit the current many times in the course of every single step or microstep ?

Microstep

I can see now that my question was poorly worded. What I meant to ask is Are you planning to measure and limit the current many times in the course of every single microstep

If each microstep lasts 323 µsecs that will require some very fast sampling.

As a separate comment. I think you need to design your device to be able to operate at twice the intended speed to give a margin for error.

...R