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 > >
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------
_______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users