Stepper Motor Indexer & Decoder
Our design is very responsive to both user input and external conditions. There are no noticeable delays between a control message and an action, nor between an external change, such as a limit switch being flipped, and the device responding to it. Input messages are processed instantly and a return value returned.
The motor controller is accurate to the microstep as validated by the optical encoder. Since the encoder is connected directly to the motor shaft, it is guaranteed to catch every step. Inputs to the motor are accurate to the millimeter.
5.3 Safety in the Design
We use both hardware and software limits to prevent damage to the motor, electronics and user. The motor position is limited by software limits set by the user and hardware switches that are placed at either end of the motor. The speed of the motor is limited to 5000 hz, keeping it creating resonances and damaging the load. Finally, all our digital components are opto-isolated, preventing damage to them from motor transients.
5.4 Interference with Other People’s Designs
Motor controllers and microsteppers in particular are notorious sources of noise, both conducted and radiated. We used ferrite bead inductances to try and protect the MCU as well as an opto-isolator on the enable/disable line. How susceptible our design is to its own emissions is not known at this point, but it could possibly create radio waves that could interfere with other projects.
5.5 Usability of Our Project
Our motor controllers would have direct commercial applications if it
were to prove to be a hardenable design. There is nothing worse that a
nuisance design that always gives people trouble and the only way this
could be known is through lengthy testing.
5.6 Problems, Resolved and Outstanding
The LS7266R1 counter has increased its set-up and hold times from 50 to
80 nanoseconds over the past 5 years and the timing diagram are not what
you would expect, say on a memory chip. We think we have resolved any
problems by inserting nops (no operation) in the read and write code.
However, the chip has been observed to not respond. This is a very open
question. The set-up and hold times for the ATmega32 port pins doesn’t
seem to be in the manual? The problem is outstanding.