586,512 active members*
3,466 visitors online*
Register for free
Login
IndustryArena Forum > CNC Electronics > Stepper Motors / Drives > Unipolar Chopper Drive Problems
Page 1 of 2 12
Results 1 to 20 of 24
  1. #1
    Join Date
    Jun 2004
    Posts
    14

    Unipolar Chopper Drive Problems

    Hello,

    I have been working on and off on a simple unipolar chopper drive. I am using at atmel atmega48 microcontroller and irl530 mosfets. The motor I am using is a Vexta 6 wire 2 phase motor rated at 1.2 amps and 6 volts. I am using a 24 volt power supply.

    The problem I am having is when chopping the torque is incredibly low. If I run the driver without chopping everything is fine. I am chopping at about 20 kHz with a current limit of 1 amp. So the reference voltage is 100 mV. I have an oscilloscope and I can see the chopping when looking at the voltage across the sense resistor. As far as I can tell it looks ok, with the current rising to my limit ans shutting off for about 50 us. I am running the motor at no more than 100 rpm.

    I am able to run in half step and full step with no problems without chopping enabled.

    I did have some noise problems, looked really bad on a scope, but was able to take care of that with a couple of 100nF capacitors. The step signal is clean and so is the reference voltage.

    I have attacted a partial schematic of the circuit I am using. The rest of the scematic is just the microcontroller. The gates of the mosfets are being driven directly from the micro. I know I don't need the 1 ohm resistors, that was a mistake on my part.

    Any Ideas?
    Attached Thumbnails Attached Thumbnails chopper2.jpg  

  2. #2
    Join Date
    Jun 2004
    Posts
    463
    One problem with your circuit is the 220ohm pull-down resistors. These need to be much higher, on the order of 5k to 10k. With 220 ohms you will be limiting the gate voltage to about 4 volts, and limiting the drive current to the mosfets. Don't know if this is causing your problem, but it will limit gate drive and cause longer switching times.

    Also, you do need the series gate resistors (r1,4,7,10) but they should probably be more like 25 to 50 ohms. These resistors have two purposes, to suppress ringing, and to protect the AVR from excessive current while charging the gate capacitance.

    You say you run without problems without the chopping enabled. When you disable the chopping, what are you doing to limit the current to the motors?

  3. #3
    Join Date
    Jun 2003
    Posts
    3312
    As well as what Jeff noted, my 2 cents. Most likely it's a software issue. But starting with the hardware, driving IRF530's directly from the Mega48 isn't a good idea on several fronts. If you want to drive from logic, pick a logic compatable MOSFET. IRLZ.... or some of the Fairchild or ST logic level's, other wise stick a mosfet driver inline.
    Second, is there a reason you have all 4 phases sensed individually? Assuming your comparitors are off to interrupts on the M48, if you do your off time in code, it is quite feasable you could be periodically adding 50us x 4 for a 200us dead time. Most "COTS" designs combine the same coil when current sensing.
    Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
    Vist my websites - http://pminmo.com & http://millpcbs.com

  4. #4
    Join Date
    Jun 2004
    Posts
    14
    I know it's hard to tell from the poor schematic, but I am using logic level mosfets. I am using IRL530N's.

    I must of been thinking of it incorrectly, I figured I would want the resistor on the gate to ground to be small so that the capacitance would discharge quickly. I didn't figure it would discharge through the micro, but I guess that makes sense. I did see some major ringing when looking at the voltages with the scope. I will change that and see if it helps. When I check the voltage at the gates of the mosfets I'm getting about 4.5 volts. I ran the motor for over an hour not using the chopper and the mosfets don't even get warm.

    When I don't use the chopper I lower the voltage and use a 10 ohm series resistor to get the current to 1 amp. I was able to use full and half stepping with no problems.

    I used seperate sense resistors for each coil because I was concerned the wattage was to low for each of the resistors. I know I could of paralled them, but I had the comparators and figured it didn't really matter. I also didn't want the sense resistance to low.

    Thanks for the help.

  5. #5
    Join Date
    Jun 2004
    Posts
    14
    OK,

    I added 47 ohm resistors from the micro to the gate,and 5.1k resistors from the gate to ground. This seemed to help quite a bit. The torque increased and the motor ran better.

    I read in another thread that the diodes from drain to motor supply are not necessary. I added them because when I tried doing this before, I kept blowning mosfets and was told I needed them. When I removed the diodes, the torque increased dramatically and the current waveform looked great.

    After about 30 minutes of running it stopped stepping and started "stuttering", i found one mosfet not firing. I'm not sure what happened but I am not getting any voltage out the micro on that pin. I will try removing the mosfet and seeing if I blew the output on the micro and/or the mosfet.

    Any suggestions on the diodes? It seems to run much better, except for blowing mosfets of course.

    Again, thanks for all the help.

  6. #6
    Join Date
    Jan 2006
    Posts
    121
    Hi James,
    You might try adding a 5.1V zener from each of your micro port pins to ground. It's supposed to protect your ports if you blow a FET. This comes from

    http://www.cs.uiowa.edu/~jones/step/

    specifically

    http://www.cs.uiowa.edu/~jones/step/...s.html#practvr

    Jon

  7. #7
    Join Date
    Jun 2004
    Posts
    463
    You definately need flyback protection of some kind. Without the diodes, there is nothing to limit the flyback voltage, and it can reach thousands of volts. It will destroy the mosfets and possibly feed thru to the micro and destroy the output pin.

    However, I believe the diodes are the reason for your lack of torque. I am not that familiar with unipolar drives, but I think the problem is that the two windings of a phase act like a transformer. When you pull one end of a phase low, the un-driven end tries to go an equal amount above the motor voltage. The diode however keeps it from going more than a volt above the motor supply voltage. This is just like a transformer with a shorted output and will pull high current from the driver. If you replace the diodes with zeners, it will let the undriven end go higher than the motor voltage, but will still clamp the very high flyback voltages. You just need to make sure your mosfets are rated higher than the motor supply voltage plus the zener voltage.

  8. #8
    Join Date
    Dec 2005
    Posts
    3319
    Try using a decent Schottky instead of 1N4001's - much faster.

    I also know that when fets are used in H bridges, the Schottky's are shunted across the the fets (across the drain and source pins), essentially in parallel with the epitaxial diode built into the fet.

    Check to see if you're getting an inducted 'kick' being dumped into the fets. If the kick is higher than the voltage rating of the fet, you could be frying it from overvoltage.

    The Schottky and/or a higher voltage rated fet may be in order. Perhaps one that is "avalanche rated" might also be necessary.

    Avalanche rated fets are preferred for the driving of highly inductive loads where inductive kick back potential is high.

    For example, on a 12v relay in a car, the inductive kick can easily exceed 60 volts. Imagine what it could be from an ignition coil that is generating a 30Kv secondary output.

  9. #9
    Join Date
    Jun 2004
    Posts
    14
    I pulled the suspect mosfet out and found it to be working fine. It looks as if only the pin on the micro blew. The pin blew after I added the 47 ohm gate resistors. I plan on adding the 5.1 volt zeners, but does anyone know why the port could have blown?

    Also, I didn't show it in the schematic but I'm not actually using 1n4001. I am using IRF's MBR1100's. I'm not sure these are the best choice but they are schottky's. I plan on trying to remove these all together and adding zeners instead.

    The question about the zeners is where to put them. Should I put them drain to source or drain to ground. Or does it even matter? I have some 56 volt and 91 volt zeners. The mosfets are rated for 100 volts. Any suggestion's on which would be a better choice?

    Also, what about the body diode in the mosfet. The mosfets i'm using, IRL530's, include one and the datasheet says they are "fully avalanche rated". If this is the case are external diodes needed at all?

    As far as program is concerned i am not coding the off time. Basically what I am doing is turning the mosfet on and then continously scaning in a loop the comparator inputs. Once I get an input I shut the mosfet off. I am using timer0 and an interrupt on compare match to generate the on signal. It actually seems to be working well, except for the blown port. I hope this is just because I didn't have the 47 ohm resistors on initially. I am going to add the 5.1 volt zeners and hook it up to different port and see what happens.

    Thanks,

    James

  10. #10
    Join Date
    Jun 2003
    Posts
    3312
    Quote Originally Posted by pminmo
    driving IRF530's directly from the Mega48 isn't a good idea on several fronts.
    One being damaging the micro.
    Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
    Vist my websites - http://pminmo.com & http://millpcbs.com

  11. #11
    Join Date
    Jun 2004
    Posts
    14
    I'm using logic level mosfets, so that shouldn't be a problem, should it?

    I switched to another pin on the micro, added the 5.1 volt zeners, removed the shottky's completely and the motor has been running for about a hour and a half.

    When I look at the drain voltage I am seeing spikes of about 120 volts. The mosfets I'm using are avalanche rated.

    I figured I would let it run for a while and then possible try a little higher voltage, it's currently running at 24 volts.

    James

  12. #12
    Join Date
    Dec 2005
    Posts
    3319
    A 120 volt spike across a fet only rated for 100 is playing with fire IMP. I'd Find a way to either bypass the fet so it doesn't see the spike or find a way to attenuate it.

    If you fets still are getting warm, look at the current trace across the fet as it turns on and off.

    If it rings with a negative induced spike on close, that could cause some problems. If you induce a spike above the voltage rating of the fet, ditto. Although they are avalanche rated, you still should protect them with appropriate Schottky's. You can't see electrons, therefore you can't trust them.

    Also, make sure the switched voltage wave is SQUARE.

    IF you see any 'rounding' of the corners of the voltage trace as the fet conducts, THAT is where your heat is coming from - a semi-conducting of the fet is leading to resistive heating of the fet.

    We were switching nearly 40 amps with IRLZ44's and they didn't even get warm even when they were not heat sunk. HOWEVER, please note the difference between the on resistance however of your fets versus that of the IRLZ44's.

  13. #13
    Join Date
    Jun 2004
    Posts
    14
    Just to clarify, the mosfets aren't getting warm at all with no heat sinking. I have running the motor for about 3 1/2 hours and seen no problems yet. I did add the 5.1 volt zeners for the output pins on the micro.

    As far as the 120 volt spike, I was playing around with adding 0.1uF caps from drain to ground and that brought the spike down to 70 volts. I haven't tried a larger power supply yet.

    What do you think about the zeners? Do you think 91 volt zeners from drain to ground would be ok?

    James

  14. #14
    Join Date
    Jun 2004
    Posts
    463
    Yes, 91v from drain to ground should work. This would however discharge the flyback energy thru the power supply. That is not really a problem if you have sufficient output capacitors on your supply, but can be a problem with some switching supplies unless you add extra capacitors. You could also use a zener of half that voltage in series with your original diodes. The zener would clamp the flyback voltage directly across the coil, and the original diode would prevent the zener from being forward biased when the mosfet is turned on.

  15. #15
    Join Date
    Mar 2005
    Posts
    523
    you could also put some opto-isolators to the gates of your fets and switch them with the micro's logic level .
    ifrz44 are ideal for motor winding switching.
    Attached Files Attached Files

  16. #16
    Join Date
    Jun 2004
    Posts
    14
    I have been playing around a little more to see if I can get the voltage spikes under control.

    The mosfets don't even get warm when running at 24 volts, but the spikes are well under 100 volts. When I ran at 50 volts without the zeners the mosfets get really hot. I wasn't paying much attention and found it melted the plastic tip of my scope probe (opps). I checked the gate voltage and I cant see any rounding of the waveform at all and I am getting a full 5 volts. Given this I would think I am turning them on hard enough.

    I'm not sure this is correct or not, but I would figure the heat is probably coming from the body diodes. I am only running the peak current at about 1.2 amps and the Rds on for the fet is 0.12 ohms at a Vgs of 5 volts. If it only get's hot when the voltge is above 100, wouldn't this be the body diodes heating up the fet?

    I added the 91 volt zeners from drain to ground on all 4 fets. This seems to help, but the zeners are getting pretty warm when running at about 50 volts. The spikes are still just over 100 volts, so about the same, but the mosfets don't get as hot. I figure the zeners are taking the load off of the body diodes. The zeners are only raded for 1 amp so I figure this is why they are heating up so quick.

    I tried putting the shottky's back in along with 51 volt zeners from drain to motor supply voltage. I hooked them up the way I thought they should be done and it made no change at all. I hooked them up every possible and it either makes no change, or it runs as if just the shottky's are there.

    I also tried removing the caps I added earlier, and there was no change, so I now don't have the caps. I did add a 100nF cap to bypass the motor power supply and this seemed to cut down on noise dramatically.

    I tried running at different voltage to see what I could run at and keep the zeners from getting to hot. I found I can run at 42 volts without the zeners getting hot and the mosfets don't even get warm.

    I'm still only running a motor at 1.2 amps per phase, so I am going to try and run a larger motor to increase the current and see how that changes things. I'm also going to try heat sinking the fets as well.

    James

  17. #17
    Join Date
    Dec 2005
    Posts
    3319
    The opto's shown in post #15 are wired incorrectly on the fet side. The collector should go to the plus voltage and the emitter to the gate. Actually, something tells me that you should probably use a PNP type transistor if you're going to do it that way.

    Actaully, you're much better off using a true mosfet driver. Essentially (and from memory), they use a totem pole driver which can really charge the fet gates FAST and HARD - the key to turning them on FULLY.

    IMO, I'd try to attenuate the induced voltage rather than to try to protect the driver circuit with band-aids. Reason: better to cure the cause than to treat the downstream symtoms. Once the overvoltage gets to the gate side, its probably too late.

    JEFFS55: could you draw a schematic of your zener proposal??? I have a hard time figuring out verbal schematics.

  18. #18
    Join Date
    Jun 2004
    Posts
    14
    NC Cams: I added the 91 volt zeners to limit the induced voltage. This seems to be working ok, except now there are going to be heating issues in the diodes.

    I looked at a few datasheets for unipolar stepper drivers by allegro and they don't appear to be using anything but avalance rated fets. They show in there data sheet for the SLA7050 how to calculate the avalance energy and say as long as you keep it below the rated value than the fet is being operated in it's safe operating area. This driver is only rated for a max of 46 volts and uses 100 volt mosfets. This is pretty close to what I found with my setup. I was able to go up to 42 volts no problem with no heat sinking.

    I think I'm going to try and fit a heat sink to the fets and see how they react with and without the zeners. I am also eager to try any other suggestions you or any one else has. I have read something about adding snubbers across the fets or coils (cant remember which), so I may try this as well.

    I guess I can only expect to be able to use a supply voltage of about half the mosfet rating anyway, so I suppose I'm doing ok. When looking at the voltage across the sense resistor, it looks like it should.

    I'm an engineering student and we haven't done any real work with mosfets at all, but this excersise has certainly been educational. I'm not making the driver for school, but because I'd like to eventually make a cnc machine and figured making the drivers is something I should be able to do.

    James

  19. #19
    Join Date
    Dec 2005
    Posts
    3319
    Ultimately, you're trying to dissipate spurious power that is being induced in the system. Thus, when you have a voltage potential difference, you have the ability to transfer current.

    Power as it is transmitted a cross a SEMIconducting semicondudtor will generate heat. Thus, a small diode (wattage wise) may run hot and NOT have the necessary durability to handle the power. Larger current zeners will probably address that aspect of the problem.

    Have you looked for any mosfet tech bulletins from IR or perhaps TI/Unitrode??? They both have spent time developing the type of driver you're working with and they often have cookbook designs that work well.

    Unitrode especially, has/had a number of stepper driver designs for 20khz steppers - check out their application notes when you can.

  20. #20
    Join Date
    Jun 2004
    Posts
    463
    James,
    A little over 40 volts is all you could expect with 100v mosfets. As for the zener heating, zeners are generally rated in watts not amps. Your 91v zeners are probably 1 watt, so that is only 1/91 amps. They will handle peak currents much higher, but the average power has to be less than 1 watt. The flyback pulse will be of short duration, so they should handle that, but when you increase the supply voltage above 40 volts, then you are also clamping the coupled pulse from the driven side, which is not good. And your zeners are probably no better than 5%, so 91v could be 86v.

    NC Cams

    Here is what I was talking about. The first circuit discharges the flyback energy thru the two diodes directly across the coil. For the second circuit the discharge path is thru the zener, to ground then thru the power supply and back to the other end of the coil.
    Attached Thumbnails Attached Thumbnails unipolar.jpg  

Page 1 of 2 12

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •