OT: high power bipolar stepper drive

Go To Last Post
32 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi guys.. sorry for another off topic post.

Current project includes driving two nema23 bipolar stepper motors of 2.8 amps per phase. This application requires very smooth, quiet, low speed operation. I've been researching for a few days and I do not believe there is an off the shelf stepper chip that's going to meet those somewhat demanding requirements. I know the L297 can do half stepping, but I don't think it's enough honestly. I think an AVR sensing the current of each motor winding and chopping accordingly is the way to go. So with that in mind, I have some questions...

- Anyone have a project like this going?
- Any ideas on sensing the winding current that are a little more elegant than a sense resistor?
- Anyone ever tried "current ramping" like the linistepper uses?

I'm open to any suggestions and comments. Thanks guys.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Is it a 4 wire or 6 wire motor? How many ohms in the coil? I hear the way to do it is have a series R and use twice the volts.. the R keeps the hold current at about what the coil can handle, the higher volts gets the motor moving quicker. Rs get hot!

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Try this link, it might be just what the doctor ordered

http://www.futurlec.com/StepperMotorController.shtml

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,
I'm looking at the same project.
Have a look at the " Allegro Microsystems A3979 DMOS driver with Translator" Just Google A3979. I can't find a low MOQ supplier but this new rangeof chips require only two wire interface with the micro, Step and direction (and they are 16 step microstepping capable).

Hope this helps,

Roy

73's
Roy
VK5ASY

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Bob, its a 6 wire motor that can be wired either unipolar or bipolar. Unipolar is easier to drive IMO, but it gives lower torque. Thats why I'm trying to stick with bipolar drive. These motors are about half an ohm per winding, too little to get away with only double the voltage. Gotta drive them at least 12 volts or so.

Ignoramus, the L298 is only 2 amps per phase, 4 amps total. I've gotta have 2.8 amps per phase.

Well, attached below is what I have in mind. The AVR pulse width modulates the 1, 2, 3, 4 and enable lines. The filters after the gates convert that digital stream into an analog voltage so the MOSFETs are driven smoothly from saturation to cutoff. The whole idea being to move the motor as smoothly and quietly as possible. I hope I'm not off my rocker on this idea, but it has certainly happened before. Thanks for the input guys, always eager to hear from ya again...

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Roy, the A3979 as a whole is rated for 2.5 amps.. my motors are nigh 6 amps total.. its a nice chip, but it just isnt up to snuff for bigger motors.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I dont see what pwm has to do with it. You have 2 full h-bridge drives, but the coils are either on forward or rev all the time. When the polarity changes, it takes a step. So I started reading about 'chopper drives'... this link seems to have some good info content.. http://www.jrkerr.com/motors.html. I have used a bunch of the micromo steppers.. always had a problem stepping them at 200 steps/sec and faster... the datasheet had graphs talking about 'current mode' being able to steps 1000s of steps/sec. I get the idea that you hit the coil with a really big voltage to start the current building up, then cut it back. I guess this is the idea of the chopper drive??

Imagecraft compiler user

Last Edited: Sun. Sep 25, 2005 - 04:08 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

some tips: Use a compairitor with some hysterious for the chopper drive enables. Also prevents things going to hell if your UC locks up. as for current sense solutions, a wide range of dc hall sensore devices are out there, as well as highside current sense resistor amps

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Bob I dont think I explained very well what I meant. Instead of just taking a step, the motor would be (in a sense) "infinitely" stepped because phase current could be dialed to whatever you like based on the pwm duty cycle. Maybe I just don't need the filters, that could be the problem. I hope that is both what I'm trying to say, and what makes sense in the real world. Might be best to get some sleep right now...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Microstepping..... you put sin and cos on the coils (using pwm). I guess this makes it a synchronous ac motor. How many steps does the motor have? 1.8 deg/step? So if you do 1/16th step microstepping, it makes the deg/step that much smaller.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ezcomp.
Re: A3979

