Hi everyone,

a bit off-topic, but let me ask something: Why does just about everyone
use this step&dir interface to connect the controller to the driver? Is
it just because most drivers don't support anything else or "because
everyone does it that way"? I mean, driving logic this way has at least
two big disadvantages which could easily lead to problems:

- Each step requires three accesses to the outputs with proper timing:
  1. Setup dir line, then wait for dir setup time
  2. Set step line high, then wait for step high time
  3. Set step line low
  If you generate steps in software, that means that your maximum
  step rate will be far below the thread frequency. So it's just
  slower than it would need to be. Short step pulses could also
  be missed by slow hardware, such as optocouplers.
- The step line has to be treated like a clock line. If there is
  sufficient noise, then you will get random steps which may
  easily move your axis far away from where it should be.

Using the two lines as up&down instead of step&dir would at least lessen
the first disadvantage a bit:
1. Set up/down high, then wait for pulse high time
2. Set up/down low
So you could get a step rate of up to fStepgen/4, provided that your
driver/hardware does not need the step pulses be longer than TStepgen.

The performance of both interfaces could be increased by making the
clock lines (i.e. step or up/down) edge-sensitive, meaning that every
edge and not just every high pulse generates one step. But this makes
the second disadvantage even more problematic, since a spike on a line
might result in two steps.

So my absolute favorite is to use quadrature signals, just like the ones
generated by an encoder. The advantages are obvious: The interface is
edge-sensitive by design, so you can get the maximum fStepgen/2 as a
step rate. But even more important: A spike on one line generates a step
in one direction and then immediately a step in the opposite direction,
cancelling the first one out. A problem can occur if the spike affects
both signals, as this may result in an invalid transition. Thanks to the
improved performance however, you can in fact double the filter
capacitance on both lines without reducing the maximum steprate compared
to an interface based on pulses, not edges.

Just a few thoughts. We use(d) this quadrature interface in two machines
between the LPT and a self-made FPGA board with stepper drivers and
never had a problem so far.

Cheers,
Philipp

On 10.08.2014 18:52, John Alexander Stewart wrote:
> Hi all;
> 
> I thought I had this fixed.
> 
> running a 4 hour engraving process, and the X axis slowly moves. At the
> end, it is off, maybe, 0.3mm or so. (using centre drill before and after,
> you can see different points)
> 
> I thought I had this fixed, because I've had this problem for a long time,
> now I find that the error is small, but still exists.
> 
> - 5i25 has stepdir, etc, parameters set to 2,000 (all 4 of them)
> 
> - The G540 motor is tuned as per directions. (tuned more than once)
> 
> - Only X axis affected, and only in 1 direction.
> 
> - machine slowed down, currently trying one where I increased accel
> parameters to slow down any "jerking".
> 
> I'm beginning to think that the G540 is not working quite right, as I've
> spent (probably, over the last year) about 1 week on fixing this X axis
> slip.
> 
> What would you guys try?
> ------------------------------------------------------------------------------
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
> 
> 

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to