LMD18200 driver for bipolar motor

Hi,
I quite confuse of what I really need to drive a bipolar stepper motor (3A phase) with the LMD18200 (11 leads from TI LMD18200 data sheet, product information and support | TI.com).
I installed it on the baseboard made by sparkfun on this purpose (SparkFun LMD1820x H-Bridge Breakout - BOB-00747 - SparkFun Electronics).
I also read the help on Arduino examples with Stepp Motor library (http://arduino.cc/en/Tutorial/MotorKnob), unfortunately they use another chip.
I made a wiki search and I haven't found anything that exactly combines all the stuff. There are some circuits with several condensers (necessary probably to pass the pick current) and some diodes (to avoid probably parassite current).
I wonder if somone already has a detailed circuit/code on hand that helps to controll LMD18200 from Arduino UNO rev3.
I hope this happens because it seems the chip is quite popular.
Thanks in advance for your help.

H-bridge chips are not intended for driving high current stepper motors. They are really intended for driving DC motors.

You need to get a proper stepper motor driver board that takes step and direction signals from the Arduino and has the ability to limit the current to protect the motor while driving it with a high voltage - 20, 30 50 volts. if you read the Pololu website about their A4988 driver board you will get the idea. HOWEVER the A4988 cannot provide 3 amps for your motor so you are faced with using more commercial drivers such as a Gecko. Try Ebay - search for 3amp or 5amp stepper driver boards.

If your project uses a few motors you can buy boards that drive 3 or 4 motors and that may work out cheaper.

...R

Firstly the LMD18000T is a single H-bridge, so you would need two of them, and secondly
that motor is for a current controllng chopper drive, not a fixed voltage drive.

For 3A motor you need a chopper drive circuit with discrete MOSFET outputs, there's no
single chip solution. Perhaps the a Gecko drive?

Though excellent, Geckos are pretty expensive.

For a relatively affordable driver (~$14/motor, 36V 3A), look at the Toshiba TB6560; there are plenty of cheap boards with them on eBay and some slightly better boards from online vendors.

You need to under stand Robin's comment about H-Bridges , dc motors and stepper motors. Do you understand WHY an H-BRIGE is not necessary for a stepper ? In order to understand this, you need to understand the difference in operation of a dc motor verses a stepper. A dc motor reverses direction by reversing polarity. A stepper motor reverses direction by energizing different coils in a specific sequence. Unlike a dc motor , a stepper motor requires power to maintain a motionless position . It must always have TWO coils energized at any given time . See the attached table for the sequence. To reverse direction , the sequence is executed in reverse order. That is the only difference in direction for a stepper. Note how the energized coils are 1 & 2, 2 & 3, 3 & 4, for CW motion and the reverse order for CCW operation. Using an H-Bridge isn't going to help you because it is designed for reversing POLARITY , whereas for a stepper , the POLARITY is ALWAYS the same. The ONLY thing that changes is the sequence. It is either moving in 1,2,3,4 order or 4,3,2,1 order. (with two windings energized at all times)

stepper motor coil sequence truth table.jpg

Careful now @raschemmel ...

That diagram refers to a 5-wire stepper. In 4 wire steppers (which are more common) there are only two coils and the current is reversed in them and they can be driven with a H-bridge - just not nearly as effectively as using a proper stepper motor driver board.

And, incidentally, most of the "proper" stepper motor driver boards can't drive 5-wire steppers.

...R

His motor has 6 wires (unipolar) but he is only using 4 so he still has to energize two windings at all times.
http://www.nmbtc.com/pdf/motors/17PM-K.pdf

I looked at the attached datasheet and I couldn't find any stepper motor application examples in the datasheet.

@Robin2,
I'm having a hard time wrapping my head around the idea of driving a stepper motor by reversing coil polarity. Perhaps because I am only looking at the electronics and not the magnetics. Is the principle that by reversing polarity the motor will turn by magnetic repulsion as opposed to attraction or vice versa ? I thought that a stepper motor could only work by attraction.

LMD18200.pdf (338 KB)

Before I bought some stepper motors I did some research. It didn't take long to discover that companies like Allegro know more about driving stepper motors than I will ever know so I decided to use an A4988 chip. Then I did a bit more research and discovered it would be a lot simpler still to buy a ready-made stepper motor driver board from Pololu.

Driving stepper motors with H-bridges is like eating spaghetti with a single chopstick.

...R

Driving stepper motors with H-bridges is like eating spaghetti with a single chopstick.

Not as bad as eating a peanut butter & jelly sandwich through a straw.....

I want to buy a couple of small cheap stepper motors and one driver board for software development purposes only . The motors will never have a load and I have 24V variable bench power supply.
Any cheap small motor will do since I only need to verify that the code works but I would like to be able to develop microstepping code as well.

What motors and driver do you recommend ?

raschemmel:
It must always have TWO coils energized at any given time .

Not true.

Are you referring half-step mode ? (see attached)

step-fig-4-1.gif

Ok guys thanks.
I'm not expert,it clear, so your comments raise some further questions.

  1. Likely, I misunderstood the documents I read. Expecially this:http://www.spickles.org/projects/lmd18200/
    It convinced me that the LMD18200 was enough to drive stepper motor.Is it referring to unipolar motor?
  2. Why I cannot use a H-bridge to control a bipolar motor? See:http://arduino.cc/en/Tutorial/MotorKnob
    It looks like that with a single H-bride you can controll a bipolar stepper motor. They use a Texas Instruments SN754410NE and I thought LMD18200 was its big brother.
    3)It is the example wrong ? If the esample is right, there isn't a chip instead of SN75441ONE that can run stepper motor with 3A per phase?
  3. If I have to use two H-bridges (I have 2 LMD 18200) can I sincronize them by the arduino board ?
    Thanks