Sorry i missed that minor detail.
I am now trying to think of a method of using these chips to drive an ampilifer that might take your higher current!
I've written a few steppper routines that outputs a microstepping rate change (up to 256 steps) it works and does not use the apparent obigator " look up table" only pure math.

(re just pulsing the coils, rather see them as two speaker coils where one is ninty degrees out of phase. the feed in a slow High power sine wave in incermenting steps with respect to them in turn, it works like a dream, nice and smoth on a cnc mill!)

Roy

73's
Roy
VK5ASY

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

LMD18245 is 3A continuous/6A peak, 55V DMOS fullbridge, with internal chopper, resistorless current sensing and 4bit DAC, so even 10 microsteps per step should be possible w/o external hardware. The only drawback - price.
L6203 is 5A peak, 48V fullbridge. Only the power stage but much cheaper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Use two L298 in ||

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

RAS Young wrote:
Hi,
I'm looking at the same project.
Have a look at the " Allegro Microsystems A3979 DMOS driver with Translator" Just Google A3979. I can't find a low MOQ supplier but this new rangeof chips require only two wire interface with the micro, Step and direction (and they are 16 step microstepping capable).

Hope this helps,

Roy

I get most of my Allegro parts from Newark. They don't show the A3979, but they do list the A3980, sadly it has a leadtime of 39 days right now unless you want a reel of 4000.

http://www.newarkinone.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Gizmo, I have looked at the LMD18245 in detail. I almost went with it. I should have said this from the beginning, but I'm almost certain we will be moving to even larger motors at some point, so I'd like to make the design as future proof as possible. The L6203 looks like it can handle the current, but at $10 a pop, it has a downfall in that I can buy discrete parts for the same price or less and have higher current handling capability (less heat) and less output resistance. I'm not ruling it out since it does meet the requirements, but it does have some drawbacks.

Ignoramus, 2 L298 in parallel has much the same issues as the L6203 IMO. I haven't ruled it out entirely though.

Edit: Here is a re-updated schematic for anyone interested. One interesting point is that someone on another forum is telling me my logic configuration doesn't work, but I believe it does. Comments and criticisms welcome.

Attachment(s): 

Last Edited: Mon. Sep 26, 2005 - 07:53 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

I can buy discrete parts for the same price or less and have higher current handling capability (less heat) and less output resistance.

I don't necessarily disagree with you.

But we were pleased with Allegro solutions in a couple of apps. A wide selection of parts, and they weren't phantoms. Our design criteria were not "demanding" in pushing current or speed. Not being stepper experts, picking the appropriate Allegro single part met all our requirements and greatly simplified the circuit design process.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have to humbly suggest that the RC networks on the gate are a bad idea. This is supposed to be digital pwm with nice fast gate drive so no shoot thru overlap. The smoothing gets done in the ustep lookup table, not in the power amp. If these are really mosfets, maybe dont draw them as transistors? Confuses the old guys. I think you need diodes across mosfets too.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Ezcomp!
Try to see Motorola TD340 or IR3220s
Alexander,

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Johnday,
Thanks for the info.
ezcomp,
Could I, hummbely, suggest that you look at using the differential input pair @ x20 (eg ATtiny26) on the supply line, hi or low, with suitable protection and filtering, this will give you plenty of scope for current monitoing and also save another component, even a modest current will give a measurabel voltage drop over 600mm of power cable

