jaydeep.gajjar90
Newbie level 6
- Joined
- Mar 11, 2011
- Messages
- 11
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 1,409
Hi everyone!
i currently want to develop a bipolor stepper motor driver using a microcontroller and L298 IC.
in past, i have developed microstepping driver using NXP89v51RD2 microcontroller and 4 TIP122 for unipolor motor. the firmware has a look-up table for 1/8 microstepping, 4 PWM signals which drives base of TIP122, at any time only two (running signals) of the PWM signals can vary from 0 to 255( have a 90 degree phase shift) and remaining two signals have PWM value=0. direction signal is given to the GPIO input pin and step signal is given to interrupt 0 pin. when ever interrupt is detected it will call ISR and took step considering direction from GPIO input dir pin.
and it was working correctly for low-speed. but, at higher speed due to the inductance of phase current could not change rapidly so it gives very low torque.
so after reading and going through various websites, i am came across that i need a current chopper driver which controls current at constant level at any speed. and it needs supply voltage of motor 4 times or higher than the rated voltage. the current is sensed at sense resistor and compared to the ref value. and it is above the ref. value then current is chopped.
but i don't understand how could i implement this in above old project. my thoughts about implimentation.
- using op-amp amplify sense signal and compare it with ref. voltage for desired current.
- generate output 5v when phase voltage is below the ref. voltage and generate 0v when voltage is above ref. voltage.
- feed this signal to microcontroller 's interrupt pin and stop PWM signals(currently running) for the phase.
but how then microstepping is achieved simultaneously?
Thanks in advance.
i currently want to develop a bipolor stepper motor driver using a microcontroller and L298 IC.
in past, i have developed microstepping driver using NXP89v51RD2 microcontroller and 4 TIP122 for unipolor motor. the firmware has a look-up table for 1/8 microstepping, 4 PWM signals which drives base of TIP122, at any time only two (running signals) of the PWM signals can vary from 0 to 255( have a 90 degree phase shift) and remaining two signals have PWM value=0. direction signal is given to the GPIO input pin and step signal is given to interrupt 0 pin. when ever interrupt is detected it will call ISR and took step considering direction from GPIO input dir pin.
and it was working correctly for low-speed. but, at higher speed due to the inductance of phase current could not change rapidly so it gives very low torque.
so after reading and going through various websites, i am came across that i need a current chopper driver which controls current at constant level at any speed. and it needs supply voltage of motor 4 times or higher than the rated voltage. the current is sensed at sense resistor and compared to the ref value. and it is above the ref. value then current is chopped.
but i don't understand how could i implement this in above old project. my thoughts about implimentation.
- using op-amp amplify sense signal and compare it with ref. voltage for desired current.
- generate output 5v when phase voltage is below the ref. voltage and generate 0v when voltage is above ref. voltage.
- feed this signal to microcontroller 's interrupt pin and stop PWM signals(currently running) for the phase.
but how then microstepping is achieved simultaneously?
Thanks in advance.