Maker Pro
Maker Pro

Programmable Current Source/Sink for Stepper Motor

L

Larty

Jan 1, 1970
0
Hi,

Does anyone have any good ideas for a programmable current source/sink
circuit that can drive an inductive load (stepper motor coil)?

I'm trying to microstep a 2 phase stepper motor at high speeds in
order to try and reduce the level of audible noise produced. This
means driving both coils with two sine wave currents 90 degrees out of
phase.

I have searched for PWM type current drive chips, but these all seem
to only operate with a maximum chopping frequency of around 100kHz -
this would give less than 1 chopper cycle for each microstep at the
speeds I want to go at (2000 degrees/sec, 1.8 degree per step, 128
microsteps per full step). Hence I was wondering if it is possible to
use a constant current drive approach rather than the normal PWM
approach. The current will be programmed via a microcontroller and DAC
and will need to be accurate to around 14 bits, with a new value
around every 7us. The full scale current is likely to be +/-1A.

Thanks in advance.
Larty.
 
T

Tilmann Reh

Jan 1, 1970
0
Larty said:
Does anyone have any good ideas for a programmable current source/sink
circuit that can drive an inductive load (stepper motor coil)?

I'm trying to microstep a 2 phase stepper motor at high speeds in
order to try and reduce the level of audible noise produced. This
means driving both coils with two sine wave currents 90 degrees out of
phase.

I have searched for PWM type current drive chips, but these all seem
to only operate with a maximum chopping frequency of around 100kHz -
this would give less than 1 chopper cycle for each microstep at the
speeds I want to go at (2000 degrees/sec, 1.8 degree per step, 128
microsteps per full step). Hence I was wondering if it is possible to
use a constant current drive approach rather than the normal PWM
approach. The current will be programmed via a microcontroller and DAC
and will need to be accurate to around 14 bits, with a new value
around every 7us. The full scale current is likely to be +/-1A.

At full speed, it will be most likely unnecessary effort to use
128 microsteps, since the current slope is limited by the motor
coil inductance anyway. Did you check the maximum current slope
for your given motor and supply voltage? You might use this
information to determine a) the number of microsteps that make
sense for a given motor speed, and b) the PWM chopping frequency
that makes sense at all.

Also keep in mind that the inertia of the motor itself will also
reduce audible noise as long as your control frequency is high
enough. I think 100 kHz is far enough from the hearable range.
 
M

Martin Cibulski

Jan 1, 1970
0
I use the Allegro A3973SB microstepping drivers in my
microcontroller (Atmel AVR) based telescope driver.

I have a website about it at
http://lerch.no-ip.com/Cibulski/mount_controller_4

One driver chip controls both coils of a stepper motor
and has two DACs integated with 63 current levels.
In my application the motor uses 64 microsteps per fullstep
and can be accelerated to about 3600 degrees/sec on
a 24V supply.

Regards,
Martin Cibulski
 
R

Rich Grise

Jan 1, 1970
0
Tilmann Reh said:
At full speed, it will be most likely unnecessary effort to use
128 microsteps, since the current slope is limited by the motor
coil inductance anyway. Did you check the maximum current slope
for your given motor and supply voltage? You might use this
information to determine a) the number of microsteps that make
sense for a given motor speed, and b) the PWM chopping frequency
that makes sense at all.

Also keep in mind that the inertia of the motor itself will also
reduce audible noise as long as your control frequency is high
enough. I think 100 kHz is far enough from the hearable range.

I rewrote a stepper motor driver on a thing I kind of hired on
in the middle of. The guy before me was a really crappy programmer
anyway, and had no clue how to run a stepper. So I did a little
research, and it was not that hard to do, with acceleration
and all.

I can't say it was absolutely silent, but it seemed so compared
to how it sounded before - it was like a low-frequency buzzer -
a real fast tacktacktacktacktack .. and so on.

So I did a little timing loop, and when I demo'd it, and it
went (fffffffffffffffffp) we thought it was pretty quiet.
And there are few things as gratifying as seeing/hearing clients
go "Ooh! Aah!" when they see a demo of something. :)

Cheers!
Rich
 
Top