Also the ATtiny 26 has a two pairs of PWM that are non over lapping (get rid of the AND gates. Whats your reason for using transistors instead of FETS (unless they are free!!)

Regards
Roy

73's
Roy
VK5ASY

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Changed to update the suggestions. They were MOSFETs all along, just never drew them that way... I happen to have some really nice logic level MOSFETs on hand, so I have not drawn any bootstrap circuits thus far.

Roy, I'm not sure I follow you on the differential input or PWM ideas. I'll have to read the datasheet for the tiny26 to understand.

Alexander, I will read the datasheets for those chips.

*made a tiny edit in the ckt

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Seems like 5V AVR and 5V gates and 5V logic level mosfets are compatible... but if VCC gets higher, then you need level shifters or bootstrap caps or something between the logic gate outs and the mosfet gates.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I bet I could find open collector AND gates and bootstrap them to Vcc that way

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Open collector will only be fast turning on. When it turns off, it will pull up slowly depending on the pullup resistor. The bottom trans needs pos gate to turn on (but thats the AND gate turning off), the top one needs the gate pulled down to turn on (AND gate turning on)... so I'd breadboard it before making a circuit board just in case we're all completely off base

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This will suck. Terribly. The mosfets will tend to operate in linear mode with the driver circuit oscillating.
You don't need the diodes as there are parasitic diodes already in the fets.
How do you want to achieve smooth low speed operation without microstepping? That's what you wanted IIRC. I'm not sure it will be possible even WITH microstepping. If you didn't try I'd recommend spending $100 to buy a geckodrive and see in the real life first.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gizmo, I know the mosfets will be in their linear region, that was the whole idea. I want the current to be a sine wave instead of a square wave. I don't *know* if that will give me the performance that I'm after but I read about a unipolar driver that does those two things, and the designer claims (for whatever its worth) that the performance is indeed very smooth. FWIW I dont think the idea sucks terribly, but I'm young and stupid so ...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK then. I thought Vref was constant and common to both bridges.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yeah and you certainly don't want to have the AND gates connected as drawn... either side of the bridge is non conducting when AVR pin HI, or crossconducting when LOW (current under threshold) or has upper transistor always on (current above threshold).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Its digital... it switches on and off at 20khz or whatever freq the program drives it.... its the WIDTH thats a sin wave... there aint no analog sine wave anywhere near the H-bridge. The mosfets are either on or off. if they dont have a nice fast square wave gate drive, they both turn on and they get hotter than heck and the smoke comes out.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Okay, I'm on the same page as you now Bob, I see why I was wrong earlier. I hadn't thought about shoot through, seems stupid now.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ezcomp,
sorry not to get back earlier.
This is tuurning in to a very interesting topic!
You may already have looked at the Tiny26 but for refference "Page 74" re Timer Counter1 aqnd PWM Mode, OC1A and NOT OC1A (PB0-1) & OC1B And NOT OC1B (PB2-3) you have the heart of a Stepper dirver. And to support Bobgardner (although he never really needs it) there is confusion when looking at PWM as an analog output. If you want a sine wave then push some table data out to a serial to DAC, but this wont help the FETS!
Just a note the faster you switch the FETS the hotter they get. Try and keep them as low as possible (most go for 20KHz to keep the switching out of the audio spectrum).
The differential ADC are VERY useful but need filtering!.
And sad to say you will get an annoying judder/hum with any Stepper system, all you can achive is to reduce these to a minimal level. Once you get it working its not to bad.
I use them on my Homebrew CNC and to drive 250Watt motors on my tracked robot.
Hope this helps and that i'm not "teaching granny to blow eggs"!

Roy

73's
Roy
VK5ASY

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Roy, its always appreciated. I'm a rookie and it shows alot of the time so I take no offense to the suggestions. I briefly checked the tiny26 datasheet and I follow you now, it looks like a great possibility. Lots left to figure out before I can even start breadboarding circuits and cutting code.. too many exams, not enough time!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hey guys, just an update on what I have been doing on this stepper drive. I found a chip I was okay with using, the motorola mc33887. It has 5 amp capacity and a current sense output so its really convenient and can handle one size larger motors than what I'm using right now. Plus its only like $7 from digikey.

datasheet here

I've been using eagle to design a board. This program is dreadful, but I'm slowly learning all the ins and outs. Pic of the board is below. If anybody has any advice about how they would setup the pin assignment between the AVR and the h-bridges I would be greatful. I'm considering bringing all important pins out to .1" headers just for SW development. If anybody wants the eagle files just let me know.

Thanks for any comments or criticisms...

Attachment(s):