586,409 active members*
3,062 visitors online*
Register for free
Login
IndustryArena Forum > CNC Electronics > Stepper Motors / Drives > My 20A bipolar micro-step driver design
Results 1 to 6 of 6
  1. #1
    Join Date
    Sep 2005
    Posts
    38

    My 20A bipolar micro-step driver design

    Hi,

    I am working on a micro-controller based bipolar micro-step motor controller. Up to now I did below tasks

    I build two hip4081 based h-bridge and connect them to my micro board.
    I connect the hip4081 AHI and BHI to +5v. I send PWM signals to the ALI and BLI.
    I generate sin cos values with excel and store them in an array in the micro-controller. I use an interrupt to listen the step and dir inputs from mach cnc software to incrise and digrese the index of the array. Then I send the table value to the h-bridges as PWM . I am using 128 micro stepping table.

    Everything is nice. The motor turns smoothly. The problem is the speed. What must I do to turn the motor faster.

    Regards,
    Nuri Erginer

  2. #2
    Join Date
    May 2007
    Posts
    767
    Hi Nuri

    Interesting chip the HPI4081 for interfacing. To get more speed you have to sort out how to drive your stepper motor to its best advantage.

    1. Stepper motors are speed power limited and should be connected to the load they are to drive when being set up. This is because the drive coils not only have an inductance but also generate a high back emf when the magnetic core spins which also reduces the input current.

    2. The circuitry you are designing must take into account the maximum peak coil current rating of the motor. get this from the data sheet for the motor and do not exceed it unless you know what you are doing as the motors run hot and there is little margin.

    3. The drive to a stepper motor is frequently pulse width modulated (PWM) to control the motor coil current. Look to feed back techniques to dynamically measure this.

    4. Using micro stepping will limit the torque that can be generated and hence the top speed. Try and limit the micro stepping to a small value and use mechanical gearing to multiply the speed as this will give higher available torque and hence more speed.

    5. Stepper motors come in a wide variety of shapes and differ a lot in their magnetic properties. In general the lower the inductance the better for a given current capability.

    Do a search on stepper motors and speed as there is a lot of very good information available due to the generosity of this sites contributors.

    Unfortunately generating the the sine and cosine values for the voltage drive is the easy bit. The problem is driving the highly inductive motor coils with current that results in a smooth turning force. You do not state what speed you are looking for. Stepper motors run out of torque rapidly with increasing speed. Look to remain sub 1000 rpm and try to get rid of all micro-stepping.

    Sorry is this sounds tough but a reality check should help in the form of a comparison of stepper motor data sheets.

    A. Use as high a voltage to drive the motor as practical (Chip and drive MOS limits apply - also back emf spikes must be taken into account as well as the breakdown voltage of the coil insulation. The inductance will determine the maximum voltage but think in terms of 50 volts as being typical with out getting too technical. ) See B. as the current must be limited to the safe value for the coil.

    B. Use acive control of peak coil current to make safe and best use of the higher motor supply voltage.

    C. The motor plate voltage and current is the safe voltage that can be applied for the coil's current limit. To get more power and hence speed you need to PWM the current at the safe limit from a high voltage source to give the maximum number of pulses per cycle.

    D. Use mechanical gearing not microstepping when ever possible

    E. Select motor for low inductance as well as speed v torque considerations - check maker's graphs. Frame size and length of the motor are factors that may limit the motor choice. Use modern high efficiency hybrid motors - the low inertia stepper motors are exotics and for normal purposes closed loop servo motor designs will give better results.

    Regards - Pat

  3. #3
    Join Date
    Sep 2005
    Posts
    38
    wildwestpat,

    Thanks alot for your explanations. I am using the same motor with a commercial stepper driver and with my drive. I am trying to catch its performance. So choosing a better motor is out of the discussion.

    I have now new questions;

    Can I use a circuit or a software module in the micro controller to prevent my self from back emf?

    Dynamically measuring the coil current and using it as feed back can help?

    Regards,
    Nuri Erginer

  4. #4
    Join Date
    May 2007
    Posts
    767
    Hi Nuri

    OK but generating the Sine and Cosine wave forms and chopping them up to give a pulse width modulated signal afor the motor coils is only the start of the requirements. Because the motor is a magnetic circuit it has both inductance and resistance along with the ability to generate power when rotating with the coil disconnected. This gives you another layer of design requirements that have to co-exist with the need for a smooth power drive - the bit you have achieved with your look up table and digtal transform into a PWM drive. Next steps are :-

    1. Sense the peak current in the coil and use this limit to switch off the applied drive current the instant it reaches the limit. The removing the current will cause a back emf at least equall to the applied voltage and probably with a very high voltage spike that is even higher. The comutation spike can be captured using catching diodes and if you look at the implimentation sheets for bridge drive integrated circuits you will see some suggested arrangements. These diodes need to be high speed switching types or use high power zener diodes to clamp the unwanted peak voltages.

    2. As soon as the reverse energy has been disipated the drive is applied again and the current alowed to build until the safe limit is reached when the drive to the coil is again interupted repeating the process as described in 1. above.

    3. Thus the current drive is turned on and off many times in a single step. This means that the modulation is not a nice uniform time period but is dependent upon the motor current limit. This can be achieved using comparator integrated circuits and a bit of logic to drive the timing signal for the drive modulation.

    4. As the coil is inductive and the torque is dependent upon the amps flowing in the turns of the coil it follows that the higher the applied voltage the more shots that can be fired in a single step and this gives more power i.e. torque output from the motor shaft.

    5. The drive switching semiconductors need protecting against not only the back emf of the static motor coil but also the extra voltage that is generated in the rotating motor's magnetic field and any stray inductances which can be important if leads are long and thin. Mount the protection diodes with short fat leads to the output semiconductor they are protecting. If you use clamping diodes ensure that they have a very low impeadance (large capacitor) into which to dump the charge.

    6. The drive logic also needs to ensure that the flux reversal at the start of the next step is not attempted until the previous drive current has reached zero. If this is not done the drive current at the start of the next cycle sees a much lower impepeadance and the current limit might be reached before the current sensing PWM circuits can operate. The frequencies and switching speeds are kept high and short respectively to get the maximum torque out of a given motor.


    Sorry this is a bit of a ramble but what you are attempting can be done but the cost of the comparators and the clamping diodes will soon approach that of a commercial drive. But as an exercise in electronics it might be worth while. Hope this explains the current sense feed back and what it does the clamping diodes should be explained by the application notes.

    Regards

    Pat

  5. #5
    Join Date
    Sep 2005
    Posts
    38

    Chooper

    Thanks for your explanations. I understand that I build a fixed voltage driver which is not very successful. Now I decided to add a chopper current control circuit to my driver. I will add a sense resistor and some analog op amps and I will read the voltage over the sense resistor and this will show me the current on the coil of the motor.

    Which way is the best to go;

    I can compare the voltage on the sense resistor and if it is over the reference voltage I can disable the mosfets with the mosfetdrive disable pin.

    Or
    I can read the voltage with the micro-controller and use this value as a multiplier for the value coming from the micro-step table. the result will be the amount of voltage as PWM.

    Regards
    Nuri Erginer

  6. #6
    Join Date
    May 2007
    Posts
    767
    Hi Nuri

    Both should work. You might care to investigate altering the Sine and Cosine lookup tables to suit the motor as it might be possible to drive a little more current through the coils. The curent multiplied by the number of turns of wire making up each motor coil is directly proportional to the torque generated. The problem you have to solve with the lookup table and the feedback loop is to maximise the coil current. The switching speed introduces frequency considerations and the inductance of the coil will increase with frequency and that resists the current flow which is where the higher drive voltage helps. The shaping of the current waveform to be an approximation of a sine wave is the aim. You might be able to apply the feed back as a digital modification to the look up table but the switching speeds will be rapid and on reflection as I write this is probably out of the question unless you use veryfast logic. However tweaking the table to optimise for the higher speed end would grant the culculation and modification logic to have time to operate at the lower speeds. The real life problems with stepper motors centre on the mid range speeds where the magnetic / mechanical parts resonate. Als the torque is a minimum at the high speed end and IMHO you would be optimising the drive look up tables for this and doing the calculation work for the feed back in slower time at the lower speeds. Multiple look up tables might be another approach as storage is cheap and multiplex chips low cost. Commercial drives have to cope with different motors but if you have determined the motor then a customised design might give a bit more torque and hence higher speed. BUT please note that the torque falls away rapidly with shaft rpm - low inductance motors are a bit better in this respect but still very limited - this is where the step up to more powerful motors using positional feedback becone the order of the day as closed loop servo systems are not limited by the magnetic problems of driving current through a highly inductive coil for their power. Closed loop with appropriate design yeilds very good accuracy and as much speed as the designer cares to provide limited by the budget.

    Good luck and happy building / computation.

    Regards - Pat

Similar Threads

  1. Building driver for bipolar step motor
    By boogi1976 in forum Stepper Motors / Drives
    Replies: 7
    Last Post: 02-21-2012, 03:01 PM
  2. 2ND GENERATION 150V 8A Bipolar Stepper Motor Driver Design
    By baggs in forum Open Source Controller Boards
    Replies: 18
    Last Post: 02-12-2011, 02:23 PM
  3. Replies: 160
    Last Post: 07-25-2010, 08:13 PM
  4. A 150V 8A Driver design for Bipolar Stepper Motors
    By baggs in forum Open Source Controller Boards
    Replies: 35
    Last Post: 07-13-2010, 12:56 AM
  5. Very cheap Bipolar Micro-stepper board
    By Stevie in forum CNC Machine Related Electronics
    Replies: 5
    Last Post: 07-13-2004, 11:39 PM

Posting Permissions

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