PS: my motor has 4 wires

You have not provided a schematic of how you wired the chip or specified the power supply you are using to power the stepper motor or posted your code so there is not much we can do with no information other than your report that it is not working.
If you want to troubleshoot we can do that but you have draw a schematic by hand with pen & paper and post a photo of it.
Post your code. Tell us what you are using for a power supply, and we'll go from there.

Lots of confusion in this thread. A bipolar stepper motor REQUIRES two H bridges to drive it, but it also (unless it is a very low-power model with high winding resistance) also requires a current-control circuit. If you used an L298 as the H-bridge, you would typically use an L297 as the current chopper and step controller. I strongly recommend that you read the L297 datasheet in conjunction with the L298 datasheet (they are designed to work together), because of the understanding of (stepper) motor control it will give you.

The reason that a DC motor doesn't require a current-feedback chopper is that it has significant back-EMF while rotating. You don't need to control the current, because the mechanics of the motor kind of do that automatically: it will speed up until the back-EMF balances the supply voltage and the torque balances the current. A stepper cannot do that, so if you don't explicitly control the current then you will just overheat things.

If you buy a dedicated stepper controller like an A4988 or TB6560, the chip includes all three components: step-sequence control, current control and H bridges. Very convenient.

If you want to use the LMD18200 H-bridges to control your steppers, you can; you just need to provide an external circuit that does current control. You can do that very manually using a couple of comparators and a 555 or a flipflop or you could probably also make an L297 work for you here too. I haven't looked into the details so could be wrong about using the L297; I'm pretty sure it could be made to work though some external logic may be required to synthesize the LMD18200's DIR/PWM inputs from the L297's A/B/C/D outputs, and to make the current sense work properly.

You could also use an L6506 as the current controller, but you would still need to do your step sequencing manually, but that's not great chore. An L6506 just bundles up the comparators and flipflop that I mentioned in the previous paragraph.

raschemmel:
I want to buy a couple of small cheap stepper motors and one driver board for software development purposes only .

What motors and driver do you recommend ?

I have these motors and the Pololu A4988 stepper motor driver boards. The motors only draw 0.33 amps so they are well within the specs for the driver board and they have reasonable holding torque.

...R

polgia0:
2) Why I cannot use a H-bridge to control a bipolar motor? See:http://arduino.cc/en/Tutorial/MotorKnob
It looks like that with a single H-bride you can controll a bipolar stepper motor. They use a Texas Instruments SN754410NE and I thought LMD18200 was its big brother.
3)It is the example wrong ? If the esample is right, there isn't a chip instead of SN75441ONE that can run stepper motor with 3A per phase?
4) If I have to use two H-bridges (I have 2 LMD 18200) can I sincronize them by the arduino board ?

You can use a H-bridge to control a bipolar motor. You can also use a 1 inch paint brush to paint the walls of a house.

Stepper motors are very different from DC motors and they need specialied drivers to get the best from them. With a H-Bridge you are limited to using a voltage that doesn't cause excessive current in the motor coils. But that low voltage becomes a problem as the motor speeds up and the inductance of the coils prevents the coils from reaching their full current. A proper stepper driver can control the current so the motor is not damaged and thus can use a much higher voltage to overcome the inductance and get the coils to full voltage quickly. Also most of the proper driver boards include arrangements for microstepping if you need that. And they just need simple step and direction signals so the Arduino software can be much simpler.

...R

I ordered this:
http://www.ebay.com/itm/A4988-RAMPS-Pololu-StepStick-stepper-motor-driver-with-heatsink-Prusa-Mendel-/201084529309?ssPageName=ADME:L:OC:US:3160

and 2 of the motors you recommended.

@raschemmel, price looks good. And mine don't have a heatsink.

...R

Thanks to everybody and expecially Robin2 and Polyglot. Your explanations convinced me I was wrong thinking it was a simple circuit. I will check for the suggested drivers .
Regards

I know this is a little late(several years) joining the conversation but I was also trying to run a stepper motor with some LMD18200's that I had left over from an old project when i found this post. The datasheet clearly says the chip can be used for a stepper and THIS IS TRUE! However, I think the chip was mainly intended for use with a brushed dc motor (dir, pwm, etc).

To run a single stepper motor you need two LMD18200 chips and a way to control the outputs. I used a mega2560. The hard part is figuring out what digital inputs to send to get the right motor output states. The mapping is counter intuitive IMHO but the truth table describes it correctly.

Mine is working great and 'half-stepping' up to about 150 steps/sec without missing steps. Sorry for the poor video quality. Please let me know if you have any questions.

Video on YouTube: lmd18200 stepper - YouTube