H-Bridge and Steppers
I have a basic question about driving a stepper with an H-bridge. I want to use just PWM or duty-cycle to control the sinusoidal current (no digital to analog converters). This seems to work for servo controllers that I have looked at, so I would think that it would also work for steppers, except you need two bridges.
My main question is: Can I use a setup like the attached schematic? One side of each bridge will always be on (excluding shoot through blocking and current chopping). So if I want to drive one coil at X %, it will be energized in one direction for X % of the time, and in the other for 100-X % of the time. Will this work? Will it be driving the motor too hard or I should really turn off the other side of the bridge?
Second point: If I never turn off the other side and want to drive one coil at 70%, it seems like I need to adjust the percentages so that the net result is 70%. Something like 77% “on” one way and 23% “on” the other would result in 70%. Kind of like vector math.
(77-23) / 77 = 70.1%
This has been driving me nuts,
Its been my understanding that stepper direction control is done by the TIMING seqence, not the reversal of current.
H bridges reverse the current flow in a motor so as to reverse motor rotation.
Seems to me that a proven method of driving steppers should suffice for microstepping. If you using the H to avoid having to run a bipolar supply or to pull more current than fully integrated IC's are capable of providing, that's another issue altogether.
Thankfully, the development of UC3717's and similar IC's eliminate the need to develop discrete component based timing/drive circuits for steppers
Try the UC3717 or the UC3717 feeding an L298. You should be able to find application notes for both on the TI/Unitrode website.
Caution: we got into trouble with huge and repeated inducted voltage problems when we tried to use PWM to controled fet driven solenoid driver as opposed to "hit hard then fold back" with a darlington.
I wouldn't get too creative with PWM - it isn't suited to do EVERYTHING, especially when it comes to current regulation of highly inductive loads....
If you reverse the voltage across the coil when chopping, you are in fast decay mode - very good for reducing the current quickly but causes a large ripple current (heat).
A better way is to vary your chopping reference to set the drive level.
PWM on an inductive load is not all that bad - you need to pay attention to recovery times and dI/dT
Torque is function of current flow - the greater the current flow the greater the torque. As speed increases, the time to allow adequate current to flow decreases.
Interesting dillema = torque has to drop as speed increases or the inductance factor has to change so that the dI/dT factor doesn't go nuts. With a given coil/volts per turn/iron factor inductance isn't going to vary much so what choice do you have as speed increases???
If you reverse current to increase the decay, fine but then you have heat (not a polarity sensity entity). Heat messes with conductivity as well as inductance to the detriment of both. When you add shoot thru protection time becomes even less available - ergo more dI/dT issues. Seems to be an ever more vicious circle of decay.
Eventually you run out of time or you simply chop back the current to the point where you don't have enough torque for the motor to keep itself running let alone power something else.
And the purpse of the H bridge with a stepper is to what benefit all things considered??? The complexity factor alone would be a major disuader, no???
I don't think you can ultimately fool mother nature, even with fancy and/or complex electronics. The automotive boys run into these issues with attempts to PWM the current on EFI injector coils. Their fancy schemes to dissipate the induced voltage/currents in the injectors do work but have not demonstated adequate robustness versus good old fashion resistive limitation of current as opposed to PWM's or current fold back via semi-conducting darlington drivers.
PWM ultimately does have it's limitations.... Like you say, pay attention to dI/dT with heavy emphasis on T and I at high speed.
Thanks for your posts. I appreciate all the help I can get.
I think I finally get it (the question I was trying to answer). I was sending the PWM signal into the IN pins of my FET drivers and the current chopping signal into the ENABLE pins. This would limit the current to the preset level, but causes the bridge to reverse current every time the PWM signal transitioned. The net effect was that if I wanted to point the rotor straight up, I would set one PWM to 100% and the other to 50%. This didn’t seem right but I was looking at examples of these type of drivers used with PWM.
I now have turned my thinking all around. I will AND the PWM with the current chopping signal and direct this to the ENABLE pins, and just use a select signal to select which cross bridge I want on and leave it on until the next phase through the IN pins.
I am really just trying to do this to learn and play. I am aware (I think) of dI/dT concerns. I don’t plan to go crazy with the amperage. Many of the comerical controllers use discrete bridges, so they are not that un-common. I thought I would give it a try on a smaller scale, say up to 4 or 5 amps. I have tried and failed before, but chalk it up to a learning experience.
Has any one done PWM with steppers?
NC_Cams, the UC3717 is obsoleted by TI who bought out Unitrode.