Re: stepper pulse rate idea






Ray's gearshifting idea has prompted me to float one of my own.
I considered this a while ago but didn't post it or follow up.

If I understand it correctly, the existing stepper routines
can generate only one step pulse for every two executions of
the high speed interrupt.  The first sets the output, the
second clears it.  The maximum step rate could be doubled
if we could generate a step pulse on every interrupt.

There are at least two ways to reach that goal.  Both would
require some external hardware, but it probably would be
less than an pulse multiplier or gearshifter.

1)  Instead of setting the step bit in one pass of the
code and clearing it in the next, set and clear it in
the same pass.  This would result in a very short step
pulse (1uS or less).  Then use an external one-shot to
stretch the pulse enough to make the drive happy.

2)  Instead of outputing step and direction, use the same
two pins to output a quadrature signal  (like an encoder
signal).  Then use an external decoder circuit to generate
step and direction signals from the quadrature signals,
stepping on each quadrature transition.  A while back I
designed a quadrature to step/dir circuit.  I don't have it
handy, but I know it was pretty simple.  I have also seen
a circuit from Mariss that is even simpler.  (He was using
the circuit for encoder feedback on a servo version of the
G2002.)  If you are a member of the Geckodrive group at
Yahoo, you can see the circuit at:
http://groups.yahoo.com/group/geckodrive/files/G2002-C.pdf
It is in the upper left of the schematic, driving the 4029
up/down counter.

Pros and cons:

Quadrature output from the parallel port can double the
maximum step rate, where gearshifting could multiply it
by 2, 4, 5, 8, 10 or more.  On the other hand, the software
change needed to output quadrature (AKA Gray code) would
be almost trivial, and the hardware is probably simpler too.

Comments?

John Kasunich







Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact